Nathan Scott
3fb962bde4
Fix a direct I/O locking issue revealed by the new mutex code.
...
Affects only XFS (i.e. DIO_OWN_LOCKING case) - currently it is
not possible to get i_mutex locking correct when using DIO_OWN
direct I/O locking in a filesystem due to indeterminism in the
possible return code/lock/unlock combinations. This can cause
a direct read to attempt a double i_mutex unlock inside XFS.
We're now ensuring __blockdev_direct_IO always exits with the
inode i_mutex (still) held for a direct reader.
Tested with the three different locking modes (via direct block
device access, ext3 and XFS) - both reading and writing; cannot
find any regressions resulting from this change, and it clearly
fixes the mutex_unlock warning originally reported here:
http://marc.theaimsgroup.com/?l=linux-kernel&m=114189068126253&w=2
Signed-off-by: Nathan Scott <nathans@sgi.com>
Acked-by: Christoph Hellwig <hch@lst.de>
2006-03-15 15:14:45 +11:00
..
2006-03-08 14:14:02 -08:00
2005-11-09 07:55:57 -08:00
2006-01-09 15:59:24 -08:00
2006-01-11 01:52:40 +01:00
2006-01-11 18:42:13 -08:00
2006-01-14 18:25:19 -08:00
2005-11-08 16:54:53 +01:00
2005-10-04 13:22:01 -07:00
2006-03-05 03:39:55 +00:00
2006-01-09 15:59:24 -08:00
2006-02-03 14:03:09 -08:00
2006-03-06 18:40:43 -08:00
2006-02-06 12:17:18 -08:00
2006-01-09 15:59:24 -08:00
2006-01-09 15:59:24 -08:00
2006-01-15 02:37:08 +01:00
2006-01-18 19:20:28 -08:00
2006-02-17 13:59:26 -08:00
2006-03-11 09:19:34 -08:00
2006-02-03 08:32:10 -08:00
2006-01-08 20:13:54 -08:00
2006-02-28 20:53:43 -08:00
2006-01-18 19:20:23 -08:00
2006-01-18 19:20:23 -08:00
2005-12-29 09:48:15 -08:00
2006-01-09 15:59:24 -08:00
2006-01-09 15:59:24 -08:00
2006-02-01 08:53:15 -08:00
2006-01-14 18:27:12 -08:00
2006-02-14 16:09:34 -08:00
2006-02-03 08:32:05 -08:00
2006-03-09 19:47:37 -08:00
2006-01-11 18:42:13 -08:00
2006-02-14 16:09:34 -08:00
2005-10-30 17:37:32 -08:00
2006-01-14 18:27:12 -08:00
2006-02-07 21:00:42 -05:00
2005-10-11 09:46:54 -07:00
2006-02-07 16:12:31 -08:00
2006-02-24 10:48:14 +00:00
2006-03-01 12:18:16 -08:00
2005-11-07 07:54:06 -08:00
2006-03-08 14:14:01 -08:00
2006-03-06 18:40:45 -08:00
2006-01-03 13:21:37 +01:00
2006-03-06 18:40:45 -08:00
2006-03-02 10:37:59 -08:00
2006-01-09 15:59:24 -08:00
2006-01-08 20:13:54 -08:00
2006-02-01 08:53:09 -08:00
2006-01-11 18:42:13 -08:00
2006-01-15 02:43:54 +01:00
2006-03-08 14:14:00 -08:00
2006-02-03 08:32:04 -08:00
2005-10-30 17:37:32 -08:00
2006-02-28 12:30:30 +11:00
2006-01-08 20:13:48 -08:00
2006-01-11 18:42:13 -08:00
2006-01-10 08:01:25 -08:00
2006-01-10 08:02:01 -08:00
2006-02-26 09:53:30 -08:00
2006-01-10 09:31:27 -08:00
2006-01-14 18:27:06 -08:00
2005-10-29 21:40:38 -07:00
2006-01-31 15:24:34 +01:00
2006-01-09 15:59:24 -08:00
2006-02-03 08:32:10 -08:00
2006-01-14 18:25:19 -08:00
2006-03-08 16:46:08 -08:00
2006-02-17 13:59:28 -08:00
2006-03-08 14:14:01 -08:00
2006-01-11 18:42:13 -08:00
2006-03-15 15:14:45 +11:00
2006-01-11 18:42:13 -08:00
2006-01-08 20:12:40 -08:00
2006-02-28 20:53:44 -08:00
2006-02-03 08:32:07 -08:00
2006-03-07 09:16:35 -08:00
2006-03-08 14:14:01 -08:00
2006-02-05 11:06:51 -08:00
2005-10-30 17:37:32 -08:00
2005-11-07 07:53:55 -08:00
2006-02-01 08:53:27 -08:00
2006-02-07 16:12:33 -08:00
2006-01-11 18:42:13 -08:00
2006-01-11 18:42:13 -08:00
2006-02-03 13:47:17 -08:00
2006-01-08 20:13:36 -08:00
2006-02-03 08:32:11 -08:00
2006-01-08 20:14:10 -08:00
2006-01-10 08:01:33 -08:00
2006-01-14 18:27:06 -08:00
2006-01-08 20:13:54 -08:00
2006-03-11 09:19:34 -08:00
2006-02-07 21:01:15 -05:00
2006-01-18 19:20:30 -08:00
2006-01-18 19:20:29 -08:00
2006-03-08 14:03:09 -08:00
2006-01-08 20:13:56 -08:00
2005-11-07 18:18:11 -08:00
2005-10-08 15:00:57 -07:00
2006-02-03 08:32:03 -08:00
2006-01-11 18:42:13 -08:00
2006-01-09 15:59:24 -08:00
2006-01-09 15:59:24 -08:00
2006-02-17 13:59:28 -08:00
2005-11-07 18:18:09 -08:00
2006-02-11 21:41:10 -08:00
2006-02-22 09:39:02 -08:00
2006-01-10 08:01:29 -08:00