Christoph Hellwig 36fae17a64 xfs: switch to NOFS allocation under i_lock in xfs_buf_associate_memory
xfs_buf_associate_memory is used for setting up the spare buffer for the
log wrap case in xlog_sync which can happen under i_lock when called from
xfs_fsync. The i_lock mutex is taken in reclaim context so all allocations
under it must avoid recursions into the filesystem.  There are a couple
more uses of xfs_buf_associate_memory in the log recovery code that are
also affected by this, but I'd rather keep the code simple than passing on
a gfp_mask argument.  Longer term we should just stop requiring the memoery
allocation in xlog_sync by some smaller rework of the buffer layer.

Reported by the new reclaim context tracing in lockdep.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Felix Blyakher <felixb@sgi.com>
Signed-off-by: Felix Blyakher <felixb@sgi.com>
2009-08-12 01:07:38 -05:00
..
2009-06-11 21:36:14 -04:00
2009-06-11 21:36:14 -04:00
2009-06-11 21:36:07 -04:00
2009-06-11 21:36:01 -04:00
2009-06-11 21:36:01 -04:00
2009-06-11 21:36:07 -04:00
2009-06-11 21:36:14 -04:00
2009-06-11 21:36:07 -04:00
2009-05-15 11:24:59 -05:00
2009-06-11 21:36:07 -04:00
2009-04-02 19:05:09 -07:00
2009-06-12 10:02:03 -05:00
2009-06-11 21:36:15 -04:00
2009-06-11 21:36:11 -04:00
2009-06-11 21:36:11 -04:00
2009-06-11 21:36:15 -04:00
2009-06-11 21:36:07 -04:00
2009-06-11 21:36:15 -04:00
2009-06-11 21:36:16 -04:00
2009-06-11 21:36:11 -04:00
2009-05-22 18:40:59 +10:00
2009-06-11 21:36:07 -04:00
2009-06-11 21:36:11 -04:00
2009-06-11 21:36:12 -04:00
2009-06-11 21:36:07 -04:00
2009-06-11 21:36:11 -04:00
2009-06-11 21:36:01 -04:00
2009-06-11 21:36:11 -04:00
2009-06-11 21:36:11 -04:00
2009-06-11 21:36:13 -04:00
2009-06-11 21:36:12 -04:00
2009-06-11 21:36:07 -04:00
2009-06-11 21:36:07 -04:00
2009-06-11 21:36:16 -04:00
2009-06-11 21:36:11 -04:00
2009-06-11 21:36:13 -04:00
2009-06-11 21:36:16 -04:00
2009-03-27 14:44:03 -04:00
2009-03-31 23:00:27 -04:00
2009-06-11 21:36:08 -04:00
2009-06-11 21:36:06 -04:00
2009-04-02 19:04:48 -07:00
2009-03-31 23:00:26 -04:00
2009-06-11 21:36:02 -04:00
2009-06-11 21:36:07 -04:00
2009-06-11 21:36:11 -04:00
2009-04-07 08:31:16 -07:00
2009-06-11 21:36:01 -04:00
2009-06-11 21:36:08 -04:00
2009-06-11 21:36:02 -04:00
2009-04-20 23:02:52 -04:00
2009-06-11 21:36:11 -04:00
2009-06-11 21:36:02 -04:00