summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2
diff options
context:
space:
mode:
authorJoel Becker <joel.becker@oracle.com>2010-03-26 10:10:08 +0800
committerTao Ma <tao.ma@oracle.com>2010-03-26 10:10:08 +0800
commit95ec0adf0b56d6a3f0ca1ec87173311898486b2e (patch)
treed1f0567655385ceb47c9d9169a6616f15876f6b9 /fs/ocfs2
parent8b06bc592ebc5a31e8d0b9c2ab17c6e78dde1f86 (diff)
downloadlinux-95ec0adf0b56d6a3f0ca1ec87173311898486b2e.tar.gz
linux-95ec0adf0b56d6a3f0ca1ec87173311898486b2e.tar.bz2
linux-95ec0adf0b56d6a3f0ca1ec87173311898486b2e.zip
ocfs2: Don't relink cluster groups when allocating discontig block groups
We don't have enough credits, and the filesystem is in a full state anyway. Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2')
-rw-r--r--fs/ocfs2/suballoc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index e5403acdb3f5..5852a46647a2 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -606,6 +606,14 @@ ocfs2_block_group_alloc_discontig(handle_t *handle,
goto bail;
}
+ /*
+ * We're going to be grabbing from multiple cluster groups.
+ * We don't have enough credits to relink them all, and the
+ * cluster groups will be staying in cache for the duration of
+ * this operation.
+ */
+ ac->ac_allow_chain_relink = 0;
+
/* Claim the first region */
status = ocfs2_block_group_claim_bits(osb, handle, ac, min_bits,
&bit_off, &num_bits);