From: Omar Sandoval <osandov@xxxxxx>
Hi,
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. Patch 1 is a cosmetic
comment fix. Patches 2 and 3 are error handling fixes in truncate. Patch
4 gets rid of the useless truncate orphan items. Patches 5 and 6 are
fixes related to orphan items. Patch 7 is a prep patch for patch 8.
Patch 8 is the ENOSPC fix. Patch 9 is a followup cleanup for patch 8,
separated out to make it easier to see the functional changes in patch
8. Patch 10 is another orphan item fix, this time for O_TMPFILE.
I've also posted an xfstest that reproduces this bug.
Thanks!
Omar Sandoval (10):
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 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 unused orphan infrastructure
Btrfs: reserve space for O_TMPFILE orphan item deletion
fs/btrfs/btrfs_inode.h | 19 +-
fs/btrfs/ctree.h | 5 -
fs/btrfs/disk-io.c | 8 -
fs/btrfs/extent-tree.c | 38 ---
fs/btrfs/free-space-cache.c | 6 +-
fs/btrfs/inode.c | 519 ++++++++++++------------------------
6 files changed, 181 insertions(+), 414 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