lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250828162951.60437-1-luis@igalia.com>
Date: Thu, 28 Aug 2025 17:29:49 +0100
From: Luis Henriques <luis@...lia.com>
To: Miklos Szeredi <miklos@...redi.hu>
Cc: Bernd Schubert <bernd@...ernd.com>,
	Laura Promberger <laura.promberger@...n.ch>,
	Dave Chinner <david@...morbit.com>,
	Matt Harvey <mharvey@...ptrading.com>,
	linux-fsdevel@...r.kernel.org,
	kernel-dev@...lia.com,
	linux-kernel@...r.kernel.org,
	Luis Henriques <luis@...lia.com>
Subject: [RFC PATCH v5 0/2] fuse: work queues to invalided dentries

Hi Miklos,

Since there are huge changes in v5, I decided to send an early version of
this patch(set).  I'm sure there are bugs and stupid mistakes, but I'd
love to get some early feedback before further testing it.  And that's why
I also decided to add back the RFC tag to the subject.

One annoying effect of making the dentries trees global data structures is
that it makes things more complicated to handle epoch changes (2nd patch).
It forces the work queue to walk through *all* the dentries in *all* the
trees.

Changes since v4:

- Dropped extra check in fuse_dentry_tree_add_node() (Chunsheng)
- Make the dentries trees global instead of per fuse_conn (Miklos)
- Protect trees with hashed locking instead of a single lock (Miklos)
- Added new work queue (2nd patch) specifically to handle epoch (Miklos)

Changes since v3:

- Use of need_resched() instead of limiting the work queue to run for 5
  seconds
- Restore usage of union with rcu_head, in struct fuse_dentry
- Minor changes in comments (e.g. s/workqueue/work queue/)

Changes since v2:

- Major rework, the dentries tree nodes are now in fuse_dentry and they are
  tied to the actual dentry lifetime
- Mount option is now a module parameter
- workqueue now runs for at most 5 seconds before rescheduling



Luis Henriques (2):
  fuse: new work queue to periodically invalidate expired dentries
  fuse: new work queue to invalidate dentries from old epochs

 fs/fuse/dev.c    |   7 +-
 fs/fuse/dir.c    | 251 +++++++++++++++++++++++++++++++++++++++++++----
 fs/fuse/fuse_i.h |  13 +++
 fs/fuse/inode.c  |  48 +++++----
 4 files changed, 276 insertions(+), 43 deletions(-)


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ