#
4f23c764 |
| 08-Jul-2016 |
Arne Jansen <jansen@webgods.de> |
This commit fixes https://www.illumos.org/issues/6779.
Chronology of the events:
1. we have an empty directory 2. the filesystem is nearly out of quota 3. a snapshot prevents any space from being f
This commit fixes https://www.illumos.org/issues/6779.
Chronology of the events:
1. we have an empty directory 2. the filesystem is nearly out of quota 3. a snapshot prevents any space from being freed 4. a remote clients calls opendir via nfs4 5. the same client removes the directory 6. the client proceeds with readdir --> boom.
During 4, the client obtains a FH for the directory. During 5, the directory entry gets removed, the inode is added to the unlinked set and z_unlinked is set. Then the inode contents is deleted (dmu_free_long_range). Deletion of the inode itself fails because the fs ran out of space exactly at this moment. The inode is left in the unlinked set, the znode is freed. During 6, the readdir of the client instantiates a new znode for the (empty) inode, this time with z_unlinked unset. During zap read, the contents of the empty file is interpreted as a fatzap, which leads to the crash.
This patch addresses the problem twofold: 1. when instantiating a znode, set z_unlinked when z_links == 0 2. mark the deletion of the inode as netfree (in zfs_rmnode).
refs #3026
(cherry picked from commit 67738a4fd5331c5c62b9fead7a7739afa2476cf9)
show more ...
|
#
4bb73804 |
| 07-Jul-2014 |
Matthew Ahrens <mahrens@delphix.com> |
4950 files sometimes can't be removed from a full filesystem Reviewed by: Adam Leventhal <adam.leventhal@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Sebastien Roy
4950 files sometimes can't be removed from a full filesystem Reviewed by: Adam Leventhal <adam.leventhal@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Sebastien Roy <sebastien.roy@delphix.com> Reviewed by: Boris Protopopov <bprotopopov@hotmail.com> Approved by: Dan McDonald <danmcd@omniti.com>
show more ...
|
#
e722410c |
| 26-Nov-2013 |
Matthew Ahrens <mahrens@delphix.com> |
4347 ZPL can use dmu_tx_assign(TXG_WAIT) Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Dan McDonald <danmcd@nexenta.com> Reviewed b
4347 ZPL can use dmu_tx_assign(TXG_WAIT) Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Dan McDonald <danmcd@nexenta.com> Reviewed by: Boris Protopopov <boris.protopopov@nexenta.com> Approved by: Dan McDonald <danmcd@nexenta.com>
show more ...
|
#
be6fd75a |
| 08-Mar-2013 |
Matthew Ahrens <mahrens@delphix.com> |
3598 want to dtrace when errors are generated in zfs Reviewed by: Dan Kimmel <dan.kimmel@delphix.com> Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Christopher Siden <christopher.siden@d
3598 want to dtrace when errors are generated in zfs Reviewed by: Dan Kimmel <dan.kimmel@delphix.com> Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Christopher Siden <christopher.siden@delphix.com> Approved by: Garrett D'Amore <garrett@damore.org>
show more ...
|
#
b420f3ad |
| 01-Aug-2012 |
Richard Lowe <richlowe@richlowe.net> |
backout 3006: causes 3046 (panics after mounting root)
|
#
9fa718d2 |
| 31-Jul-2012 |
Madhav Suresh <madhav.suresh@delphix.com> |
3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument is zero Reviewed by: Matt Ahrens <matthew.ahrens@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Approved b
3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument is zero Reviewed by: Matt Ahrens <matthew.ahrens@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Approved by: Garrett D'Amore <garrett@damore.org>
show more ...
|
#
6a634c9d |
| 19-Aug-2010 |
Richard Lowe <richlowe@richlowe.net> |
merge with onnv_147 Reviewed by: garrett@nexenta.com Approved by: garrett@nexenta.com
|
#
f1696b23 |
| 11-Aug-2010 |
Mark Shellenbaum <Mark.Shellenbaum@Oracle.COM> |
6971929 Unable to add/remove ACE after doing idmap flush -a
|
#
1412a1a2 |
| 14-Jun-2010 |
Mark Shellenbaum <Mark.Shellenbaum@Oracle.COM> |
6957974 assertion failed: 0 == sa_lookup(zp->z_sa_hdl, SA_ZPL_ZNODE_ACL(zp->z_zfsvfs) 6960907 zfs_rezget() has uninitialized z_mode variable
|
#
6ed5e6ab |
| 14-May-2010 |
Sam Falkner <Sam.Falkner@Sun.COM> |
6894240 zfs has a partially deleted file
|
#
c8c24165 |
| 04-May-2010 |
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM> |
6946681 System panics in a loop with "pf zfs_fuid_create"
|
#
f3e6fb2f |
| 22-Apr-2010 |
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM> |
6945935 potential mutex problem in zfs_zaccess_aces_check()
|
#
0a586cea |
| 16-Mar-2010 |
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM> |
6716117 ZFS needs native system attribute infrastructure 6516171 zpl symlinks should have their own object type
|
#
afefc7e4 |
| 15-Dec-2009 |
Sanjeev Bagewadi <Sanjeev.Bagewadi@Sun.COM> |
6847615 deadlock between zfs_dirent_lock and zfs_rmdir
|
#
14843421 |
| 18-Apr-2009 |
Matthew Ahrens <Matthew.Ahrens@Sun.COM> |
PSARC/2009/204 ZFS user/group quotas & space accounting 6501037 want user/group quotas on ZFS 6830813 zfs list -t all fails assertion 6827260 assertion failed in arc_read(): hdr == pbuf->b_hdr 681559
PSARC/2009/204 ZFS user/group quotas & space accounting 6501037 want user/group quotas on ZFS 6830813 zfs list -t all fails assertion 6827260 assertion failed in arc_read(): hdr == pbuf->b_hdr 6815592 panic: No such hold X on refcount Y from zfs_znode_move 6759986 zfs list shows temporary %clone when doing online zfs recv
show more ...
|
#
89459e17 |
| 26-Mar-2009 |
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM> |
6790064 zfs needs to determine uid and gid earlier in create process
|
#
1209a471 |
| 25-Nov-2008 |
Neil Perrin <Neil.Perrin@Sun.COM> |
6765294 Refactor replay
|
#
a6e57bd4 |
| 19-Sep-2008 |
Neil Perrin <Neil.Perrin@Sun.COM> |
6741237 zfs hang in txg_wait_open() on boot
|
#
088f3894 |
| 07-Jul-2008 |
ahrens <none@none> |
6343667 scrub/resilver has to start over when a snapshot is taken 6343693 'zpool status' gives delayed start for 'zpool scrub' 6670746 scrub on degraded pool return the status of 'resilver completed'
6343667 scrub/resilver has to start over when a snapshot is taken 6343693 'zpool status' gives delayed start for 'zpool scrub' 6670746 scrub on degraded pool return the status of 'resilver completed'? 6675685 DTL entries are lost resulting in checksum errors 6706404 get_history_one() can dereference off end of hist_event_table[] 6715414 assertion failed: ds->ds_owner != tag in dsl_dataset_rele() 6716437 ztest gets SEGV in arc_released() 6722838 bfu does not update grub
show more ...
|
#
cdb0ab79 |
| 01-Jul-2008 |
maybee <none@none> |
6573681 deleting a very large file can be slow 6706950 ((&dnp->dn_blkptr[0])->blk_birth == 0) || list_head(list) != 0L || dn->dn_next_blksz[txgoff]
|
#
ab04eb8e |
| 27-Apr-2008 |
timh <none@none> |
6654808 FIGNORECASE lookups in a zfs xattr dir don't provide 'realname' data 6666748 System panic occurred when attempting to view .zfs snapshot directory from CIFS client. 6693201 libzpool needlessl
6654808 FIGNORECASE lookups in a zfs xattr dir don't provide 'realname' data 6666748 System panic occurred when attempting to view .zfs snapshot directory from CIFS client. 6693201 libzpool needlessly defines u8_textprep_str() 6694236 case-insensitive zfs file system doesn't work when created on sparc and then imported on x86
show more ...
|
#
e0d35c44 |
| 01-Feb-2008 |
marks <none@none> |
6650192 zfs ACL/fuid code could use some minor cleanup 6650223 zdb znode output should include uid/gid and possible SID information 6657644 zfs_fuid_init() panic
|
#
40ff3960 |
| 18-Jan-2008 |
ck153898 <none@none> |
6580259 onnv ZFS panic with zfs_purgedir in zfs_dir.c 6617656 zpool destroy should deal with newer pools
|
#
4c841f60 |
| 14-Jan-2008 |
marks <none@none> |
6603908 can't change mode if FS/dir is out of quota
|
#
bda89588 |
| 04-Jan-2008 |
jp151216 <none@none> |
6552639 Each zone should have it's own idmapd
|