btrfs: fix missing semaphore unlock in btrfs_sync_file
authorRobbie Ko <robbieko@synology.com>
Tue, 17 Mar 2020 06:31:02 +0000 (14:31 +0800)
committerDavid Sterba <dsterba@suse.com>
Wed, 25 Mar 2020 15:29:16 +0000 (16:29 +0100)
commit6ff06729c22ec0b7498d900d79cc88cfb8aceaeb
tree90d285bcd137735cd26ca942412fdc47065df5b0
parent351cbf6e4410e7ece05e35d0a07320538f2418b4
btrfs: fix missing semaphore unlock in btrfs_sync_file

Ordered ops are started twice in sync file, once outside of inode mutex
and once inside, taking the dio semaphore. There was one error path
missing the semaphore unlock.

Fixes: aab15e8ec2576 ("Btrfs: fix rare chances for data loss when doing a fast fsync")
CC: stable@vger.kernel.org # 4.19+
Signed-off-by: Robbie Ko <robbieko@synology.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
[ add changelog ]
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/file.c