Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09870d27 authored by Dongsheng Yang's avatar Dongsheng Yang Committed by Chris Mason
Browse files

btrfs: qgroup: return EINVAL if level of parent is not higher than child's.



When we create a subvol inheriting a qgroup, we need to check the level
of them. Otherwise, there is a chance a qgroup can inherit another qgroup
at the same level.

Signed-off-by: default avatarDongsheng Yang <yangds.fnst@cn.fujitsu.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
parent e2d1f923
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -2230,6 +2230,11 @@ int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans,
				ret = -EINVAL;
				goto out;
			}

			if ((srcgroup->qgroupid >> 48) <= (objectid >> 48)) {
				ret = -EINVAL;
				goto out;
			}
			++i_qgroups;
		}
	}