constify ->actor
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 14 May 2017 11:48:51 +0000 (11:48 +0000)
committerStricted <info@stricted.net>
Thu, 11 Oct 2018 16:03:56 +0000 (18:03 +0200)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/alpha/kernel/osf_sys.c
arch/parisc/hpux/fs.c
fs/compat.c
fs/exportfs/expfs.c
fs/gfs2/export.c
fs/nfsd/nfs4recover.c
fs/nfsd/vfs.c
fs/readdir.c
include/linux/fs.h

index ac19c7299d8e1ed2a32edd9f86bec10ab0d1b313..1402fcc11c2c0443d18d59e21192f5af50ecb1c2 100644 (file)
@@ -147,17 +147,16 @@ SYSCALL_DEFINE4(osf_getdirentries, unsigned int, fd,
 {
        int error;
        struct fd arg = fdget(fd);
-       struct osf_dirent_callback buf;
+       struct osf_dirent_callback buf = {
+               .ctx.actor = osf_filldir,
+               .dirent = dirent,
+               .basep = basep,
+               .count = count
+       };
 
        if (!arg.file)
                return -EBADF;
 
-       buf.dirent = dirent;
-       buf.basep = basep;
-       buf.count = count;
-       buf.error = 0;
-       buf.ctx.actor = osf_filldir;
-
        error = iterate_dir(arg.file, &buf.ctx);
        if (error >= 0)
                error = buf.error;
index eca8230267cc78cbf499ff05c7fa3c9dbccd39b7..88d0962de65a8ca97c877b90dfb0b9ac59b0bfac 100644 (file)
@@ -111,19 +111,17 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i
 {
        struct fd arg;
        struct hpux_dirent __user * lastdirent;
-       struct getdents_callback buf;
+       struct getdents_callback buf = {
+               .ctx.actor = filldir,
+               .current_dir = dirent,
+               .count = count
+       };
        int error;
 
        arg = fdget(fd);
        if (!arg.file)
                return -EBADF;
 
-       buf.current_dir = dirent;
-       buf.previous = NULL;
-       buf.count = count;
-       buf.error = 0;
-       buf.ctx.actor = filldir;
-
        error = iterate_dir(arg.file, &buf.ctx);
        if (error >= 0)
                error = buf.error;
index 69ca1e301766e0f91607b3851f8932d32c98568f..6af20de2c1a3c29d5cc7c251d8fb3fa2182de445 100644 (file)
@@ -874,15 +874,14 @@ asmlinkage long compat_sys_old_readdir(unsigned int fd,
 {
        int error;
        struct fd f = fdget(fd);
-       struct compat_readdir_callback buf;
+       struct compat_readdir_callback buf = {
+               .ctx.actor = compat_fillonedir,
+               .dirent = dirent
+       };
 
        if (!f.file)
                return -EBADF;
 
-       buf.result = 0;
-       buf.dirent = dirent;
-       buf.ctx.actor = compat_fillonedir;
-
        error = iterate_dir(f.file, &buf.ctx);
        if (buf.result)
                error = buf.result;
@@ -954,7 +953,11 @@ asmlinkage long compat_sys_getdents(unsigned int fd,
 {
        struct fd f;
        struct compat_linux_dirent __user * lastdirent;
-       struct compat_getdents_callback buf;
+       struct compat_getdents_callback buf = {
+               .ctx.actor = compat_filldir,
+               .current_dir = dirent,
+               .count = count
+       };
        int error;
 
        if (!access_ok(VERIFY_WRITE, dirent, count))
@@ -964,12 +967,6 @@ asmlinkage long compat_sys_getdents(unsigned int fd,
        if (!f.file)
                return -EBADF;
 
-       buf.current_dir = dirent;
-       buf.previous = NULL;
-       buf.count = count;
-       buf.error = 0;
-       buf.ctx.actor = compat_filldir;
-
        error = iterate_dir(f.file, &buf.ctx);
        if (error >= 0)
                error = buf.error;
@@ -1041,7 +1038,11 @@ asmlinkage long compat_sys_getdents64(unsigned int fd,
 {
        struct fd f;
        struct linux_dirent64 __user * lastdirent;
-       struct compat_getdents_callback64 buf;
+       struct compat_getdents_callback64 buf = {
+               .ctx.actor = compat_filldir64,
+               .current_dir = dirent,
+               .count = count
+       };
        int error;
 
        if (!access_ok(VERIFY_WRITE, dirent, count))
@@ -1051,12 +1052,6 @@ asmlinkage long compat_sys_getdents64(unsigned int fd,
        if (!f.file)
                return -EBADF;
 
-       buf.current_dir = dirent;
-       buf.previous = NULL;
-       buf.count = count;
-       buf.error = 0;
-       buf.ctx.actor = compat_filldir64;
-
        error = iterate_dir(f.file, &buf.ctx);
        if (error >= 0)
                error = buf.error;
index 6c8ef1dd4bdf8fc37285884813947f7fe371d419..43b448ddc3dc3e479e457d75720cebb6e512e22f 100644 (file)
@@ -255,7 +255,11 @@ static int get_name(const struct path *path, char *name, struct dentry *child)
        struct inode *dir = path->dentry->d_inode;
        int error;
        struct file *file;
-       struct getdents_callback buffer;
+       struct getdents_callback buffer = {
+               .ctx.actor = filldir_one,
+               .name = name,
+               .ino = child->d_inode->i_ino
+       };
 
        error = -ENOTDIR;
        if (!dir || !S_ISDIR(dir->i_mode))
@@ -275,11 +279,7 @@ static int get_name(const struct path *path, char *name, struct dentry *child)
        if (!file->f_op->readdir && !file->f_op->iterate)
                goto out_close;
 
-       buffer.name = name;
-       buffer.ino = child->d_inode->i_ino;
-       buffer.found = 0;
        buffer.sequence = 0;
-       buffer.ctx.actor = filldir_one;
        while (1) {
                int old_seq = buffer.sequence;
 
index 9973df4ff565b6642247e44f854307a0d696f06a..7102c7a5af4dc777991c899ca043e19e6be4a68f 100644 (file)
@@ -88,7 +88,10 @@ static int gfs2_get_name(struct dentry *parent, char *name,
        struct inode *dir = parent->d_inode;
        struct inode *inode = child->d_inode;
        struct gfs2_inode *dip, *ip;
-       struct get_name_filldir gnfd;
+       struct get_name_filldir gnfd = {
+               .ctx.actor = get_name_filldir,
+               .name = name
+       };
        struct gfs2_holder gh;
        u64 offset = 0;
        int error;
@@ -106,7 +109,6 @@ static int gfs2_get_name(struct dentry *parent, char *name,
        *name = 0;
        gnfd.inum.no_addr = ip->i_no_addr;
        gnfd.inum.no_formal_ino = ip->i_no_formal_ino;
-       gnfd.name = name;
 
        error = gfs2_glock_nq_init(dip->i_gl, LM_ST_SHARED, 0, &gh);
        if (error)
index 45509c23c7a049c979c0d545b644cde414290293..baffdbce3dbb5e5c58a9b5eb00adc3d22a26e165 100644 (file)
@@ -268,7 +268,10 @@ nfsd4_list_rec_dir(recdir_func *f, struct nfsd_net *nn)
 {
        const struct cred *original_cred;
        struct dentry *dir = nn->rec_file->f_path.dentry;
-       struct nfs4_dir_ctx ctx;
+       struct nfs4_dir_ctx ctx = {
+               .ctx.actor = nfsd4_build_namelist,
+               .names = LIST_HEAD_INIT(ctx.names)
+       };
        int status;
 
        status = nfs4_save_creds(&original_cred);
@@ -281,8 +284,6 @@ nfsd4_list_rec_dir(recdir_func *f, struct nfsd_net *nn)
                return status;
        }
 
-       INIT_LIST_HEAD(&ctx.names);     
-       ctx.ctx.actor = nfsd4_build_namelist;
        status = iterate_dir(nn->rec_file, &ctx.ctx);
        mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT);
        while (!list_empty(&ctx.names)) {
index 68d57c58fc6e82f5809ccddfaea94b5d46107253..05b0fb302717b696d695a7bbe863d22ce6757db3 100644 (file)
@@ -1979,11 +1979,14 @@ static int nfsd_buffered_filldir(void *__buf, const char *name, int namlen,
 static __be32 nfsd_buffered_readdir(struct file *file, filldir_t func,
                                    struct readdir_cd *cdp, loff_t *offsetp)
 {
-       struct readdir_data buf;
        struct buffered_dirent *de;
        int host_err;
        int size;
        loff_t offset;
+       struct readdir_data buf = {
+               .ctx.actor = nfsd_buffered_filldir,
+               .dirent = (void *)__get_free_page(GFP_KERNEL)
+       };
 
        buf.ctx.actor = nfsd_buffered_filldir;
        buf.dirent = (void *)__get_free_page(GFP_KERNEL);
index 399cd0d1b4a912a43bdd6107d0db2b898a47ebb4..63de75b25d881c1e79fc4ede12cb6d045b8194d2 100644 (file)
@@ -114,15 +114,14 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
 {
        int error;
        struct fd f = fdget(fd);
-       struct readdir_callback buf;
+       struct readdir_callback buf = {
+               .ctx.actor = fillonedir,
+               .dirent = dirent
+       };
 
        if (!f.file)
                return -EBADF;
 
-       buf.ctx.actor = fillonedir;
-       buf.result = 0;
-       buf.dirent = dirent;
-
        error = iterate_dir(f.file, &buf.ctx);
        if (buf.result)
                error = buf.result;
@@ -200,7 +199,11 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd,
 {
        struct fd f;
        struct linux_dirent __user * lastdirent;
-       struct getdents_callback buf;
+       struct getdents_callback buf = {
+               .ctx.actor = filldir,
+               .count = count,
+               .current_dir = dirent
+       };
        int error;
 
        if (!access_ok(VERIFY_WRITE, dirent, count))
@@ -210,12 +213,6 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd,
        if (!f.file)
                return -EBADF;
 
-       buf.current_dir = dirent;
-       buf.previous = NULL;
-       buf.count = count;
-       buf.error = 0;
-       buf.ctx.actor = filldir;
-
        error = iterate_dir(f.file, &buf.ctx);
        if (error >= 0)
                error = buf.error;
@@ -282,7 +279,11 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd,
 {
        struct fd f;
        struct linux_dirent64 __user * lastdirent;
-       struct getdents_callback64 buf;
+       struct getdents_callback64 buf = {
+               .ctx.actor = filldir64,
+               .count = count,
+               .current_dir = dirent
+       };
        int error;
 
        if (!access_ok(VERIFY_WRITE, dirent, count))
@@ -292,12 +293,6 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd,
        if (!f.file)
                return -EBADF;
 
-       buf.current_dir = dirent;
-       buf.previous = NULL;
-       buf.count = count;
-       buf.error = 0;
-       buf.ctx.actor = filldir64;
-
        error = iterate_dir(f.file, &buf.ctx);
        if (error >= 0)
                error = buf.error;
index 9291ac1cc51bfc102ca0f44a68201594afa71145..5226c3d793e13784071d1401c4160e39c5db6737 100644 (file)
@@ -1543,7 +1543,7 @@ int fiemap_check_flags(struct fiemap_extent_info *fieinfo, u32 fs_flags);
  */
 typedef int (*filldir_t)(void *, const char *, int, loff_t, u64, unsigned);
 struct dir_context {
-       filldir_t actor;
+       const filldir_t actor;
        loff_t pos;
 };