Christoph Hellwig
28e211700a
xfs: fix getbmap vs mmap deadlock
...
xfs_getbmap (or rather the formatters called by it) copy out the getbmap
structures under the ilock, which can deadlock against mmap. This has
been reported via bugzilla a while ago (#717 ) and has recently also
shown up via lockdep.
So allocate a temporary buffer to format the kernel getbmap structures
into and then copy them out after dropping the locks.
A little problem with this is that we limit the number of extents we
can copy out by the maximum allocation size, but I see no real way
around that.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Felix Blyakher <felixb@sgi.com>
Signed-off-by: Felix Blyakher <felixb@sgi.com>
2009-04-30 00:29:02 -05:00
..
2009-04-09 14:12:07 -05:00
2009-03-29 09:51:00 +02:00
2009-03-30 10:21:31 +02:00
2009-01-19 14:43:18 +11:00
2009-02-09 08:47:34 +01:00
2008-11-14 10:39:04 +11:00
2009-03-31 00:23:37 -05:00
2009-02-09 08:37:39 +01:00
2009-01-19 14:45:55 +11:00
2008-10-30 17:14:34 +11:00
2009-03-16 08:29:46 +01:00
2009-03-16 08:29:46 +01:00
2008-10-30 17:05:38 +11:00
2009-03-29 19:26:46 +02:00
2009-01-09 15:46:44 +11:00
2009-01-19 14:45:55 +11:00
2008-08-13 16:03:35 +10:00
2008-08-13 15:41:12 +10:00
2009-01-09 15:53:54 +11:00
2009-01-19 14:45:55 +11:00
2009-01-19 14:45:55 +11:00
2009-04-30 00:29:02 -05:00
2009-03-29 19:26:46 +02:00
2008-10-30 16:58:50 +11:00
2008-10-30 16:58:50 +11:00
2009-03-29 09:55:42 +02:00
2009-03-29 09:55:42 +02:00
2008-12-22 17:52:58 +11:00
2009-02-09 08:37:39 +01:00
2009-03-29 09:55:42 +02:00
2009-02-12 19:56:00 +01:00
2008-12-02 17:08:01 +11:00
2009-03-29 09:51:14 +02:00
2009-03-29 09:51:08 +02:00
2009-03-29 09:55:42 +02:00
2009-03-29 09:51:08 +02:00
2009-03-29 09:55:42 +02:00
2009-03-29 09:51:08 +02:00
2008-12-01 11:37:35 +11:00
2009-03-06 17:20:15 -06:00
2008-08-23 12:14:12 -07:00
2008-10-30 17:53:24 +11:00
2008-12-22 18:02:01 +11:00
2008-12-22 18:02:01 +11:00
2008-10-30 17:39:58 +11:00
2009-01-22 14:07:31 +11:00
2009-03-16 08:29:46 +01:00
2009-01-09 16:54:42 -08:00
2009-03-29 09:55:42 +02:00
2009-01-09 16:54:42 -08:00
2009-03-29 09:55:42 +02:00
2009-02-09 08:37:14 +01:00
2009-03-29 09:55:42 +02:00
2009-01-19 14:45:55 +11:00
2009-04-06 18:40:17 +02:00
2008-12-01 11:38:08 +11:00
2009-01-22 14:07:31 +11:00
2009-04-30 00:25:25 -05:00
2009-03-29 09:55:42 +02:00
2009-04-06 18:49:12 +02:00
2009-04-06 18:49:12 +02:00
2009-03-29 09:55:42 +02:00
2008-12-02 17:16:03 +11:00
2009-03-16 08:24:13 +01:00
2009-03-16 08:24:13 +01:00
2009-04-06 18:42:59 +02:00
2009-03-16 08:19:29 +01:00
2009-04-30 00:26:14 -05:00
2009-04-06 18:44:54 +02:00
2008-07-28 16:59:25 +10:00
2009-02-09 08:47:34 +01:00
2009-02-09 08:47:34 +01:00
2009-01-19 14:45:55 +11:00
2009-02-04 09:33:58 +01:00
2009-03-29 09:55:42 +02:00
2008-12-11 13:13:33 +11:00
2009-01-19 14:45:55 +11:00
2009-01-19 14:45:55 +11:00
2009-03-29 09:55:42 +02:00
2008-10-30 17:39:58 +11:00
2008-12-04 15:39:23 +11:00
2009-03-29 09:55:42 +02:00
2008-10-30 17:39:58 +11:00
2009-02-09 08:37:14 +01:00
2008-11-17 17:37:10 +11:00
2009-03-29 09:55:42 +02:00
2009-02-09 08:37:39 +01:00
2009-03-29 09:55:42 +02:00
2008-08-13 16:13:45 +10:00
2009-04-06 18:48:30 +02:00
2009-02-09 08:38:02 +01:00
2008-10-30 16:55:13 +11:00