diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2019-09-10 15:04:08 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2019-09-10 16:29:48 +0200 |
commit | 3545fe21128262d425dd476b6d31f9a9e4d1b7a7 (patch) | |
tree | ac471232b1746baf3fa86507982bcf97933af8ee /fs/fuse/readdir.c | |
parent | 454a7613f54e64a36b257812ae879ef8567c675e (diff) | |
download | lwn-3545fe21128262d425dd476b6d31f9a9e4d1b7a7.tar.gz lwn-3545fe21128262d425dd476b6d31f9a9e4d1b7a7.zip |
fuse: convert fuse_force_forget() to simple api
Move this function to the readdir.c where its only caller resides.
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/fuse/readdir.c')
-rw-r--r-- | fs/fuse/readdir.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/fs/fuse/readdir.c b/fs/fuse/readdir.c index 574d03f8a573..56a19faa855d 100644 --- a/fs/fuse/readdir.c +++ b/fs/fuse/readdir.c @@ -249,6 +249,27 @@ retry: return 0; } +static void fuse_force_forget(struct file *file, u64 nodeid) +{ + struct inode *inode = file_inode(file); + struct fuse_conn *fc = get_fuse_conn(inode); + struct fuse_forget_in inarg; + FUSE_ARGS(args); + + memset(&inarg, 0, sizeof(inarg)); + inarg.nlookup = 1; + args.opcode = FUSE_FORGET; + args.nodeid = nodeid; + args.in_numargs = 1; + args.in_args[0].size = sizeof(inarg); + args.in_args[0].value = &inarg; + args.force = true; + args.noreply = true; + + fuse_simple_request(fc, &args); + /* ignore errors */ +} + static int parse_dirplusfile(char *buf, size_t nbytes, struct file *file, struct dir_context *ctx, u64 attr_version) { |