summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/qgroup.c
diff options
context:
space:
mode:
authorDongsheng Yang2014-11-21 02:14:38 +0100
committerChris Mason2015-04-13 16:52:38 +0200
commit3eeb4d597efc9e068902057f1bd040cffc69e9e6 (patch)
treedef46e7916335d91c3a70a55d5edcdb5148101b3 /fs/btrfs/qgroup.c
parentbtrfs: Support busy loop of write and delete (diff)
downloadkernel-qcow2-linux-3eeb4d597efc9e068902057f1bd040cffc69e9e6.tar.gz
kernel-qcow2-linux-3eeb4d597efc9e068902057f1bd040cffc69e9e6.tar.xz
kernel-qcow2-linux-3eeb4d597efc9e068902057f1bd040cffc69e9e6.zip
btrfs: qgroup: inherit limit info from srcgroup in creating snapshot.
Currently, when we snapshot a subvol, snapshot will not copy the limits from srcqgroup. This patch make the qgroup in snapshot inherit the limit info when create a snapshot. Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com> Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/qgroup.c')
-rw-r--r--fs/btrfs/qgroup.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index 37188c6b408d..34c2753fa4e1 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -2302,6 +2302,14 @@ int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans,
dstgroup->excl_cmpr = level_size;
srcgroup->excl = level_size;
srcgroup->excl_cmpr = level_size;
+
+ /* inherit the limit info */
+ dstgroup->lim_flags = srcgroup->lim_flags;
+ dstgroup->max_rfer = srcgroup->max_rfer;
+ dstgroup->max_excl = srcgroup->max_excl;
+ dstgroup->rsv_rfer = srcgroup->rsv_rfer;
+ dstgroup->rsv_excl = srcgroup->rsv_excl;
+
qgroup_dirty(fs_info, dstgroup);
qgroup_dirty(fs_info, srcgroup);
}