summaryrefslogtreecommitdiff
path: root/fs/btrfs/ioctl.c
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2012-11-06 06:48:05 -0800
committerOlof Johansson <olof@lixom.net>2012-11-06 06:48:05 -0800
commit3b19119b95a52200c8ae3df3aa89c21c9a1a8894 (patch)
tree3ae74b8a35b3d1f639a68c1690af1c06e14a1571 /fs/btrfs/ioctl.c
parentccb1cfcb964fa8a8acd58b7783b2e82d7ad7975b (diff)
parente095c0d122c09efabe7d4136ce77f72c636c4879 (diff)
Merge tag 'calxeda-ecx-2000' of git://sources.calxeda.com/kernel/linux into next/soc
Support for Calxeda ECX-2000 SOC from Rob Herring * tag 'calxeda-ecx-2000' of git://sources.calxeda.com/kernel/linux: ARM: highbank: Add initial ECX-2000 support ARM: highbank: abstract out SCU usage ARM: smp_twd: don't warn on no DT node ARM: dts: Add Calxeda ECX-2000 support ARM: highbank: enable coherent DMA for xgmac in dts ARM: highbank: disable unused sdhci and gpio in dts + sync to Linux 3.7-rc3
Diffstat (limited to 'fs/btrfs/ioctl.c')
-rw-r--r--fs/btrfs/ioctl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 61168805f175..8fcf9a59c28d 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -343,7 +343,8 @@ static noinline int btrfs_ioctl_fitrim(struct file *file, void __user *arg)
return -EOPNOTSUPP;
if (copy_from_user(&range, arg, sizeof(range)))
return -EFAULT;
- if (range.start > total_bytes)
+ if (range.start > total_bytes ||
+ range.len < fs_info->sb->s_blocksize)
return -EINVAL;
range.len = min(range.len, total_bytes - range.start);
@@ -570,7 +571,8 @@ static int create_snapshot(struct btrfs_root *root, struct dentry *dentry,
ret = btrfs_commit_transaction(trans,
root->fs_info->extent_root);
}
- BUG_ON(ret);
+ if (ret)
+ goto fail;
ret = pending_snapshot->error;
if (ret)