mbox series

[v5,0/3] shmemfs stable directory offsets

Message ID 168789864000.157531.11122232592994999253.stgit@manet.1015granger.net (mailing list archive)
Headers show
Series shmemfs stable directory offsets | expand

Message

Chuck Lever June 27, 2023, 8:53 p.m. UTC
The following series implements stable directory offsets for
shmemfs/tmpfs and provides infrastructure for use by other file
systems that are based on simplefs.

I've moved the rename-exchange logic to fs/libfs.c, since that is
something that other filesystems will need and is difficult to get
right. I've tried again to address error handling for that type of
rename. That part hasn't been thoroughly tested, though the series
continues to pass xfstests and various other tests done via NFS
export.


Changes since v4:
- Remove new fields from struct inode/dentry
- Remove EXPORT_SYMBOL and extern for new functions
- Try again to fix error handling for rename_exchange

Changes since v3:
- Rebased on v6.4
- Fixed error handling bugs

Changes since v2:
- Move bulk of stable offset support into fs/libfs.c
- Replace xa_find_after with xas_find_next for efficiency

Changes since v1:
- Break the single patch up into a series

Changes since RFC:
- Destroy xarray in shmem_destroy_inode() instead of free_in_core_inode()
- A few cosmetic updates

---

Chuck Lever (3):
      libfs: Add directory operations for stable offsets
      shmem: Refactor shmem_symlink()
      shmem: stable directory offsets


 fs/libfs.c               | 252 +++++++++++++++++++++++++++++++++++++++
 include/linux/fs.h       |  19 +++
 include/linux/shmem_fs.h |   1 +
 mm/shmem.c               |  62 +++++++---
 4 files changed, 319 insertions(+), 15 deletions(-)

--
Chuck Lever