Skip to content

Commit

Permalink
Btrfs: don't leak transaction in btrfs_sync_file()
Browse files Browse the repository at this point in the history
In btrfs_sync_file(), if the call to btrfs_log_dentry_safe() returns
a negative error (for e.g. -ENOMEM via btrfs_log_inode()), we would
return without ending/freeing the transaction.

Signed-off-by: Josef Bacik <[email protected]>
Signed-off-by: Chris Mason <[email protected]>
  • Loading branch information
fdmanana authored and Chris Mason committed Sep 21, 2013
1 parent a724b43 commit a0634be
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions fs/btrfs/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -1859,8 +1859,8 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)

ret = btrfs_log_dentry_safe(trans, root, dentry);
if (ret < 0) {
mutex_unlock(&inode->i_mutex);
goto out;
/* Fallthrough and commit/free transaction. */
ret = 1;
}

/* we've logged all the items and now have a consistent
Expand Down

0 comments on commit a0634be

Please sign in to comment.