aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/tree-log.c
diff options
context:
space:
mode:
authorFilipe David Borba Manana <fdmanana@gmail.com>2013-08-05 04:25:47 -0400
committerChris Mason <chris.mason@fusionio.com>2013-09-01 08:04:54 -0400
commitada9af215cf7ce663ff3bf9d255923d75b57a4ce (patch)
tree80fc9f1a4150606bfa5ec3f5af67134134afea45 /fs/btrfs/tree-log.c
parent2bac325ea8f117636e6601e66a67d2df58974610 (diff)
Btrfs: don't ignore errors from btrfs_run_delayed_items
tree-log.c was ignoring the return value from btrfs_run_delayed_items() in several places. Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com> Reviewed-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Josef Bacik <jbacik@fusionio.com> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'fs/btrfs/tree-log.c')
-rw-r--r--fs/btrfs/tree-log.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 6797a931cf62..0d9613c3f5e5 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -747,7 +747,8 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans,
747 ret = btrfs_unlink_inode(trans, root, dir, inode, name, name_len); 747 ret = btrfs_unlink_inode(trans, root, dir, inode, name, name_len);
748 if (ret) 748 if (ret)
749 goto out; 749 goto out;
750 btrfs_run_delayed_items(trans, root); 750 else
751 ret = btrfs_run_delayed_items(trans, root);
751out: 752out:
752 kfree(name); 753 kfree(name);
753 iput(inode); 754 iput(inode);
@@ -923,7 +924,9 @@ again:
923 kfree(victim_name); 924 kfree(victim_name);
924 if (ret) 925 if (ret)
925 return ret; 926 return ret;
926 btrfs_run_delayed_items(trans, root); 927 ret = btrfs_run_delayed_items(trans, root);
928 if (ret)
929 return ret;
927 *search_done = 1; 930 *search_done = 1;
928 goto again; 931 goto again;
929 } 932 }
@@ -990,7 +993,9 @@ again:
990 inode, 993 inode,
991 victim_name, 994 victim_name,
992 victim_name_len); 995 victim_name_len);
993 btrfs_run_delayed_items(trans, root); 996 if (!ret)
997 ret = btrfs_run_delayed_items(
998 trans, root);
994 } 999 }
995 iput(victim_parent); 1000 iput(victim_parent);
996 kfree(victim_name); 1001 kfree(victim_name);
@@ -1812,7 +1817,7 @@ again:
1812 ret = btrfs_unlink_inode(trans, root, dir, inode, 1817 ret = btrfs_unlink_inode(trans, root, dir, inode,
1813 name, name_len); 1818 name, name_len);
1814 if (!ret) 1819 if (!ret)
1815 btrfs_run_delayed_items(trans, root); 1820 ret = btrfs_run_delayed_items(trans, root);
1816 kfree(name); 1821 kfree(name);
1817 iput(inode); 1822 iput(inode);
1818 if (ret) 1823 if (ret)