diff options
author | David Sterba <dsterba@suse.cz> | 2014-04-15 18:50:17 +0200 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2014-04-25 01:43:32 +0200 |
commit | 3f9e3df8da3c51649c15db249978a10f7374236a (patch) | |
tree | 27c95d85e319fe75e4643fdeaf79ae928bbef6b3 /fs/btrfs/ioctl.c | |
parent | btrfs: Change the hole range to a more accurate value. (diff) | |
download | linux-3f9e3df8da3c51649c15db249978a10f7374236a.tar.xz linux-3f9e3df8da3c51649c15db249978a10f7374236a.zip |
btrfs: replace error code from btrfs_drop_extents
There's a case which clone does not handle and used to BUG_ON instead,
(testcase xfstests/btrfs/035), now returns EINVAL. This error code is
confusing to the ioctl caller, as it normally signifies errorneous
arguments.
Change it to ENOPNOTSUPP which allows a fall back to copy instead of
clone. This does not affect the common reflink operation.
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to '')
-rw-r--r-- | fs/btrfs/ioctl.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index f2e8fcc279a3..7b001abc73c7 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -3088,7 +3088,7 @@ process_slot: new_key.offset + datal, 1); if (ret) { - if (ret != -EINVAL) + if (ret != -EOPNOTSUPP) btrfs_abort_transaction(trans, root, ret); btrfs_end_transaction(trans, root); @@ -3163,7 +3163,7 @@ process_slot: new_key.offset + datal, 1); if (ret) { - if (ret != -EINVAL) + if (ret != -EOPNOTSUPP) btrfs_abort_transaction(trans, root, ret); btrfs_end_transaction(trans, root); |