mbox series

[v3,0/2] fuse: add no forget support

Message ID 20240827093503.3397562-1-yangyun50@huawei.com (mailing list archive)
Headers show
Series fuse: add no forget support | expand

Message

yangyun Aug. 27, 2024, 9:35 a.m. UTC
FUSE_FORGET requests are not used in some cases (e.g., juicefs) but have 
an impact on the system. So add no forget support. The details about no
forget support can be seen in the following patches.

Patch 1 cleans up the allocation and the processing of forget requests.
Patch 2 adds the no forget support based on patch 1.

The link of libfuse with no forget support:
https://github.com/yangyun50/libfuse/commit/ef7061fef6f8c7154c975e1b0348dc9f12f945fe
It enables the no forget by default if the filesystem doesn't implement
the forget operation (i.e., se->op.forget == NULL).

---

v1: 
https://lore.kernel.org/lkml/20240726083752.302301-1-yangyun50@huawei.com/
v2:
https://lore.kernel.org/lkml/20240824092553.730338-1-yangyun50@huawei.com/

Changes from v1->v2:
- Still use fuse_queue_forget in patch 1 (Miklos)
- Simplify function name in patch 2 (Josef)

Changes from v2->v3:
- Still preallocate fuse_forget_link on the inode creation in patch1 (Miklos)

yangyun (2):
  fuse: move fuse_forget_link allocation inside fuse_queue_forget()
  fuse: add support for no forget requests

 fs/fuse/dev.c             | 16 ++++++++--
 fs/fuse/dir.c             | 63 +++++++++------------------------------
 fs/fuse/fuse_i.h          | 33 +++++++++++++++++---
 fs/fuse/inode.c           | 53 ++++++++++++++++----------------
 fs/fuse/readdir.c         | 38 ++++++-----------------
 include/uapi/linux/fuse.h |  3 ++
 6 files changed, 96 insertions(+), 110 deletions(-)