diff options
Diffstat (limited to 'fs/btrfs/tree-log.c')
| -rw-r--r-- | fs/btrfs/tree-log.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 2017d0ff511c..c86670f4f285 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c | |||
| @@ -637,7 +637,7 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans, | |||
| 637 | } | 637 | } |
| 638 | 638 | ||
| 639 | inode_set_bytes(inode, saved_nbytes); | 639 | inode_set_bytes(inode, saved_nbytes); |
| 640 | btrfs_update_inode(trans, root, inode); | 640 | ret = btrfs_update_inode(trans, root, inode); |
| 641 | out: | 641 | out: |
| 642 | if (inode) | 642 | if (inode) |
| 643 | iput(inode); | 643 | iput(inode); |
| @@ -690,6 +690,8 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans, | |||
| 690 | kfree(name); | 690 | kfree(name); |
| 691 | 691 | ||
| 692 | iput(inode); | 692 | iput(inode); |
| 693 | |||
| 694 | btrfs_run_delayed_items(trans, root); | ||
| 693 | return ret; | 695 | return ret; |
| 694 | } | 696 | } |
| 695 | 697 | ||
| @@ -895,6 +897,7 @@ again: | |||
| 895 | ret = btrfs_unlink_inode(trans, root, dir, | 897 | ret = btrfs_unlink_inode(trans, root, dir, |
| 896 | inode, victim_name, | 898 | inode, victim_name, |
| 897 | victim_name_len); | 899 | victim_name_len); |
| 900 | btrfs_run_delayed_items(trans, root); | ||
| 898 | } | 901 | } |
| 899 | kfree(victim_name); | 902 | kfree(victim_name); |
| 900 | ptr = (unsigned long)(victim_ref + 1) + victim_name_len; | 903 | ptr = (unsigned long)(victim_ref + 1) + victim_name_len; |
| @@ -1130,7 +1133,7 @@ static noinline int link_to_fixup_dir(struct btrfs_trans_handle *trans, | |||
| 1130 | btrfs_release_path(path); | 1133 | btrfs_release_path(path); |
| 1131 | if (ret == 0) { | 1134 | if (ret == 0) { |
| 1132 | btrfs_inc_nlink(inode); | 1135 | btrfs_inc_nlink(inode); |
| 1133 | btrfs_update_inode(trans, root, inode); | 1136 | ret = btrfs_update_inode(trans, root, inode); |
| 1134 | } else if (ret == -EEXIST) { | 1137 | } else if (ret == -EEXIST) { |
| 1135 | ret = 0; | 1138 | ret = 0; |
| 1136 | } else { | 1139 | } else { |
| @@ -1475,6 +1478,9 @@ again: | |||
| 1475 | ret = btrfs_unlink_inode(trans, root, dir, inode, | 1478 | ret = btrfs_unlink_inode(trans, root, dir, inode, |
| 1476 | name, name_len); | 1479 | name, name_len); |
| 1477 | BUG_ON(ret); | 1480 | BUG_ON(ret); |
| 1481 | |||
| 1482 | btrfs_run_delayed_items(trans, root); | ||
| 1483 | |||
| 1478 | kfree(name); | 1484 | kfree(name); |
| 1479 | iput(inode); | 1485 | iput(inode); |
| 1480 | 1486 | ||
