From 13729f103e59932e0c1ff994cd32e4e0f802c664 Mon Sep 17 00:00:00 2001 From: Jan Kara Date: Mon, 12 Jan 2009 23:20:32 +0100 Subject: [PATCH] --- yaml --- r: 130825 b: refs/heads/master c: f8afead7169f0f28a4b421bcbdb510e52a2d094d h: refs/heads/master i: 130823: 582d152c18151f78af390da6d37a017cbc26ee1e v: v3 --- [refs] | 2 +- trunk/fs/ocfs2/quota_global.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 4268888a553b..16db525cfc89 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ea455f8ab68338ba69f5d3362b342c115bea8e13 +refs/heads/master: f8afead7169f0f28a4b421bcbdb510e52a2d094d diff --git a/trunk/fs/ocfs2/quota_global.c b/trunk/fs/ocfs2/quota_global.c index f4efa89baee5..1ed0f7c86869 100644 --- a/trunk/fs/ocfs2/quota_global.c +++ b/trunk/fs/ocfs2/quota_global.c @@ -754,7 +754,9 @@ static int ocfs2_mark_dquot_dirty(struct dquot *dquot) if (dquot->dq_flags & mask) sync = 1; spin_unlock(&dq_data_lock); - if (!sync) { + /* This is a slight hack but we can't afford getting global quota + * lock if we already have a transaction started. */ + if (!sync || journal_current_handle()) { status = ocfs2_write_dquot(dquot); goto out; }