
From: Niu YaWei <niu@clusterfs.com>

Don't put root block of quota tree to the free list (when quota file is
completely empty).  That should not actually happen anyway (somebody should
get accounted for the filesystem root and so quota file should never be
empty) but better prevent it here than solve magical quota file
corruption.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/fs/quota_v2.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN fs/quota_v2.c~quota-possible-bug-in-quota-format-v2-support fs/quota_v2.c
--- 25/fs/quota_v2.c~quota-possible-bug-in-quota-format-v2-support	Thu Mar 31 14:54:22 2005
+++ 25-akpm/fs/quota_v2.c	Thu Mar 31 14:54:22 2005
@@ -503,7 +503,8 @@ static int remove_tree(struct dquot *dqu
 		int i;
 		ref[GETIDINDEX(dquot->dq_id, depth)] = cpu_to_le32(0);
 		for (i = 0; i < V2_DQBLKSIZE && !buf[i]; i++);	/* Block got empty? */
-		if (i == V2_DQBLKSIZE) {
+		/* Don't put the root block into the free block list */
+		if (i == V2_DQBLKSIZE && *blk != V2_DQTREEOFF) {
 			put_free_dqblk(sb, type, buf, *blk);
 			*blk = 0;
 		}
_
