Files
mirror_zfs/module/zfs
Brian Behlendorf a8ad3bf02c Fix z_xattr_lock/z_teardown_lock lock inversion
There exists a lock inversion between the z_xattr_lock and the
z_teardown_lock.  Detect this case and return EBUSY so zfs_resume_fs()
will mark the inode stale and it can be safely revalidated on next
access.

* process-1
zpl_xattr_get -> Takes zp->z_xattr_lock
  __zpl_xattr_get
    zfs_lookup -> Takes zsb->z_teardown_lock in ZFS_ENTER macro

* process-2
zfs_ioc_recv -> Takes zsb->z_teardown_lock in zfs_suspend_fs()
  zfs_resume_fs
    zfs_rezget -> Takes zp->z_xattr_lock

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Closes #3969
2015-12-18 13:17:44 -08:00
..
2014-08-01 14:28:05 -07:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-12-07 12:20:43 -08:00
2015-01-16 14:41:26 -08:00
2015-12-15 16:21:43 -08:00
2013-12-18 16:46:35 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2010-08-31 13:41:59 -07:00
2010-08-31 13:41:58 -07:00
2015-08-19 16:04:33 -07:00
2015-09-02 09:30:18 -07:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-08-30 10:10:16 -07:00
2013-10-31 14:58:04 -07:00
2015-09-01 15:22:07 -07:00
2015-12-04 09:39:20 -08:00
2015-05-04 09:41:09 -07:00
2015-01-16 14:41:26 -08:00
2010-08-31 13:41:58 -07:00
2015-09-04 16:08:14 -07:00
2015-01-16 14:41:26 -08:00
2013-10-30 14:51:27 -07:00
2014-09-05 15:11:43 -07:00
2015-01-16 14:41:26 -08:00
2014-08-01 14:28:05 -07:00
2015-12-07 12:20:43 -08:00
2015-12-15 16:21:43 -08:00