From 5ceb0b05cb48e6cfa2c81160df9f1212623e86eb Mon Sep 17 00:00:00 2001 From: Luis Henriques Date: Thu, 22 May 2025 15:15:15 +0100 Subject: fuse: add support to FUSE_NOTIFY_INC_EPOCH This patch adds support for the FUSE INC_EPOCH notify. This new operation simply increments the FUSE connection epoch value, allowing to invalidate all the dentries next time they are revalidated. Signed-off-by: Luis Henriques --- lib/fuse_lowlevel.c | 13 +++++++++++++ lib/fuse_versionscript | 1 + 2 files changed, 14 insertions(+) (limited to 'lib') diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c index 5568786..13c05c6 100644 --- a/lib/fuse_lowlevel.c +++ b/lib/fuse_lowlevel.c @@ -2973,6 +2973,19 @@ int fuse_lowlevel_notify_inval_inode(struct fuse_session *se, fuse_ino_t ino, return send_notify_iov(se, FUSE_NOTIFY_INVAL_INODE, iov, 2); } +int fuse_lowlevel_notify_increment_epoch(struct fuse_session *se) +{ + struct iovec iov[1]; + + if (!se) + return -EINVAL; + + if (se->conn.proto_minor < 44) + return -ENOSYS; + + return send_notify_iov(se, FUSE_NOTIFY_INC_EPOCH, iov, 1); +} + /** * Notify parent attributes and the dentry matching parent/name * diff --git a/lib/fuse_versionscript b/lib/fuse_versionscript index ab57d7c..2d8884d 100644 --- a/lib/fuse_versionscript +++ b/lib/fuse_versionscript @@ -208,6 +208,7 @@ FUSE_3.18 { fuse_set_feature_flag; fuse_unset_feature_flag; fuse_get_feature_flag; + fuse_lowlevel_notify_increment_epoch; # Not part of public API, for internal test use only fuse_convert_to_conn_want_ext; -- cgit v1.2.3