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