android_kernel_google_msm/fs/xfs/linux-2.6
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
..
kmem.c
kmem.h xfs: prevent deadlock in xfs_qm_shake() 2009-06-01 22:59:45 -05:00
mrlock.h
sv.h
time.h
xfs_acl.c xfs: use generic Posix ACL code 2009-06-10 17:07:47 +02:00
xfs_aops.c xfs: bump up nr_to_write in xfs_vm_writepage 2009-07-31 00:57:11 -05:00
xfs_aops.h
xfs_buf.c xfs: switch to NOFS allocation under i_lock in xfs_buf_associate_memory 2009-08-12 01:07:38 -05:00
xfs_buf.h
xfs_cred.h
xfs_dmapi_priv.h
xfs_export.c
xfs_export.h
xfs_file.c
xfs_fs_subr.c
xfs_fs_subr.h
xfs_globals.c
xfs_globals.h
xfs_ioctl.c Merge branch 'master' of git://git.kernel.org/pub/scm/fs/xfs/xfs 2009-06-11 16:56:49 -05:00
xfs_ioctl.h
xfs_ioctl32.c xfs: use memdup_user() 2009-04-20 23:02:51 -04:00
xfs_ioctl32.h
xfs_iops.c xfs: reduce bmv_count in xfs_vn_fiemap 2009-07-31 00:56:58 -05:00
xfs_iops.h
xfs_linux.h
xfs_lrw.c xfs: use generic Posix ACL code 2009-06-10 17:07:47 +02:00
xfs_lrw.h
xfs_quotaops.c xfs: split xfs_sync_inodes 2009-06-08 15:35:48 +02:00
xfs_stats.c
xfs_stats.h
xfs_super.c Merge branch 'master' of git://oss.sgi.com/xfs/xfs into for-linus 2009-06-12 21:28:59 -05:00
xfs_super.h
xfs_sync.c xfs: remove SYNC_BDFLUSH 2009-06-08 15:37:16 +02:00
xfs_sync.h xfs: remove SYNC_BDFLUSH 2009-06-08 15:37:16 +02:00
xfs_sysctl.c
xfs_sysctl.h
xfs_version.h
xfs_vnode.h
xfs_xattr.c xfs: use generic Posix ACL code 2009-06-10 17:07:47 +02:00