diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 5ba87b0d2ef86d1563705df7ae62f48e59b7cbae..d12107e909870165ae68bc889ae7bac14a7a96ee 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -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