[go: up one dir, main page]

|
|
Subscribe / Log in / New account

fuse: add no forget support

From:  yangyun <yangyun50-AT-huawei.com>
To:  Miklos Szeredi <miklos-AT-szeredi.hu>
Subject:  [PATCH v3 0/2] fuse: add no forget support
Date:  Tue, 27 Aug 2024 17:35:01 +0800
Message-ID:  <20240827093503.3397562-1-yangyun50@huawei.com>
Cc:  <josef-AT-toxicpanda.com>, <linux-fsdevel-AT-vger.kernel.org>, <linux-kernel-AT-vger.kernel.org>, <lixiaokeng-AT-huawei.com>
Archive-link:  Article

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/ef7061fef6f8c...
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-yang...
v2:
https://lore.kernel.org/lkml/20240824092553.730338-1-yang...

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(-)

-- 
2.33.0




Copyright © 2024, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds