]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
fs/fuse: introduce and use fuse_simple_idmap_request() helper
authorAlexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Fri, 6 Sep 2024 14:34:51 +0000 (16:34 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Mon, 23 Sep 2024 09:07:55 +0000 (11:07 +0200)
Let's convert all existing callers properly.

No functional changes intended.

Suggested-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/dax.c
fs/fuse/dev.c
fs/fuse/dir.c
fs/fuse/file.c
fs/fuse/fuse_i.h
fs/fuse/inode.c
fs/fuse/ioctl.c
fs/fuse/readdir.c
fs/fuse/xattr.c

index 6d8368d66dd4e3158c5d41ef75c0385ac2410809..12ef91d170bb3091ac35a33d2b9dc38330b00948 100644 (file)
@@ -207,7 +207,7 @@ static int fuse_setup_one_mapping(struct inode *inode, unsigned long start_idx,
        args.in_numargs = 1;
        args.in_args[0].size = sizeof(inarg);
        args.in_args[0].value = &inarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err < 0)
                return err;
        dmap->writable = writable;
@@ -245,7 +245,7 @@ static int fuse_send_removemapping(struct inode *inode,
        args.in_args[0].value = inargp;
        args.in_args[1].size = inargp->count * sizeof(*remove_one);
        args.in_args[1].value = remove_one;
-       return fuse_simple_request(NULL, fm, &args);
+       return fuse_simple_request(fm, &args);
 }
 
 static int dmap_removemapping_list(struct inode *inode, unsigned int num,
index 3e7912c65bc66e8d2c3f1e91b8f60728cca1266c..317d2b30b21f23d26df9aa3afd57e8a40f747522 100644 (file)
@@ -539,9 +539,9 @@ static void fuse_args_to_req(struct fuse_req *req, struct fuse_args *args)
                __set_bit(FR_ASYNC, &req->flags);
 }
 
-ssize_t fuse_simple_request(struct mnt_idmap *idmap,
-                           struct fuse_mount *fm,
-                           struct fuse_args *args)
+ssize_t __fuse_simple_request(struct mnt_idmap *idmap,
+                             struct fuse_mount *fm,
+                             struct fuse_args *args)
 {
        struct fuse_conn *fc = fm->fc;
        struct fuse_req *req;
index 99f9948bf68b54fbcb52b76d6f8887e22ae9b03b..491e112819be7bc9908479cc389f4fb693a7a154 100644 (file)
@@ -230,7 +230,7 @@ static int fuse_dentry_revalidate(struct dentry *entry, unsigned int flags)
                parent = dget_parent(entry);
                fuse_lookup_init(fm->fc, &args, get_node_id(d_inode(parent)),
                                 &entry->d_name, &outarg);
-               ret = fuse_simple_request(NULL, fm, &args);
+               ret = fuse_simple_request(fm, &args);
                dput(parent);
                /* Zero nodeid is same as -ENOENT */
                if (!ret && !outarg.nodeid)
@@ -383,7 +383,7 @@ int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name
        attr_version = fuse_get_attr_version(fm->fc);
 
        fuse_lookup_init(fm->fc, &args, nodeid, name, outarg);
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        /* Zero nodeid is same as -ENOENT, but with valid timeout */
        if (err || !outarg->nodeid)
                goto out_put_forget;
@@ -677,7 +677,7 @@ static int fuse_create_open(struct mnt_idmap *idmap, struct inode *dir,
        if (err)
                goto out_free_ff;
 
-       err = fuse_simple_request(idmap, fm, &args);
+       err = fuse_simple_idmap_request(idmap, fm, &args);
        free_ext_value(&args);
        if (err)
                goto out_free_ff;
@@ -809,7 +809,7 @@ static int create_new_entry(struct mnt_idmap *idmap, struct fuse_mount *fm,
                        goto out_put_forget_req;
        }
 
-       err = fuse_simple_request(idmap, fm, args);
+       err = fuse_simple_idmap_request(idmap, fm, args);
        free_ext_value(args);
        if (err)
                goto out_put_forget_req;
@@ -994,7 +994,7 @@ static int fuse_unlink(struct inode *dir, struct dentry *entry)
        args.in_numargs = 1;
        args.in_args[0].size = entry->d_name.len + 1;
        args.in_args[0].value = entry->d_name.name;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (!err) {
                fuse_dir_changed(dir);
                fuse_entry_unlinked(entry);
@@ -1017,7 +1017,7 @@ static int fuse_rmdir(struct inode *dir, struct dentry *entry)
        args.in_numargs = 1;
        args.in_args[0].size = entry->d_name.len + 1;
        args.in_args[0].value = entry->d_name.name;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (!err) {
                fuse_dir_changed(dir);
                fuse_entry_unlinked(entry);
@@ -1047,7 +1047,7 @@ static int fuse_rename_common(struct mnt_idmap *idmap, struct inode *olddir, str
        args.in_args[1].value = oldent->d_name.name;
        args.in_args[2].size = newent->d_name.len + 1;
        args.in_args[2].value = newent->d_name.name;
-       err = fuse_simple_request(idmap, fm, &args);
+       err = fuse_simple_idmap_request(idmap, fm, &args);
        if (!err) {
                /* ctime changes */
                fuse_update_ctime(d_inode(oldent));
@@ -1222,7 +1222,7 @@ static int fuse_do_statx(struct mnt_idmap *idmap, struct inode *inode,
        args.out_numargs = 1;
        args.out_args[0].size = sizeof(outarg);
        args.out_args[0].value = &outarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err)
                return err;
 
@@ -1280,7 +1280,7 @@ static int fuse_do_getattr(struct mnt_idmap *idmap, struct inode *inode,
        args.out_numargs = 1;
        args.out_args[0].size = sizeof(outarg);
        args.out_args[0].value = &outarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (!err) {
                if (fuse_invalid_attr(&outarg.attr) ||
                    inode_wrong_type(inode, outarg.attr.mode)) {
@@ -1492,7 +1492,7 @@ static int fuse_access(struct inode *inode, int mask)
        args.in_numargs = 1;
        args.in_args[0].size = sizeof(inarg);
        args.in_args[0].value = &inarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err == -ENOSYS) {
                fm->fc->no_access = 1;
                err = 0;
@@ -1604,7 +1604,7 @@ static int fuse_readlink_page(struct inode *inode, struct page *page)
        ap.args.page_zeroing = true;
        ap.args.out_numargs = 1;
        ap.args.out_args[0].size = desc.length;
-       res = fuse_simple_request(NULL, fm, &ap.args);
+       res = fuse_simple_request(fm, &ap.args);
 
        fuse_invalidate_atime(inode);
 
@@ -1889,7 +1889,7 @@ int fuse_flush_times(struct inode *inode, struct fuse_file *ff)
        }
        fuse_setattr_fill(fm->fc, &args, inode, &inarg, &outarg);
 
-       return fuse_simple_request(NULL, fm, &args);
+       return fuse_simple_request(fm, &args);
 }
 
 /*
@@ -2002,7 +2002,7 @@ int fuse_do_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
                        inarg.valid |= FATTR_KILL_SUIDGID;
        }
        fuse_setattr_fill(fc, &args, inode, &inarg, &outarg);
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err) {
                if (err == -EINTR)
                        fuse_invalidate_attr(inode);
index ca553d7a7c9e0f618b076206d11cd97c92d8e695..b8afeca12487062209a28fde1f78f0451191c3a2 100644 (file)
@@ -48,7 +48,7 @@ static int fuse_send_open(struct fuse_mount *fm, u64 nodeid,
        args.out_args[0].size = sizeof(*outargp);
        args.out_args[0].value = outargp;
 
-       return fuse_simple_request(NULL, fm, &args);
+       return fuse_simple_request(fm, &args);
 }
 
 struct fuse_file *fuse_file_alloc(struct fuse_mount *fm, bool release)
@@ -111,7 +111,7 @@ static void fuse_file_put(struct fuse_file *ff, bool sync)
                if (!args) {
                        /* Do nothing when server does not implement 'open' */
                } else if (sync) {
-                       fuse_simple_request(NULL, ff->fm, args);
+                       fuse_simple_request(ff->fm, args);
                        fuse_release_end(ff->fm, args, 0);
                } else {
                        args->end = fuse_release_end;
@@ -539,7 +539,7 @@ static int fuse_flush(struct file *file, fl_owner_t id)
        args.in_args[0].value = &inarg;
        args.force = true;
 
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err == -ENOSYS) {
                fm->fc->no_flush = 1;
                err = 0;
@@ -572,7 +572,7 @@ int fuse_fsync_common(struct file *file, loff_t start, loff_t end,
        args.in_numargs = 1;
        args.in_args[0].size = sizeof(inarg);
        args.in_args[0].value = &inarg;
-       return fuse_simple_request(NULL, fm, &args);
+       return fuse_simple_request(fm, &args);
 }
 
 static int fuse_fsync(struct file *file, loff_t start, loff_t end,
@@ -814,7 +814,7 @@ static ssize_t fuse_send_read(struct fuse_io_args *ia, loff_t pos, size_t count,
        if (ia->io->async)
                return fuse_async_req_send(fm, ia, count);
 
-       return fuse_simple_request(NULL, fm, &ia->ap.args);
+       return fuse_simple_request(fm, &ia->ap.args);
 }
 
 static void fuse_read_update_size(struct inode *inode, loff_t size,
@@ -878,7 +878,7 @@ static int fuse_do_readpage(struct file *file, struct page *page)
                desc.length--;
 
        fuse_read_args_fill(&ia, file, pos, desc.length, FUSE_READ);
-       res = fuse_simple_request(NULL, fm, &ia.ap.args);
+       res = fuse_simple_request(fm, &ia.ap.args);
        if (res < 0)
                return res;
        /*
@@ -976,7 +976,7 @@ static void fuse_send_readpages(struct fuse_io_args *ia, struct file *file)
                if (!err)
                        return;
        } else {
-               res = fuse_simple_request(NULL, fm, &ap->args);
+               res = fuse_simple_request(fm, &ap->args);
                err = res < 0 ? res : 0;
        }
        fuse_readpages_end(fm, &ap->args, err);
@@ -1101,7 +1101,7 @@ static ssize_t fuse_send_write(struct fuse_io_args *ia, loff_t pos,
        if (ia->io->async)
                return fuse_async_req_send(fm, ia, count);
 
-       err = fuse_simple_request(NULL, fm, &ia->ap.args);
+       err = fuse_simple_request(fm, &ia->ap.args);
        if (!err && ia->write.out.size > count)
                err = -EIO;
 
@@ -1147,7 +1147,7 @@ static ssize_t fuse_send_write_pages(struct fuse_io_args *ia,
        if (fm->fc->handle_killpriv_v2 && !capable(CAP_FSETID))
                ia->write.in.write_flags |= FUSE_WRITE_KILL_SUIDGID;
 
-       err = fuse_simple_request(NULL, fm, &ap->args);
+       err = fuse_simple_request(fm, &ap->args);
        if (!err && ia->write.out.size > count)
                err = -EIO;
 
@@ -2662,7 +2662,7 @@ static int fuse_getlk(struct file *file, struct file_lock *fl)
        args.out_numargs = 1;
        args.out_args[0].size = sizeof(outarg);
        args.out_args[0].value = &outarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (!err)
                err = convert_fuse_file_lock(fm->fc, &outarg.lk, fl);
 
@@ -2686,7 +2686,7 @@ static int fuse_setlk(struct file *file, struct file_lock *fl, int flock)
        }
 
        fuse_lk_fill(&args, file, fl, opcode, pid_nr, flock, &inarg);
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
 
        /* locking is restartable */
        if (err == -EINTR)
@@ -2760,7 +2760,7 @@ static sector_t fuse_bmap(struct address_space *mapping, sector_t block)
        args.out_numargs = 1;
        args.out_args[0].size = sizeof(outarg);
        args.out_args[0].value = &outarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err == -ENOSYS)
                fm->fc->no_bmap = 1;
 
@@ -2792,7 +2792,7 @@ static loff_t fuse_lseek(struct file *file, loff_t offset, int whence)
        args.out_numargs = 1;
        args.out_args[0].size = sizeof(outarg);
        args.out_args[0].value = &outarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err) {
                if (err == -ENOSYS) {
                        fm->fc->no_lseek = 1;
@@ -2925,7 +2925,7 @@ __poll_t fuse_file_poll(struct file *file, poll_table *wait)
        args.out_numargs = 1;
        args.out_args[0].size = sizeof(outarg);
        args.out_args[0].value = &outarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
 
        if (!err)
                return demangle_poll(outarg.revents);
@@ -3147,7 +3147,7 @@ static long fuse_file_fallocate(struct file *file, int mode, loff_t offset,
        args.in_numargs = 1;
        args.in_args[0].size = sizeof(inarg);
        args.in_args[0].value = &inarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err == -ENOSYS) {
                fm->fc->no_fallocate = 1;
                err = -EOPNOTSUPP;
@@ -3259,7 +3259,7 @@ static ssize_t __fuse_copy_file_range(struct file *file_in, loff_t pos_in,
        args.out_numargs = 1;
        args.out_args[0].size = sizeof(outarg);
        args.out_args[0].value = &outarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err == -ENOSYS) {
                fc->no_copy_file_range = 1;
                err = -EOPNOTSUPP;
index 7dd0661aeab60bcbb624370b4e393b405932a270..b2c7834f21b58ce6820ca2353095d5575ad36623 100644 (file)
@@ -1147,8 +1147,22 @@ void __exit fuse_ctl_cleanup(void);
 /**
  * Simple request sending that does request allocation and freeing
  */
-ssize_t fuse_simple_request(struct mnt_idmap *idmap, struct fuse_mount *fm,
-                           struct fuse_args *args);
+ssize_t __fuse_simple_request(struct mnt_idmap *idmap,
+                             struct fuse_mount *fm,
+                             struct fuse_args *args);
+
+static inline ssize_t fuse_simple_request(struct fuse_mount *fm, struct fuse_args *args)
+{
+       return __fuse_simple_request(NULL, fm, args);
+}
+
+static inline ssize_t fuse_simple_idmap_request(struct mnt_idmap *idmap,
+                                               struct fuse_mount *fm,
+                                               struct fuse_args *args)
+{
+       return __fuse_simple_request(idmap, fm, args);
+}
+
 int fuse_simple_background(struct fuse_mount *fm, struct fuse_args *args,
                           gfp_t gfp_flags);
 
index d7edb3fb829fc8d68227a4a7de80b998b7286e60..fd3321e29a3e569bf06be22a5383cf34fd42c051 100644 (file)
@@ -586,7 +586,7 @@ static void fuse_send_destroy(struct fuse_mount *fm)
                args.opcode = FUSE_DESTROY;
                args.force = true;
                args.nocreds = true;
-               fuse_simple_request(NULL, fm, &args);
+               fuse_simple_request(fm, &args);
        }
 }
 
@@ -624,7 +624,7 @@ static int fuse_statfs(struct dentry *dentry, struct kstatfs *buf)
        args.out_numargs = 1;
        args.out_args[0].size = sizeof(outarg);
        args.out_args[0].value = &outarg;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (!err)
                convert_fuse_statfs(buf, &outarg.st);
        return err;
@@ -713,7 +713,7 @@ static int fuse_sync_fs(struct super_block *sb, int wait)
        args.nodeid = get_node_id(sb->s_root->d_inode);
        args.out_numargs = 0;
 
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err == -ENOSYS) {
                fc->sync_fs = 0;
                err = 0;
index b40dd931167d1b5c9afc3f06b10f89132252b3bc..572ce8a82ceb9c93fa92f589ba8e9d288062f8c9 100644 (file)
@@ -18,7 +18,7 @@ static ssize_t fuse_send_ioctl(struct fuse_mount *fm, struct fuse_args *args,
        args->out_args[0].size = sizeof(*outarg);
        args->out_args[0].value = outarg;
 
-       ret = fuse_simple_request(NULL, fm, args);
+       ret = fuse_simple_request(fm, args);
 
        /* Translate ENOSYS, which shouldn't be returned from fs */
        if (ret == -ENOSYS)
index e8a09328942138440290676843deffda7a193338..0377b6dc24c80db8eb90750cf97855282e1ea7f1 100644 (file)
@@ -279,7 +279,7 @@ static void fuse_force_forget(struct file *file, u64 nodeid)
        args.force = true;
        args.noreply = true;
 
-       fuse_simple_request(NULL, fm, &args);
+       fuse_simple_request(fm, &args);
        /* ignore errors */
 }
 
@@ -358,7 +358,7 @@ static int fuse_readdir_uncached(struct file *file, struct dir_context *ctx)
                                    FUSE_READDIR);
        }
        locked = fuse_lock_inode(inode);
-       res = fuse_simple_request(NULL, fm, &ap->args);
+       res = fuse_simple_request(fm, &ap->args);
        fuse_unlock_inode(inode, locked);
        if (res >= 0) {
                if (!res) {
index 0a9b60de366807b52c5a08119db9ffce4973dc4c..9f568d345c51236ddd421b162820a4ea9b0734f4 100644 (file)
@@ -37,7 +37,7 @@ int fuse_setxattr(struct inode *inode, const char *name, const void *value,
        args.in_args[1].value = name;
        args.in_args[2].size = size;
        args.in_args[2].value = value;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err == -ENOSYS) {
                fm->fc->no_setxattr = 1;
                err = -EOPNOTSUPP;
@@ -79,7 +79,7 @@ ssize_t fuse_getxattr(struct inode *inode, const char *name, void *value,
                args.out_args[0].size = sizeof(outarg);
                args.out_args[0].value = &outarg;
        }
-       ret = fuse_simple_request(NULL, fm, &args);
+       ret = fuse_simple_request(fm, &args);
        if (!ret && !size)
                ret = min_t(size_t, outarg.size, XATTR_SIZE_MAX);
        if (ret == -ENOSYS) {
@@ -141,7 +141,7 @@ ssize_t fuse_listxattr(struct dentry *entry, char *list, size_t size)
                args.out_args[0].size = sizeof(outarg);
                args.out_args[0].value = &outarg;
        }
-       ret = fuse_simple_request(NULL, fm, &args);
+       ret = fuse_simple_request(fm, &args);
        if (!ret && !size)
                ret = min_t(size_t, outarg.size, XATTR_LIST_MAX);
        if (ret > 0 && size)
@@ -167,7 +167,7 @@ int fuse_removexattr(struct inode *inode, const char *name)
        args.in_numargs = 1;
        args.in_args[0].size = strlen(name) + 1;
        args.in_args[0].value = name;
-       err = fuse_simple_request(NULL, fm, &args);
+       err = fuse_simple_request(fm, &args);
        if (err == -ENOSYS) {
                fm->fc->no_removexattr = 1;
                err = -EOPNOTSUPP;