]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/btrfs/tree-log.c
Btrfs: don't ignore errors from btrfs_run_delayed_items
[karo-tx-linux.git] / fs / btrfs / tree-log.c
index 6797a931cf6229a3007491faaac99cbdf770a3d4..0d9613c3f5e507cc6087decdbc3ef43e3436b396 100644 (file)
@@ -747,7 +747,8 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans,
        ret = btrfs_unlink_inode(trans, root, dir, inode, name, name_len);
        if (ret)
                goto out;
-       btrfs_run_delayed_items(trans, root);
+       else
+               ret = btrfs_run_delayed_items(trans, root);
 out:
        kfree(name);
        iput(inode);
@@ -923,7 +924,9 @@ again:
                                kfree(victim_name);
                                if (ret)
                                        return ret;
-                               btrfs_run_delayed_items(trans, root);
+                               ret = btrfs_run_delayed_items(trans, root);
+                               if (ret)
+                                       return ret;
                                *search_done = 1;
                                goto again;
                        }
@@ -990,7 +993,9 @@ again:
                                                                 inode,
                                                                 victim_name,
                                                                 victim_name_len);
-                                       btrfs_run_delayed_items(trans, root);
+                                       if (!ret)
+                                               ret = btrfs_run_delayed_items(
+                                                                 trans, root);
                                }
                                iput(victim_parent);
                                kfree(victim_name);
@@ -1812,7 +1817,7 @@ again:
                        ret = btrfs_unlink_inode(trans, root, dir, inode,
                                                 name, name_len);
                        if (!ret)
-                               btrfs_run_delayed_items(trans, root);
+                               ret = btrfs_run_delayed_items(trans, root);
                        kfree(name);
                        iput(inode);
                        if (ret)