OSDN Git Service

btrfs: qgroup: return EINVAL if level of parent is not higher than child's.
[uclinux-h8/linux.git] / fs / btrfs / qgroup.c
index 17881ad..4ec86b3 100644 (file)
@@ -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;
                }
        }