autofs4: kill ->size in autofs_info
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 16 Jan 2011 22:39:15 +0000 (17:39 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 18 Jan 2011 06:21:28 +0000 (01:21 -0500)
It's used only to pass the length of symlink body to
autofs4_get_inode() in autofs4_dir_symlink().  We can
bloody well set inode->i_size in autofs4_dir_symlink()
directly and be done with that.

Acked-by: Ian Kent <raven@themaw.net>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/autofs4/autofs_i.h
fs/autofs4/inode.c
fs/autofs4/root.c

index c6d66db..0925bac 100644 (file)
@@ -88,8 +88,6 @@ struct autofs_info {
 
        uid_t uid;
        gid_t gid;
-
-       size_t  size;
 };
 
 #define AUTOFS_INF_EXPIRING    (1<<0) /* dentry is in the process of expiring */
index 6b6f43f..ac1a99c 100644 (file)
@@ -38,7 +38,6 @@ struct autofs_info *autofs4_init_ino(struct autofs_info *ino,
        if (!reinit) {
                ino->flags = 0;
                ino->dentry = NULL;
-               ino->size = 0;
                INIT_LIST_HEAD(&ino->active);
                ino->active_count = 0;
                INIT_LIST_HEAD(&ino->expiring);
@@ -365,7 +364,6 @@ struct inode *autofs4_get_inode(struct super_block *sb,
                inode->i_op = &autofs4_dir_inode_operations;
                inode->i_fop = &autofs4_dir_operations;
        } else if (S_ISLNK(mode)) {
-               inode->i_size = inf->size;
                inode->i_op = &autofs4_symlink_inode_operations;
        }
 
index e55dcdb..1ad3c6c 100644 (file)
@@ -530,6 +530,7 @@ static int autofs4_dir_symlink(struct inode *dir,
        struct autofs_info *ino = autofs4_dentry_ino(dentry);
        struct autofs_info *p_ino;
        struct inode *inode;
+       size_t size = strlen(symname);
        char *cp;
 
        DPRINTK("%s <- %.*s", symname,
@@ -544,8 +545,7 @@ static int autofs4_dir_symlink(struct inode *dir,
 
        autofs4_del_active(dentry);
 
-       ino->size = strlen(symname);
-       cp = kmalloc(ino->size + 1, GFP_KERNEL);
+       cp = kmalloc(size + 1, GFP_KERNEL);
        if (!cp) {
                if (!dentry->d_fsdata)
                        kfree(ino);
@@ -562,6 +562,7 @@ static int autofs4_dir_symlink(struct inode *dir,
                return -ENOMEM;
        }
        inode->i_private = cp;
+       inode->i_size = size;
        d_add(dentry, inode);
 
        dentry->d_fsdata = ino;