| To: | xfs@xxxxxxxxxxx |
|---|---|
| Subject: | [PATCH 4/9] xfs: switch to NOFS allocation under i_lock in xfs_da_buf_make |
| From: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
| Date: | Sat, 18 Jul 2009 18:14:56 -0400 |
| Cc: | sage@xxxxxxxxxxxx |
| References: | <20090718221452.594956000@xxxxxxxxxxxxxxxxxxxxxx> |
| User-agent: | quilt/0.47-1 |
i_lock is taken in the reclaim context so all allocations under it
must avoid recursions into the filesystem.
Reported by the new reclaim context tracing in lockdep.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Index: linux-2.6/fs/xfs/xfs_da_btree.c
===================================================================
--- linux-2.6.orig/fs/xfs/xfs_da_btree.c 2009-07-10 13:05:24.812364541
+0200
+++ linux-2.6/fs/xfs/xfs_da_btree.c 2009-07-10 13:16:00.834365485 +0200
@@ -2261,9 +2261,9 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bp
int off;
if (nbuf == 1)
- dabuf = kmem_zone_alloc(xfs_dabuf_zone, KM_SLEEP);
+ dabuf = kmem_zone_alloc(xfs_dabuf_zone, KM_NOFS);
else
- dabuf = kmem_alloc(XFS_DA_BUF_SIZE(nbuf), KM_SLEEP);
+ dabuf = kmem_alloc(XFS_DA_BUF_SIZE(nbuf), KM_NOFS);
dabuf->dirty = 0;
#ifdef XFS_DABUF_DEBUG
dabuf->ra = ra;
|
| Previous by Date: | [PATCH 6/9] xfs: switch to NOFS allocation under i_lock in xfs_buf_associate_memory, Christoph Hellwig |
|---|---|
| Next by Date: | [PATCH 1/9] xfs: avoid memory allocation under m_peraglock in growfs code, Christoph Hellwig |
| Previous by Thread: | [PATCH 6/9] xfs: switch to NOFS allocation under i_lock in xfs_buf_associate_memory, Christoph Hellwig |
| Next by Thread: | [PATCH 1/9] xfs: avoid memory allocation under m_peraglock in growfs code, Christoph Hellwig |
| Indexes: | [Date] [Thread] [Top] [All Lists] |