From: Omar Sandoval <osandov@xxxxxx>
Hi,
This is v2 of the fixes for the orphan item early ENOSPC issue we hit at
Facebook.
Changes since v1:
- Added two extra cleanups, patches 10 and 11
- Added a forgotten clear of the orphan bit in patch 8
- Reworded titles of patches 6 and 9
- Added people's reviewed-bys
Cover letter from v1:
At Facebook we hit an early ENOSPC issue which we tracked down to the
reservations for orphan items of deleted-but-still-open files. The
primary function of this series is to fix that bug, but I ended up
uncovering a pile of other issues in the process, most notably that the
orphan items we create for truncate are useless.
I've also posted an xfstest that reproduces this bug.
Thanks!
Omar Sandoval (12):
Btrfs: remove stale comment referencing vmtruncate()
Btrfs: fix error handling in btrfs_truncate_inode_items()
Btrfs: don't BUG_ON() in btrfs_truncate_inode_items()
Btrfs: stop creating orphan items for truncate
Btrfs: don't release reserve or decrement orphan count if orphan item
already existed
Btrfs: don't return ino to ino cache if inode item removal fails
Btrfs: refactor btrfs_evict_inode() reserve refill dance
Btrfs: fix ENOSPC caused by orphan items reservations
Btrfs: get rid of root->orphan_block_rsv and root->orphan_lock
Btrfs: get rid of btrfs_orphan_commit_root() and root->orphan_inodes
Btrfs: simplify error handling in btrfs_evict_inode()
Btrfs: reserve space for O_TMPFILE orphan item deletion
fs/btrfs/btrfs_inode.h | 19 +-
fs/btrfs/ctree.h | 8 -
fs/btrfs/disk-io.c | 9 -
fs/btrfs/extent-tree.c | 38 ---
fs/btrfs/free-space-cache.c | 6 +-
fs/btrfs/inode.c | 585 +++++++++++-------------------------
fs/btrfs/transaction.c | 1 -
7 files changed, 191 insertions(+), 475 deletions(-)
--
2.17.0
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html