summaryrefslogtreecommitdiff
path: root/fs/btrfs/qgroup.c
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2012-09-05 16:27:00 -0700
committerOlof Johansson <olof@lixom.net>2012-09-05 16:27:00 -0700
commit402efdb48d6a6aef9e91e3112a94b679d787fef7 (patch)
tree69ed39eb1c02fd40e4a2f807f4057e18de6ac13c /fs/btrfs/qgroup.c
parent1875962377574b4edb7b164001e3e341c25290d5 (diff)
parent056876f6c73406c06d530d16d020177f5ec4a0bd (diff)
Merge branch 'pinmux-dt' of git://gitorious.org/sirfprima2-kernel/sirfprima2-kernel into next/dt
This branch enables device tree bindings for the CSR Prima pin control subsystem. All patches acked by Linus W (pinctrl maintainer). * 'pinmux-dt' of git://gitorious.org/sirfprima2-kernel/sirfprima2-kernel: pinctrl: sirf: add DT-binding pinmux mapping support ARM: PRIMA2: rename prima2-cb.dts to prima2.dtsi as it only has SoC features ARM: PRIMA2: add missing interrupts property for pinctrl node + sync to Linux 3.6-rc4
Diffstat (limited to 'fs/btrfs/qgroup.c')
-rw-r--r--fs/btrfs/qgroup.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index bc424ae5a81a..38b42e7bc91d 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -1364,13 +1364,17 @@ int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans,
spin_lock(&fs_info->qgroup_lock);
dstgroup = add_qgroup_rb(fs_info, objectid);
- if (!dstgroup)
+ if (IS_ERR(dstgroup)) {
+ ret = PTR_ERR(dstgroup);
goto unlock;
+ }
if (srcid) {
srcgroup = find_qgroup_rb(fs_info, srcid);
- if (!srcgroup)
+ if (!srcgroup) {
+ ret = -EINVAL;
goto unlock;
+ }
dstgroup->rfer = srcgroup->rfer - level_size;
dstgroup->rfer_cmpr = srcgroup->rfer_cmpr - level_size;
srcgroup->excl = level_size;
@@ -1379,8 +1383,10 @@ int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans,
qgroup_dirty(fs_info, srcgroup);
}
- if (!inherit)
+ if (!inherit) {
+ ret = -EINVAL;
goto unlock;
+ }
i_qgroups = (u64 *)(inherit + 1);
for (i = 0; i < inherit->num_qgroups; ++i) {