autofs4: pass mode to autofs4_get_inode() explicitly

In all cases we'd set inf->mode to know value just before
passing it to autofs4_get_inode(). That kills the need
to store it in autofs_info and pass it to autofs_init_ino()

Acked-by: Ian Kent <raven@themaw.net>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro 09f12c03 14a2f00b

+15 -16
+2 -3
fs/autofs4/autofs_i.h
··· 89 uid_t uid; 90 gid_t gid; 91 92 - mode_t mode; 93 size_t size; 94 }; 95 ··· 169 return 0; 170 } 171 172 - struct inode *autofs4_get_inode(struct super_block *, struct autofs_info *); 173 void autofs4_free_ino(struct autofs_info *); 174 175 /* Expiration */ ··· 279 /* Initializing function */ 280 281 int autofs4_fill_super(struct super_block *, void *, int); 282 - struct autofs_info *autofs4_init_ino(struct autofs_info *, struct autofs_sb_info *sbi, mode_t mode); 283 284 /* Queue management functions */ 285
··· 89 uid_t uid; 90 gid_t gid; 91 92 size_t size; 93 }; 94 ··· 170 return 0; 171 } 172 173 + struct inode *autofs4_get_inode(struct super_block *, struct autofs_info *, mode_t); 174 void autofs4_free_ino(struct autofs_info *); 175 176 /* Expiration */ ··· 280 /* Initializing function */ 281 282 int autofs4_fill_super(struct super_block *, void *, int); 283 + struct autofs_info *autofs4_init_ino(struct autofs_info *, struct autofs_sb_info *sbi); 284 285 /* Queue management functions */ 286
+8 -8
fs/autofs4/inode.c
··· 23 #include <linux/module.h> 24 25 struct autofs_info *autofs4_init_ino(struct autofs_info *ino, 26 - struct autofs_sb_info *sbi, mode_t mode) 27 { 28 int reinit = 1; 29 ··· 47 48 ino->uid = 0; 49 ino->gid = 0; 50 - ino->mode = mode; 51 ino->last_used = jiffies; 52 53 ino->sbi = sbi; ··· 257 /* 258 * Get the root inode and dentry, but defer checking for errors. 259 */ 260 - ino = autofs4_init_ino(NULL, sbi, S_IFDIR | 0755); 261 if (!ino) 262 goto fail_free; 263 - root_inode = autofs4_get_inode(s, ino); 264 if (!root_inode) 265 goto fail_ino; 266 ··· 344 } 345 346 struct inode *autofs4_get_inode(struct super_block *sb, 347 - struct autofs_info *inf) 348 { 349 struct inode *inode = new_inode(sb); 350 351 if (inode == NULL) 352 return NULL; 353 354 - inode->i_mode = inf->mode; 355 if (sb->s_root) { 356 inode->i_uid = sb->s_root->d_inode->i_uid; 357 inode->i_gid = sb->s_root->d_inode->i_gid; ··· 360 inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; 361 inode->i_ino = get_next_ino(); 362 363 - if (S_ISDIR(inf->mode)) { 364 inode->i_nlink = 2; 365 inode->i_op = &autofs4_dir_inode_operations; 366 inode->i_fop = &autofs4_dir_operations; 367 - } else if (S_ISLNK(inf->mode)) { 368 inode->i_size = inf->size; 369 inode->i_op = &autofs4_symlink_inode_operations; 370 }
··· 23 #include <linux/module.h> 24 25 struct autofs_info *autofs4_init_ino(struct autofs_info *ino, 26 + struct autofs_sb_info *sbi) 27 { 28 int reinit = 1; 29 ··· 47 48 ino->uid = 0; 49 ino->gid = 0; 50 ino->last_used = jiffies; 51 52 ino->sbi = sbi; ··· 258 /* 259 * Get the root inode and dentry, but defer checking for errors. 260 */ 261 + ino = autofs4_init_ino(NULL, sbi); 262 if (!ino) 263 goto fail_free; 264 + root_inode = autofs4_get_inode(s, ino, S_IFDIR | 0755); 265 if (!root_inode) 266 goto fail_ino; 267 ··· 345 } 346 347 struct inode *autofs4_get_inode(struct super_block *sb, 348 + struct autofs_info *inf, 349 + mode_t mode) 350 { 351 struct inode *inode = new_inode(sb); 352 353 if (inode == NULL) 354 return NULL; 355 356 + inode->i_mode = mode; 357 if (sb->s_root) { 358 inode->i_uid = sb->s_root->d_inode->i_uid; 359 inode->i_gid = sb->s_root->d_inode->i_gid; ··· 360 inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; 361 inode->i_ino = get_next_ino(); 362 363 + if (S_ISDIR(mode)) { 364 inode->i_nlink = 2; 365 inode->i_op = &autofs4_dir_inode_operations; 366 inode->i_fop = &autofs4_dir_operations; 367 + } else if (S_ISLNK(mode)) { 368 inode->i_size = inf->size; 369 inode->i_op = &autofs4_symlink_inode_operations; 370 }
+5 -5
fs/autofs4/root.c
··· 508 if (autofs_type_indirect(sbi->type) && IS_ROOT(dentry->d_parent)) 509 __managed_dentry_set_managed(dentry); 510 511 - ino = autofs4_init_ino(NULL, sbi, 0555); 512 if (!ino) 513 return ERR_PTR(-ENOMEM); 514 ··· 538 if (!autofs4_oz_mode(sbi)) 539 return -EACCES; 540 541 - ino = autofs4_init_ino(ino, sbi, S_IFLNK | 0555); 542 if (!ino) 543 return -ENOMEM; 544 ··· 554 555 strcpy(cp, symname); 556 557 - inode = autofs4_get_inode(dir->i_sb, ino); 558 if (!inode) { 559 kfree(cp); 560 if (!dentry->d_fsdata) ··· 733 DPRINTK("dentry %p, creating %.*s", 734 dentry, dentry->d_name.len, dentry->d_name.name); 735 736 - ino = autofs4_init_ino(ino, sbi, S_IFDIR | 0555); 737 if (!ino) 738 return -ENOMEM; 739 740 autofs4_del_active(dentry); 741 742 - inode = autofs4_get_inode(dir->i_sb, ino); 743 if (!inode) { 744 if (!dentry->d_fsdata) 745 kfree(ino);
··· 508 if (autofs_type_indirect(sbi->type) && IS_ROOT(dentry->d_parent)) 509 __managed_dentry_set_managed(dentry); 510 511 + ino = autofs4_init_ino(NULL, sbi); 512 if (!ino) 513 return ERR_PTR(-ENOMEM); 514 ··· 538 if (!autofs4_oz_mode(sbi)) 539 return -EACCES; 540 541 + ino = autofs4_init_ino(ino, sbi); 542 if (!ino) 543 return -ENOMEM; 544 ··· 554 555 strcpy(cp, symname); 556 557 + inode = autofs4_get_inode(dir->i_sb, ino, S_IFLNK | 0555); 558 if (!inode) { 559 kfree(cp); 560 if (!dentry->d_fsdata) ··· 733 DPRINTK("dentry %p, creating %.*s", 734 dentry, dentry->d_name.len, dentry->d_name.name); 735 736 + ino = autofs4_init_ino(ino, sbi); 737 if (!ino) 738 return -ENOMEM; 739 740 autofs4_del_active(dentry); 741 742 + inode = autofs4_get_inode(dir->i_sb, ino, S_IFDIR | 0555); 743 if (!inode) { 744 if (!dentry->d_fsdata) 745 kfree(ino);