summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-08-09 04:56:31 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2015-08-09 04:56:31 +0200
commitaf0b3152bbfebd3f8291fd61988c12ece4f60f57 (patch)
tree1c3b80fc15b7d4880d8bb67f39ddd4e78db504fd
parentMerge branch 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang... (diff)
parentbtrfs: qgroup: Fix a regression in qgroup reserved space. (diff)
downloadlinux-af0b3152bbfebd3f8291fd61988c12ece4f60f57.tar.xz
linux-af0b3152bbfebd3f8291fd61988c12ece4f60f57.zip
Merge branch 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
Pull btrfs fix from Chris Mason: "We have a btrfs quota regression fix. I merged this one on Thursday and have run it through tests against current master. Normally I wouldn't have sent this while you were finalizing rc6, but I'm feeding mosquitoes in the adirondacks next week, so I wanted to get this one out before leaving. I'll leave longer tests running and check on things during the week, but I don't expect any problems" * 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: btrfs: qgroup: Fix a regression in qgroup reserved space.
-rw-r--r--fs/btrfs/qgroup.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index e9ace099162c..8a8202956576 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -1651,6 +1651,11 @@ static int qgroup_update_counters(struct btrfs_fs_info *fs_info,
/* Exclusive -> exclusive, nothing changed */
}
}
+
+ /* For exclusive extent, free its reserved bytes too */
+ if (nr_old_roots == 0 && nr_new_roots == 1 &&
+ cur_new_count == nr_new_roots)
+ qg->reserved -= num_bytes;
if (dirty)
qgroup_dirty(fs_info, qg);
}