From 325a396fde6e279450dd19340451c014e16287e7 Mon Sep 17 00:00:00 2001 From: Jan Kara Date: Fri, 21 May 2010 19:12:51 +0200 Subject: [PATCH] --- yaml --- r: 199356 b: refs/heads/master c: f4b113ae6f772b3c25fdcd73d15e9d8b17c89dcc h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/reiserfs/super.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index d4bf6a8baf3f..3f3eebf8131c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 36a32ae0007c6c1e4e5d1a4363290792c2938f0a +refs/heads/master: f4b113ae6f772b3c25fdcd73d15e9d8b17c89dcc diff --git a/trunk/fs/reiserfs/super.c b/trunk/fs/reiserfs/super.c index f0ab5c94139c..9822fa15118b 100644 --- a/trunk/fs/reiserfs/super.c +++ b/trunk/fs/reiserfs/super.c @@ -158,6 +158,7 @@ static int finish_unfinished(struct super_block *s) #ifdef CONFIG_QUOTA int i; int ms_active_set; + int quota_enabled[MAXQUOTAS]; #endif /* compose key to look for "save" links */ @@ -179,8 +180,15 @@ static int finish_unfinished(struct super_block *s) } /* Turn on quotas so that they are updated correctly */ for (i = 0; i < MAXQUOTAS; i++) { + quota_enabled[i] = 1; if (REISERFS_SB(s)->s_qf_names[i]) { - int ret = reiserfs_quota_on_mount(s, i); + int ret; + + if (sb_has_quota_active(s, i)) { + quota_enabled[i] = 0; + continue; + } + ret = reiserfs_quota_on_mount(s, i); if (ret < 0) reiserfs_warning(s, "reiserfs-2500", "cannot turn on journaled " @@ -304,7 +312,7 @@ static int finish_unfinished(struct super_block *s) #ifdef CONFIG_QUOTA /* Turn quotas off */ for (i = 0; i < MAXQUOTAS; i++) { - if (sb_dqopt(s)->files[i]) + if (sb_dqopt(s)->files[i] && quota_enabled[i]) dquot_quota_off(s, i); } if (ms_active_set)