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
..
2015-12-15 16:11:44 -08:00
2014-08-01 14:28:05 -07:00
2015-01-16 14:41:26 -08:00
2015-05-11 15:10:24 -07:00
2015-05-11 12:23:16 -07:00
2015-06-11 10:27:25 -07:00
2015-12-04 14:20:20 -08:00
2015-01-16 14:41:26 -08:00
2015-08-19 14:32:50 -07:00
2015-06-11 10:27:25 -07:00
2014-10-21 15:26:50 -07:00
2015-10-13 14:12:02 -07:00
2015-12-07 12:20:43 -08:00
2015-09-04 08:43:28 -07:00
2015-07-06 09:31:42 -07:00
2015-01-16 14:41:26 -08:00
2015-12-15 16:21:43 -08:00
2015-10-13 14:12:02 -07:00
2015-07-06 09:31:42 -07:00
2015-05-04 09:41:10 -07:00
2015-12-04 14:20:20 -08:00
2015-12-15 16:12:31 -08:00
2015-05-04 09:41:10 -07:00
2015-12-04 14:20:20 -08:00
2015-05-04 09:41:10 -07:00
2015-07-28 13:36:47 -07:00
2015-05-04 09:41:10 -07:00
2015-07-14 10:35:21 -07:00
2015-05-04 09:41:10 -07:00
2015-05-04 09:41:10 -07:00
2015-06-22 17:02:13 -07: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-07-17 13:42:51 -07:00
2015-09-01 15:22:07 -07:00
2015-06-11 10:27:25 -07:00
2015-06-25 08:58:16 -07:00
2015-01-16 14:41:26 -08:00
2015-07-06 09:34:13 -07:00
2015-05-11 15:10:57 -07: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
2014-08-06 14:48:41 -07:00
2015-05-11 12:23:16 -07:00
2015-09-02 09:30:18 -07:00
2015-06-11 10:27:25 -07:00
2015-07-28 13:36:47 -07:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-06-11 10:27:25 -07:00
2015-07-28 13:36:47 -07:00
2015-07-14 10:35:21 -07:00
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2015-10-13 15:25:33 -07:00
2015-09-01 15:22:07 -07:00
2015-01-16 14:41:26 -08:00
2015-04-30 15:07:47 -07:00
2015-04-30 15:07:47 -07:00
2015-08-30 10:10:16 -07:00
2015-04-30 15:07:47 -07:00
2013-10-31 14:58:04 -07:00
2015-09-01 15:22:07 -07:00
2015-04-28 16:25:20 -07:00
2015-12-04 09:39:20 -08:00
2015-05-04 09:41:09 -07:00
2015-12-04 14:20:20 -08:00
2015-12-04 14:20:20 -08:00
2015-01-16 14:41:26 -08:00
2010-08-31 13:41:58 -07:00
2015-12-14 12:06:31 -08:00
2015-09-04 16:08:14 -07:00
2014-08-11 16:12:36 -07:00
2015-01-16 14:41:26 -08:00
2013-10-30 14:51:27 -07:00
2015-11-16 16:10:06 -08:00
2015-05-11 12:23:16 -07:00
2015-06-22 17:02:13 -07:00
2014-09-05 15:11:43 -07:00
2015-01-16 14:41:26 -08:00
2015-04-28 16:25:34 -07:00
2015-09-04 13:23:53 -07:00
2015-09-04 13:23:06 -07:00
2015-12-18 13:17:44 -08:00
2015-07-28 13:36:47 -07:00
2014-08-01 14:28:05 -07:00
2015-07-10 12:11:45 -07:00
2015-06-11 10:27:25 -07:00
2015-12-07 12:20:43 -08:00
2010-05-28 13:45:14 -07:00
2015-08-31 13:54:39 -07:00
2015-08-31 13:54:39 -07:00
2015-08-24 10:17:06 -07:00
2015-12-08 16:38:56 -08:00
2015-09-25 12:45:42 -07:00
2015-12-01 16:48:25 -08:00
2015-04-30 14:43:40 -07:00
2015-12-15 16:21:43 -08:00