From: Volker Lendecke Date: Tue, 22 Aug 2023 10:58:29 +0000 (+0200) Subject: clifuse: Start implementing forget() X-Git-Tag: tevent-0.16.0~499 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cd2e6c4562828b40edff3be49703cef5f09485f1;p=thirdparty%2Fsamba.git clifuse: Start implementing forget() Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/examples/fuse/clifuse.c b/examples/fuse/clifuse.c index 9c1454fe57e..533fe14c2d4 100644 --- a/examples/fuse/clifuse.c +++ b/examples/fuse/clifuse.c @@ -736,6 +736,25 @@ static void cli_ll_lookup_done(struct tevent_req *req) TALLOC_FREE(state); } +static void +cli_ll_forget(fuse_req_t freq, fuse_ino_t ino, unsigned long nlookup) +{ + struct mount_state *mstate = + talloc_get_type_abort(fuse_req_userdata(freq), + struct mount_state); + struct inode_state *istate = NULL; + + DBG_DEBUG("ino=%ju, nlookup=%lu\n", (uintmax_t)ino, nlookup); + + istate = idr_find(mstate->ino_ctx, ino); + if (istate == NULL) { + fuse_reply_err(freq, ENOENT); + return; + } + TALLOC_FREE(istate); + fuse_reply_none(freq); +} + struct ll_getattr_state { struct mount_state *mstate; fuse_req_t freq; @@ -1399,6 +1418,7 @@ static void cli_ll_releasedir_done(struct tevent_req *req) static struct fuse_lowlevel_ops cli_ll_ops = { .lookup = cli_ll_lookup, + .forget = cli_ll_forget, .getattr = cli_ll_getattr, .open = cli_ll_open, .create = cli_ll_create,