Message ID | c04a7db7f8824b9216179b1db478f0f0bafe0d91.1723045219.git.fdmanana@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [for,6.1,stable] btrfs: fix double inode unlock for direct IO sync writes | expand |
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 7c3ae295fdb5..e23d178f9778 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -2037,7 +2037,10 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync) out_release_extents: btrfs_release_log_ctx_extents(&ctx); - btrfs_inode_unlock(inode, BTRFS_ILOCK_MMAP); + if (skip_ilock) + up_write(&BTRFS_I(inode)->i_mmap_lock); + else + btrfs_inode_unlock(inode, BTRFS_ILOCK_MMAP); goto out; }