diff options
Diffstat (limited to 'fs/btrfs/tree-log.c')
-rw-r--r-- | fs/btrfs/tree-log.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 016c90fc85db..a089b5944efc 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c | |||
@@ -4251,8 +4251,12 @@ static int btrfs_log_inode(struct btrfs_trans_handle *trans, | |||
4251 | &BTRFS_I(inode)->runtime_flags); | 4251 | &BTRFS_I(inode)->runtime_flags); |
4252 | clear_bit(BTRFS_INODE_COPY_EVERYTHING, | 4252 | clear_bit(BTRFS_INODE_COPY_EVERYTHING, |
4253 | &BTRFS_I(inode)->runtime_flags); | 4253 | &BTRFS_I(inode)->runtime_flags); |
4254 | ret = btrfs_truncate_inode_items(trans, log, | 4254 | while(1) { |
4255 | inode, 0, 0); | 4255 | ret = btrfs_truncate_inode_items(trans, |
4256 | log, inode, 0, 0); | ||
4257 | if (ret != -EAGAIN) | ||
4258 | break; | ||
4259 | } | ||
4256 | } | 4260 | } |
4257 | } else if (test_and_clear_bit(BTRFS_INODE_COPY_EVERYTHING, | 4261 | } else if (test_and_clear_bit(BTRFS_INODE_COPY_EVERYTHING, |
4258 | &BTRFS_I(inode)->runtime_flags) || | 4262 | &BTRFS_I(inode)->runtime_flags) || |