• Josef Bacik's avatar
    btrfs: don't enospc all tickets on flush failure · 895927dc
    Josef Bacik authored
    [ Upstream commit f91587e4 ]
    
    With the introduction of the per-inode block_rsv it became possible to
    have really really large reservation requests made because of data
    fragmentation.  Since the ticket stuff assumed that we'd always have
    relatively small reservation requests it just killed all tickets if we
    were unable to satisfy the current request.
    
    However, this is generally not the case anymore.  So fix this logic to
    instead see if we had a ticket that we were able to give some
    reservation to, and if we were continue the flushing loop again.
    
    Likewise we make the tickets use the space_info_add_old_bytes() method
    of returning what reservation they did receive in hopes that it could
    satisfy reservations down the line.
    Reviewed-by: 's avatarNikolay Borisov <nborisov@suse.com>
    Signed-off-by: 's avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: 's avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: 's avatarSasha Levin <sashal@kernel.org>
    895927dc
Name
Last commit
Last update
..
tests Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...
acl.c Loading commit data...
async-thread.c Loading commit data...
async-thread.h Loading commit data...
backref.c Loading commit data...
backref.h Loading commit data...
btrfs_inode.h Loading commit data...
check-integrity.c Loading commit data...
check-integrity.h Loading commit data...
compression.c Loading commit data...
compression.h Loading commit data...
ctree.c Loading commit data...
ctree.h Loading commit data...
dedupe.h Loading commit data...
delayed-inode.c Loading commit data...
delayed-inode.h Loading commit data...
delayed-ref.c Loading commit data...
delayed-ref.h Loading commit data...
dev-replace.c Loading commit data...
dev-replace.h Loading commit data...
dir-item.c Loading commit data...
disk-io.c Loading commit data...
disk-io.h Loading commit data...
export.c Loading commit data...
export.h Loading commit data...
extent-tree.c Loading commit data...
extent_io.c Loading commit data...
extent_io.h Loading commit data...
extent_map.c Loading commit data...
extent_map.h Loading commit data...
file-item.c Loading commit data...
file.c Loading commit data...
free-space-cache.c Loading commit data...
free-space-cache.h Loading commit data...
free-space-tree.c Loading commit data...
free-space-tree.h Loading commit data...
inode-item.c Loading commit data...
inode-map.c Loading commit data...
inode-map.h Loading commit data...
inode.c Loading commit data...
ioctl.c Loading commit data...
locking.c Loading commit data...
locking.h Loading commit data...
lzo.c Loading commit data...
math.h Loading commit data...
ordered-data.c Loading commit data...
ordered-data.h Loading commit data...
orphan.c Loading commit data...
print-tree.c Loading commit data...
print-tree.h Loading commit data...
props.c Loading commit data...
props.h Loading commit data...
qgroup.c Loading commit data...
qgroup.h Loading commit data...
raid56.c Loading commit data...
raid56.h Loading commit data...
rcu-string.h Loading commit data...
reada.c Loading commit data...
ref-verify.c Loading commit data...
ref-verify.h Loading commit data...
relocation.c Loading commit data...
root-tree.c Loading commit data...
scrub.c Loading commit data...
send.c Loading commit data...
send.h Loading commit data...
struct-funcs.c Loading commit data...
super.c Loading commit data...
sysfs.c Loading commit data...
sysfs.h Loading commit data...
transaction.c Loading commit data...
transaction.h Loading commit data...
tree-checker.c Loading commit data...
tree-checker.h Loading commit data...
tree-defrag.c Loading commit data...
tree-log.c Loading commit data...
tree-log.h Loading commit data...
ulist.c Loading commit data...
ulist.h Loading commit data...
uuid-tree.c Loading commit data...
volumes.c Loading commit data...
volumes.h Loading commit data...
xattr.c Loading commit data...
xattr.h Loading commit data...
zlib.c Loading commit data...
zstd.c Loading commit data...