Robbie Ko
38a66f3cda
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>
2020-07-29 10:18:30 +02:00
..
tests
btrfs: Correctly handle empty trees in find_first_clear_extent_bit
2020-02-11 04:35:34 -08:00
acl.c
async-thread.c
Btrfs: fix crash during unmount due to race with delayed inode workers
2020-04-17 10:50:15 +02:00
async-thread.h
Btrfs: fix crash during unmount due to race with delayed inode workers
2020-04-17 10:50:15 +02:00
backref.c
btrfs: fix double free on ulist after backref resolution failure
2020-07-29 10:18:30 +02:00
backref.h
block-group.c
btrfs: fix a block group ref counter leak after failure to remove block group
2020-06-30 15:36:47 -04:00
block-group.h
block-rsv.c
btrfs: force chunk allocation if our global rsv is larger than metadata
2020-06-22 09:31:13 +02:00
block-rsv.h
btrfs_inode.h
check-integrity.c
btrfs: fix possible NULL-pointer dereference in integrity checks
2020-02-24 08:36:53 +01:00
check-integrity.h
compression.c
compression.h
ctree.c
Btrfs: fix race between adding and putting tree mod seq elements and nodes
2020-02-11 04:35:34 -08:00
ctree.h
btrfs: check if a log root exists before locking the log_mutex on unlink
2020-06-30 15:37:08 -04:00
delalloc-space.c
Btrfs: fix qgroup double free after failure to reserve metadata for delalloc
2019-10-17 20:13:44 +02:00
delalloc-space.h
delayed-inode.c
btrfs: use nofs allocations for running delayed items
2020-04-17 10:50:15 +02:00
delayed-inode.h
delayed-ref.c
Btrfs: fix race between adding and putting tree mod seq elements and nodes
2020-02-11 04:35:34 -08:00
delayed-ref.h
dev-replace.c
dev-replace.h
dir-item.c
disk-io.c
btrfs: set update the uuid generation as soon as possible
2020-04-17 10:50:15 +02:00
disk-io.h
export.c
export.h
extent-tree.c
btrfs: handle logged extent failure properly
2020-02-28 17:22:13 +01:00
extent_io.c
btrfs: fix page leaks after failure to lock page for delalloc
2020-07-29 10:18:30 +02:00
extent_io.h
extent_map.c
Btrfs: fix race between using extent maps and merging them
2020-02-19 19:53:00 +01:00
extent_map.h
file-item.c
btrfs: do not ignore error from btrfs_next_leaf() when inserting checksums
2020-06-22 09:30:55 +02:00
file.c
btrfs: fix missing semaphore unlock in btrfs_sync_file
2020-04-17 10:50:15 +02:00
free-space-cache.c
btrfs: check page->mapping when loading free space cache
2019-12-17 19:56:02 +01:00
free-space-cache.h
free-space-tree.c
free-space-tree.h
inode-item.c
inode-map.c
btrfs: qgroup: Always free PREALLOC META reserve in btrfs_delalloc_release_extents()
2019-10-15 18:50:07 +02:00
inode-map.h
inode.c
btrfs: fix double put of block group with nocow
2020-07-16 08:16:45 +02:00
ioctl.c
Btrfs: make deduplication with range including the last block work
2020-02-11 04:35:33 -08:00
Kconfig
locking.c
locking.h
lzo.c
Makefile
misc.h
ordered-data.c
Btrfs: fix btrfs_wait_ordered_range() so that it waits for all ordered extents
2020-02-28 17:22:24 +01:00
ordered-data.h
orphan.c
print-tree.c
print-tree.h
props.c
props.h
qgroup.c
btrfs: qgroup: mark qgroup inconsistent if we're inherting snapshot to a new qgroup
2020-06-22 09:31:09 +02:00
qgroup.h
btrfs: destroy qgroup extent records on transaction abort
2020-02-28 17:22:23 +01:00
raid56.c
btrfs: get rid of unique workqueue helper functions
2020-01-09 10:20:06 +01:00
raid56.h
rcu-string.h
reada.c
btrfs: get rid of unique workqueue helper functions
2020-01-09 10:20:06 +01:00
ref-verify.c
btrfs: ref-verify: fix memory leaks
2020-02-19 19:53:00 +01:00
ref-verify.h
relocation.c
btrfs: reloc: clear DEAD_RELOC_TREE bit for orphan roots to prevent runaway balance
2020-07-29 10:18:29 +02:00
root-tree.c
btrfs: do not delete mismatched root refs
2020-01-23 08:22:40 +01:00
scrub.c
btrfs: get rid of unique workqueue helper functions
2020-01-09 10:20:06 +01:00
send.c
btrfs: send: emit file capabilities after chown
2020-06-22 09:31:12 +02:00
send.h
space-info.c
btrfs: improve global reserve stealing logic
2020-06-22 09:31:08 +02:00
space-info.h
btrfs: improve global reserve stealing logic
2020-06-22 09:31:08 +02:00
struct-funcs.c
super.c
btrfs: log message when rw remount is attempted with unclean tree-log
2020-02-19 19:53:01 +01:00
sysfs.c
sysfs.h
transaction.c
btrfs: force chunk allocation if our global rsv is larger than metadata
2020-06-22 09:31:13 +02:00
transaction.h
btrfs: improve global reserve stealing logic
2020-06-22 09:31:08 +02:00
tree-checker.c
Btrfs: make tree checker detect checksum items with overlapping ranges
2019-12-31 16:41:55 +01:00
tree-checker.h
tree-defrag.c
tree-log.c
btrfs: check if a log root exists before locking the log_mutex on unlink
2020-06-30 15:37:08 -04:00
tree-log.h
ulist.c
ulist.h
uuid-tree.c
btrfs: handle ENOENT in btrfs_uuid_tree_iterate
2019-12-31 16:42:05 +01:00
volumes.c
btrfs: fix mount failure caused by race with umount
2020-07-29 10:18:30 +02:00
volumes.h
btrfs: Remove btrfs_bio::flags member
2019-12-17 19:56:06 +01:00
xattr.c
xattr.h
zlib.c
zstd.c