Btrfs: fix EINVAL checks in btrfs_clone
authorChris Mason <clm@fb.com>
Mon, 7 Apr 2014 14:10:40 +0000 (07:10 -0700)
committerChris Mason <clm@fb.com>
Mon, 7 Apr 2014 16:08:50 +0000 (09:08 -0700)
btrfs_drop_extents can now return -EINVAL, but only one caller
in btrfs_clone was checking for it.  This adds it to the
caller for inline extents, which is where we really need it.

Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/ioctl.c

index 05f8df8..89d5db7 100644 (file)
@@ -3163,8 +3163,9 @@ process_slot:
                                                         new_key.offset + datal,
                                                         1);
                                if (ret) {
-                                       btrfs_abort_transaction(trans, root,
-                                                               ret);
+                                       if (ret != -EINVAL)
+                                               btrfs_abort_transaction(trans,
+                                                       root, ret);
                                        btrfs_end_transaction(trans, root);
                                        goto out;
                                }