Dave Chinner
8121768321
xfs: fix swapext ilock deadlock
...
xfs_swap_extents() holds the ilock over a call to
filemap_write_and_wait(), which can then try to write data and take
the ilock. That causes a self-deadlock.
Fix the deadlock and clean up the code by separating the locking
appropriately. Add a lockflags variable to track what locks we are
holding as we gain and drop them and cleanup the error handling to
always use "out_unlock" with the lockflags variable.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-08-04 13:29:32 +10:00
..
2014-08-04 11:35:44 +10:00
2014-03-07 16:19:14 +11:00
2013-11-06 16:31:27 -06:00
2014-06-25 14:57:53 +10:00
2014-06-25 14:58:08 +10:00
2014-01-25 23:58:21 -05:00
2014-06-25 14:58:08 +10:00
2013-09-04 09:23:46 -04:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2013-10-30 13:59:56 -05:00
2014-08-04 13:29:32 +10:00
2014-06-06 15:59:59 +10:00
2014-06-25 14:58:08 +10:00
2013-10-23 16:28:49 -05:00
2014-08-04 12:42:40 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2013-12-13 11:34:08 +11:00
2013-12-13 11:34:08 +11:00
2014-08-04 12:43:26 +10:00
2014-05-05 17:30:15 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2013-10-23 16:28:49 -05:00
2013-10-23 16:28:49 -05:00
2014-06-25 14:58:08 +10:00
2014-08-04 13:28:20 +10:00
2014-06-25 14:58:08 +10:00
2014-04-23 07:11:52 +10:00
2014-04-24 16:01:41 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2013-12-13 11:34:02 +11:00
2014-06-25 14:58:08 +10:00
2013-12-13 11:34:05 +11:00
2014-08-04 13:22:49 +10:00
2014-08-04 13:28:20 +10:00
2014-08-04 13:28:20 +10:00
2014-08-04 13:28:20 +10:00
2014-06-25 14:58:08 +10:00
2013-10-01 15:42:34 -05:00
2014-08-04 11:35:35 +10:00
2014-01-25 23:58:21 -05:00
2014-06-25 14:58:08 +10:00
2014-08-04 13:28:20 +10:00
2014-06-25 14:58:08 +10:00
2013-10-23 16:17:44 -05:00
2014-08-04 12:59:31 +10:00
2014-08-04 12:42:40 +10:00
2014-05-20 08:18:09 +10:00
2013-10-23 16:17:44 -05:00
2014-08-04 11:35:44 +10:00
2014-06-06 15:20:02 +10:00
2014-06-25 14:58:08 +10:00
2014-04-23 07:11:51 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-08-04 12:43:26 +10:00
2013-12-06 14:16:33 -06:00
2013-10-23 14:28:35 -05:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-04-24 16:00:52 +10:00
2014-04-24 16:00:52 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2013-10-08 14:53:02 -05:00
2014-04-23 07:11:52 +10:00
2014-06-12 10:30:18 -07:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2013-10-23 16:17:44 -05:00
2013-11-18 09:42:08 -06:00
2014-04-14 19:06:05 +10:00
2014-06-25 14:58:08 +10:00
2013-12-13 11:34:02 +11:00
2014-04-24 16:00:52 +10:00
2014-06-25 14:58:08 +10:00