]> git.hungrycats.org Git - linux/commit
btrfs: fix page leaks after failure to lock page for delalloc
authorRobbie Ko <robbieko@synology.com>
Mon, 20 Jul 2020 01:42:09 +0000 (09:42 +0800)
committerZygo Blaxell <ce3g8jdj@umail.furryterror.org>
Mon, 31 Aug 2020 19:12:30 +0000 (15:12 -0400)
commit766ad08d246c2df4e3179e7288e1221e70d1d18e
tree454443a3473e2b70755750155c0c4e4a945cc4a1
parentce784573b27d76fc669f4fff83a3d30b46f25058
btrfs: fix page leaks after failure to lock page for delalloc

commit 5909ca110b29aa16b23b52b8de8d3bb1035fd738 upstream.

When locking pages for delalloc, we check if it's dirty and mapping still
matches. If it does not match, we need to return -EAGAIN and release all
pages. Only the current page was put though, iterate over all the
remaining pages too.

CC: stable@vger.kernel.org # 4.14+
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Robbie Ko <robbieko@synology.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 38a66f3cdab4b256be1313b64c0394c6dc001b79)
fs/btrfs/extent_io.c