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>
This commit is contained in:
David Sterba
2014-04-15 18:50:17 +02:00
committed by Chris Mason
parent c5f7d0bb29
commit 3f9e3df8da
2 changed files with 5 additions and 5 deletions

View File

@@ -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);