Commit 48fde701aff662559b38d9a609574068f22d00fe

Authored by Al Viro
1 parent 6b4231e2f9

switch open-coded instances of d_make_root() to new helper

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Showing 64 changed files with 105 additions and 264 deletions Side-by-side Diff

arch/powerpc/platforms/cell/spufs/inode.c
... ... @@ -757,9 +757,9 @@
757 757 goto out_iput;
758 758  
759 759 ret = -ENOMEM;
760   - sb->s_root = d_alloc_root(inode);
  760 + sb->s_root = d_make_root(inode);
761 761 if (!sb->s_root)
762   - goto out_iput;
  762 + goto out;
763 763  
764 764 return 0;
765 765 out_iput:
arch/s390/hypfs/inode.c
... ... @@ -293,11 +293,9 @@
293 293 return -ENOMEM;
294 294 root_inode->i_op = &simple_dir_inode_operations;
295 295 root_inode->i_fop = &simple_dir_operations;
296   - sb->s_root = root_dentry = d_alloc_root(root_inode);
297   - if (!root_dentry) {
298   - iput(root_inode);
  296 + sb->s_root = root_dentry = d_make_root(root_inode);
  297 + if (!root_dentry)
299 298 return -ENOMEM;
300   - }
301 299 if (MACHINE_IS_VM)
302 300 rc = hypfs_vm_create_files(sb, root_dentry);
303 301 else
drivers/misc/ibmasm/ibmasmfs.c
... ... @@ -129,11 +129,9 @@
129 129 root->i_op = &simple_dir_inode_operations;
130 130 root->i_fop = ibmasmfs_dir_ops;
131 131  
132   - root_dentry = d_alloc_root(root);
133   - if (!root_dentry) {
134   - iput(root);
  132 + root_dentry = d_make_root(root);
  133 + if (!root_dentry)
135 134 return -ENOMEM;
136   - }
137 135 sb->s_root = root_dentry;
138 136  
139 137 ibmasmfs_create_files(sb, root_dentry);
drivers/oprofile/oprofilefs.c
... ... @@ -251,11 +251,9 @@
251 251 return -ENOMEM;
252 252 root_inode->i_op = &simple_dir_inode_operations;
253 253 root_inode->i_fop = &simple_dir_operations;
254   - root_dentry = d_alloc_root(root_inode);
255   - if (!root_dentry) {
256   - iput(root_inode);
  254 + root_dentry = d_make_root(root_inode);
  255 + if (!root_dentry)
257 256 return -ENOMEM;
258   - }
259 257  
260 258 sb->s_root = root_dentry;
261 259  
drivers/usb/core/inode.c
... ... @@ -462,16 +462,9 @@
462 462 sb->s_op = &usbfs_ops;
463 463 sb->s_time_gran = 1;
464 464 inode = usbfs_get_inode(sb, S_IFDIR | 0755, 0);
465   -
466   - if (!inode) {
467   - dbg("%s: could not get inode!",__func__);
468   - return -ENOMEM;
469   - }
470   -
471   - root = d_alloc_root(inode);
  465 + root = d_make_root(inode);
472 466 if (!root) {
473 467 dbg("%s: could not get root dentry!",__func__);
474   - iput(inode);
475 468 return -ENOMEM;
476 469 }
477 470 sb->s_root = root;
drivers/usb/gadget/f_fs.c
... ... @@ -1063,13 +1063,9 @@
1063 1063 &simple_dir_operations,
1064 1064 &simple_dir_inode_operations,
1065 1065 &data->perms);
1066   - if (unlikely(!inode))
  1066 + sb->s_root = d_make_root(inode);
  1067 + if (unlikely(!sb->s_root))
1067 1068 goto Enomem;
1068   - sb->s_root = d_alloc_root(inode);
1069   - if (unlikely(!sb->s_root)) {
1070   - iput(inode);
1071   - goto Enomem;
1072   - }
1073 1069  
1074 1070 /* EP0 file */
1075 1071 if (unlikely(!ffs_sb_create_file(sb, "ep0", ffs,
drivers/usb/gadget/inode.c
... ... @@ -2059,10 +2059,8 @@
2059 2059 if (!inode)
2060 2060 goto Enomem;
2061 2061 inode->i_op = &simple_dir_inode_operations;
2062   - if (!(sb->s_root = d_alloc_root (inode))) {
2063   - iput(inode);
  2062 + if (!(sb->s_root = d_make_root (inode)))
2064 2063 goto Enomem;
2065   - }
2066 2064  
2067 2065 /* the ep0 file is named after the controller we expect;
2068 2066 * user mode code can use it for sanity checks, like we do.
... ... @@ -155,9 +155,8 @@
155 155 goto release_sb;
156 156 }
157 157  
158   - root = d_alloc_root(inode);
  158 + root = d_make_root(inode);
159 159 if (!root) {
160   - iput(inode);
161 160 retval = -ENOMEM;
162 161 goto release_sb;
163 162 }
... ... @@ -483,10 +483,9 @@
483 483  
484 484 sb->s_d_op = &adfs_dentry_operations;
485 485 root = adfs_iget(sb, &root_obj);
486   - sb->s_root = d_alloc_root(root);
  486 + sb->s_root = d_make_root(root);
487 487 if (!sb->s_root) {
488 488 int i;
489   - iput(root);
490 489 for (i = 0; i < asb->s_map_size; i++)
491 490 brelse(asb->s_map[i].dm_bh);
492 491 kfree(asb->s_map);
... ... @@ -473,7 +473,7 @@
473 473 root_inode = affs_iget(sb, root_block);
474 474 if (IS_ERR(root_inode)) {
475 475 ret = PTR_ERR(root_inode);
476   - goto out_error_noinode;
  476 + goto out_error;
477 477 }
478 478  
479 479 if (AFFS_SB(sb)->s_flags & SF_INTL)
... ... @@ -481,7 +481,7 @@
481 481 else
482 482 sb->s_d_op = &affs_dentry_operations;
483 483  
484   - sb->s_root = d_alloc_root(root_inode);
  484 + sb->s_root = d_make_root(root_inode);
485 485 if (!sb->s_root) {
486 486 printk(KERN_ERR "AFFS: Get root inode failed\n");
487 487 goto out_error;
... ... @@ -494,9 +494,6 @@
494 494 * Begin the cascaded cleanup ...
495 495 */
496 496 out_error:
497   - if (root_inode)
498   - iput(root_inode);
499   -out_error_noinode:
500 497 kfree(sbi->s_bitmap);
501 498 affs_brelse(root_bh);
502 499 kfree(sbi->s_prefix);
... ... @@ -301,7 +301,6 @@
301 301 {
302 302 struct afs_super_info *as = sb->s_fs_info;
303 303 struct afs_fid fid;
304   - struct dentry *root = NULL;
305 304 struct inode *inode = NULL;
306 305 int ret;
307 306  
308 307  
309 308  
... ... @@ -327,18 +326,16 @@
327 326 set_bit(AFS_VNODE_AUTOCELL, &AFS_FS_I(inode)->flags);
328 327  
329 328 ret = -ENOMEM;
330   - root = d_alloc_root(inode);
331   - if (!root)
  329 + sb->s_root = d_make_root(inode);
  330 + if (!sb->s_root)
332 331 goto error;
333 332  
334 333 sb->s_d_op = &afs_fs_dentry_operations;
335   - sb->s_root = root;
336 334  
337 335 _leave(" = 0");
338 336 return 0;
339 337  
340 338 error:
341   - iput(inode);
342 339 _leave(" = %d", ret);
343 340 return ret;
344 341 }
... ... @@ -247,12 +247,9 @@
247 247 if (!ino)
248 248 goto fail_free;
249 249 root_inode = autofs4_get_inode(s, S_IFDIR | 0755);
250   - if (!root_inode)
251   - goto fail_ino;
252   -
253   - root = d_alloc_root(root_inode);
  250 + root = d_make_root(root_inode);
254 251 if (!root)
255   - goto fail_iput;
  252 + goto fail_ino;
256 253 pipe = NULL;
257 254  
258 255 root->d_fsdata = ino;
... ... @@ -317,9 +314,6 @@
317 314 fail_dput:
318 315 dput(root);
319 316 goto fail_free;
320   -fail_iput:
321   - printk("autofs: get root dentry failed\n");
322   - iput(root_inode);
323 317 fail_ino:
324 318 kfree(ino);
325 319 fail_free:
... ... @@ -852,9 +852,8 @@
852 852 ret = PTR_ERR(root);
853 853 goto unacquire_priv_sbp;
854 854 }
855   - sb->s_root = d_alloc_root(root);
  855 + sb->s_root = d_make_root(root);
856 856 if (!sb->s_root) {
857   - iput(root);
858 857 befs_error(sb, "get root inode failed");
859 858 goto unacquire_priv_sbp;
860 859 }
... ... @@ -367,9 +367,8 @@
367 367 ret = PTR_ERR(inode);
368 368 goto out2;
369 369 }
370   - s->s_root = d_alloc_root(inode);
  370 + s->s_root = d_make_root(inode);
371 371 if (!s->s_root) {
372   - iput(inode);
373 372 ret = -ENOMEM;
374 373 goto out2;
375 374 }
... ... @@ -629,7 +629,6 @@
629 629 void *data, int silent)
630 630 {
631 631 struct inode *inode;
632   - struct dentry *root_dentry;
633 632 struct btrfs_fs_info *fs_info = btrfs_sb(sb);
634 633 struct btrfs_key key;
635 634 int err;
636 635  
... ... @@ -660,14 +659,11 @@
660 659 goto fail_close;
661 660 }
662 661  
663   - root_dentry = d_alloc_root(inode);
664   - if (!root_dentry) {
665   - iput(inode);
  662 + sb->s_root = d_make_root(inode);
  663 + if (!sb->s_root) {
666 664 err = -ENOMEM;
667 665 goto fail_close;
668 666 }
669   -
670   - sb->s_root = root_dentry;
671 667  
672 668 save_mount_options(sb, data);
673 669 cleancache_init_fs(sb);
... ... @@ -655,9 +655,8 @@
655 655 dout("open_root_inode success\n");
656 656 if (ceph_ino(inode) == CEPH_INO_ROOT &&
657 657 fsc->sb->s_root == NULL) {
658   - root = d_alloc_root(inode);
  658 + root = d_make_root(inode);
659 659 if (!root) {
660   - iput(inode);
661 660 root = ERR_PTR(-ENOMEM);
662 661 goto out;
663 662 }
... ... @@ -122,11 +122,9 @@
122 122 goto out_no_root;
123 123 }
124 124  
125   - sb->s_root = d_alloc_root(inode);
126   -
  125 + sb->s_root = d_make_root(inode);
127 126 if (!sb->s_root) {
128 127 rc = -ENOMEM;
129   - iput(inode);
130 128 goto out_no_root;
131 129 }
132 130  
... ... @@ -213,9 +213,8 @@
213 213  
214 214 printk("coda_read_super: rootinode is %ld dev %s\n",
215 215 root->i_ino, root->i_sb->s_id);
216   - sb->s_root = d_alloc_root(root);
  216 + sb->s_root = d_make_root(root);
217 217 if (!sb->s_root) {
218   - iput(root);
219 218 error = -EINVAL;
220 219 goto error;
221 220 }
... ... @@ -91,10 +91,9 @@
91 91 return -ENOMEM;
92 92 }
93 93  
94   - root = d_alloc_root(inode);
  94 + root = d_make_root(inode);
95 95 if (!root) {
96 96 pr_debug("%s: could not get root dentry!\n",__func__);
97   - iput(inode);
98 97 return -ENOMEM;
99 98 }
100 99 config_group_init(&configfs_root_group);
... ... @@ -318,11 +318,9 @@
318 318 root = get_cramfs_inode(sb, &super.root, 0);
319 319 if (IS_ERR(root))
320 320 goto out;
321   - sb->s_root = d_alloc_root(root);
322   - if (!sb->s_root) {
323   - iput(root);
  321 + sb->s_root = d_make_root(root);
  322 + if (!sb->s_root)
324 323 goto out;
325   - }
326 324 return 0;
327 325 out:
328 326 kfree(sbi);
... ... @@ -309,12 +309,11 @@
309 309 inode->i_fop = &simple_dir_operations;
310 310 set_nlink(inode, 2);
311 311  
312   - s->s_root = d_alloc_root(inode);
  312 + s->s_root = d_make_root(inode);
313 313 if (s->s_root)
314 314 return 0;
315 315  
316 316 printk(KERN_ERR "devpts: get root dentry failed\n");
317   - iput(inode);
318 317  
319 318 fail:
320 319 return -ENOMEM;
... ... @@ -550,9 +550,8 @@
550 550 if (IS_ERR(inode))
551 551 goto out_free;
552 552  
553   - s->s_root = d_alloc_root(inode);
  553 + s->s_root = d_make_root(inode);
554 554 if (!s->s_root) {
555   - iput(inode);
556 555 rc = -ENOMEM;
557 556 goto out_free;
558 557 }
... ... @@ -317,10 +317,9 @@
317 317 goto out_no_fs;
318 318 }
319 319  
320   - s->s_root = d_alloc_root(root);
  320 + s->s_root = d_make_root(root);
321 321 if (!(s->s_root)) {
322 322 printk(KERN_ERR "EFS: get root dentry failed\n");
323   - iput(root);
324 323 ret = -ENOMEM;
325 324 goto out_no_fs;
326 325 }
... ... @@ -819,9 +819,8 @@
819 819 ret = PTR_ERR(root);
820 820 goto free_sbi;
821 821 }
822   - sb->s_root = d_alloc_root(root);
  822 + sb->s_root = d_make_root(root);
823 823 if (!sb->s_root) {
824   - iput(root);
825 824 EXOFS_ERR("ERROR: get root inode failed\n");
826 825 ret = -ENOMEM;
827 826 goto free_sbi;
... ... @@ -1088,9 +1088,8 @@
1088 1088 goto failed_mount3;
1089 1089 }
1090 1090  
1091   - sb->s_root = d_alloc_root(root);
  1091 + sb->s_root = d_make_root(root);
1092 1092 if (!sb->s_root) {
1093   - iput(root);
1094 1093 ext2_msg(sb, KERN_ERR, "error: get root inode failed");
1095 1094 ret = -ENOMEM;
1096 1095 goto failed_mount3;
... ... @@ -2046,10 +2046,9 @@
2046 2046 ext3_msg(sb, KERN_ERR, "error: corrupt root inode, run e2fsck");
2047 2047 goto failed_mount3;
2048 2048 }
2049   - sb->s_root = d_alloc_root(root);
  2049 + sb->s_root = d_make_root(root);
2050 2050 if (!sb->s_root) {
2051 2051 ext3_msg(sb, KERN_ERR, "error: get root dentry failed");
2052   - iput(root);
2053 2052 ret = -ENOMEM;
2054 2053 goto failed_mount3;
2055 2054 }
... ... @@ -3735,9 +3735,8 @@
3735 3735 iput(root);
3736 3736 goto failed_mount4;
3737 3737 }
3738   - sb->s_root = d_alloc_root(root);
  3738 + sb->s_root = d_make_root(root);
3739 3739 if (!sb->s_root) {
3740   - iput(root);
3741 3740 ext4_msg(sb, KERN_ERR, "get root dentry failed");
3742 3741 ret = -ENOMEM;
3743 3742 goto failed_mount4;
fs/freevxfs/vxfs_super.c
... ... @@ -224,9 +224,8 @@
224 224 ret = PTR_ERR(root);
225 225 goto out;
226 226 }
227   - sbp->s_root = d_alloc_root(root);
  227 + sbp->s_root = d_make_root(root);
228 228 if (!sbp->s_root) {
229   - iput(root);
230 229 printk(KERN_WARNING "vxfs: unable to get root dentry.\n");
231 230 goto out_free_ilist;
232 231 }
... ... @@ -988,14 +988,9 @@
988 988  
989 989 err = -ENOMEM;
990 990 root = fuse_get_root_inode(sb, d.rootmode);
991   - if (!root)
  991 + root_dentry = d_make_root(root);
  992 + if (!root_dentry)
992 993 goto err_put_conn;
993   -
994   - root_dentry = d_alloc_root(root);
995   - if (!root_dentry) {
996   - iput(root);
997   - goto err_put_conn;
998   - }
999 994 /* only now - we want root dentry with NULL ->d_op */
1000 995 sb->s_d_op = &fuse_dentry_operations;
1001 996  
fs/gfs2/ops_fstype.c
... ... @@ -431,10 +431,9 @@
431 431 fs_err(sdp, "can't read in %s inode: %ld\n", name, PTR_ERR(inode));
432 432 return PTR_ERR(inode);
433 433 }
434   - dentry = d_alloc_root(inode);
  434 + dentry = d_make_root(inode);
435 435 if (!dentry) {
436 436 fs_err(sdp, "can't alloc %s dentry\n", name);
437   - iput(inode);
438 437 return -ENOMEM;
439 438 }
440 439 *dptr = dentry;
... ... @@ -430,15 +430,13 @@
430 430  
431 431 sb->s_d_op = &hfs_dentry_operations;
432 432 res = -ENOMEM;
433   - sb->s_root = d_alloc_root(root_inode);
  433 + sb->s_root = d_make_root(root_inode);
434 434 if (!sb->s_root)
435   - goto bail_iput;
  435 + goto bail_no_root;
436 436  
437 437 /* everything's okay */
438 438 return 0;
439 439  
440   -bail_iput:
441   - iput(root_inode);
442 440 bail_no_root:
443 441 printk(KERN_ERR "hfs: get root inode failed.\n");
444 442 bail:
fs/hostfs/hostfs_kern.c
... ... @@ -966,9 +966,9 @@
966 966 }
967 967  
968 968 err = -ENOMEM;
969   - sb->s_root = d_alloc_root(root_inode);
  969 + sb->s_root = d_make_root(root_inode);
970 970 if (sb->s_root == NULL)
971   - goto out_put;
  971 + goto out;
972 972  
973 973 return 0;
974 974  
... ... @@ -625,11 +625,9 @@
625 625 hpfs_init_inode(root);
626 626 hpfs_read_inode(root);
627 627 unlock_new_inode(root);
628   - s->s_root = d_alloc_root(root);
629   - if (!s->s_root) {
630   - iput(root);
  628 + s->s_root = d_make_root(root);
  629 + if (!s->s_root)
631 630 goto bail0;
632   - }
633 631  
634 632 /*
635 633 * find the root directory's . pointer & finish filling in the inode
... ... @@ -726,17 +726,12 @@
726 726  
727 727 err = -ENOMEM;
728 728 root_inode = get_inode(sb, dget(proc_mnt->mnt_root));
729   - if (!root_inode)
  729 + sb->s_root = d_make_root(root_inode);
  730 + if (!sb->s_root)
730 731 goto out_mntput;
731 732  
732   - sb->s_root = d_alloc_root(root_inode);
733   - if (!sb->s_root)
734   - goto out_iput;
735   -
736 733 return 0;
737 734  
738   - out_iput:
739   - iput(root_inode);
740 735 out_mntput:
741 736 mntput(proc_mnt);
742 737 out:
fs/hugetlbfs/inode.c
... ... @@ -831,8 +831,6 @@
831 831 static int
832 832 hugetlbfs_fill_super(struct super_block *sb, void *data, int silent)
833 833 {
834   - struct inode * inode;
835   - struct dentry * root;
836 834 int ret;
837 835 struct hugetlbfs_config config;
838 836 struct hugetlbfs_sb_info *sbinfo;
839 837  
... ... @@ -865,16 +863,9 @@
865 863 sb->s_magic = HUGETLBFS_MAGIC;
866 864 sb->s_op = &hugetlbfs_ops;
867 865 sb->s_time_gran = 1;
868   - inode = hugetlbfs_get_root(sb, &config);
869   - if (!inode)
  866 + sb->s_root = d_make_root(hugetlbfs_get_root(sb, &config));
  867 + if (!sb->s_root)
870 868 goto out_free;
871   -
872   - root = d_alloc_root(inode);
873   - if (!root) {
874   - iput(inode);
875   - goto out_free;
876   - }
877   - sb->s_root = root;
878 869 return 0;
879 870 out_free:
880 871 kfree(sbinfo);
... ... @@ -947,9 +947,8 @@
947 947 s->s_d_op = &isofs_dentry_ops[table];
948 948  
949 949 /* get the root dentry */
950   - s->s_root = d_alloc_root(inode);
  950 + s->s_root = d_make_root(inode);
951 951 if (!(s->s_root)) {
952   - iput(inode);
953 952 error = -ENOMEM;
954 953 goto out_no_inode;
955 954 }
... ... @@ -561,9 +561,9 @@
561 561 ret = -ENOMEM;
562 562  
563 563 D1(printk(KERN_DEBUG "jffs2_do_fill_super(): d_alloc_root()\n"));
564   - sb->s_root = d_alloc_root(root_i);
  564 + sb->s_root = d_make_root(root_i);
565 565 if (!sb->s_root)
566   - goto out_root_i;
  566 + goto out_root;
567 567  
568 568 sb->s_maxbytes = 0xFFFFFFFF;
569 569 sb->s_blocksize = PAGE_CACHE_SIZE;
... ... @@ -573,8 +573,6 @@
573 573 jffs2_start_garbage_collect_thread(c);
574 574 return 0;
575 575  
576   - out_root_i:
577   - iput(root_i);
578 576 out_root:
579 577 jffs2_free_ino_caches(c);
580 578 jffs2_free_raw_node_refs(c);
... ... @@ -522,7 +522,7 @@
522 522 ret = PTR_ERR(inode);
523 523 goto out_no_rw;
524 524 }
525   - sb->s_root = d_alloc_root(inode);
  525 + sb->s_root = d_make_root(inode);
526 526 if (!sb->s_root)
527 527 goto out_no_root;
528 528  
... ... @@ -540,7 +540,6 @@
540 540  
541 541 out_no_root:
542 542 jfs_err("jfs_read_super: get root dentry failed");
543   - iput(inode);
544 543  
545 544 out_no_rw:
546 545 rc = jfs_umount(sb);
... ... @@ -491,11 +491,9 @@
491 491 inode->i_op = &simple_dir_inode_operations;
492 492 inode->i_fop = &simple_dir_operations;
493 493 set_nlink(inode, 2);
494   - root = d_alloc_root(inode);
495   - if (!root) {
496   - iput(inode);
  494 + root = d_make_root(inode);
  495 + if (!root)
497 496 return -ENOMEM;
498   - }
499 497 for (i = 0; !files->name || files->name[0]; i++, files++) {
500 498 if (!files->name)
501 499 continue;
... ... @@ -315,11 +315,9 @@
315 315 if (IS_ERR(rootdir))
316 316 goto fail;
317 317  
318   - sb->s_root = d_alloc_root(rootdir);
319   - if (!sb->s_root) {
320   - iput(rootdir);
  318 + sb->s_root = d_make_root(rootdir);
  319 + if (!sb->s_root)
321 320 goto fail;
322   - }
323 321  
324 322 /* at that point we know that ->put_super() will be called */
325 323 super->s_erase_page = alloc_pages(GFP_KERNEL, 0);
... ... @@ -716,13 +716,11 @@
716 716 if (!root_inode)
717 717 goto out_disconnect;
718 718 DPRINTK("ncp_fill_super: root vol=%d\n", NCP_FINFO(root_inode)->volNumber);
719   - sb->s_root = d_alloc_root(root_inode);
  719 + sb->s_root = d_make_root(root_inode);
720 720 if (!sb->s_root)
721   - goto out_no_root;
  721 + goto out_disconnect;
722 722 return 0;
723 723  
724   -out_no_root:
725   - iput(root_inode);
726 724 out_disconnect:
727 725 ncp_lock_server(server);
728 726 ncp_disconnect(server);
... ... @@ -49,11 +49,9 @@
49 49 {
50 50 /* The mntroot acts as the dummy root dentry for this superblock */
51 51 if (sb->s_root == NULL) {
52   - sb->s_root = d_alloc_root(inode);
53   - if (sb->s_root == NULL) {
54   - iput(inode);
  52 + sb->s_root = d_make_root(inode);
  53 + if (sb->s_root == NULL)
55 54 return -ENOMEM;
56   - }
57 55 ihold(inode);
58 56 /*
59 57 * Ensure that this dentry is invisible to d_find_alias().
... ... @@ -917,9 +917,8 @@
917 917 if (root->cno == NILFS_CPTREE_CURRENT_CNO) {
918 918 dentry = d_find_alias(inode);
919 919 if (!dentry) {
920   - dentry = d_alloc_root(inode);
  920 + dentry = d_make_root(inode);
921 921 if (!dentry) {
922   - iput(inode);
923 922 ret = -ENOMEM;
924 923 goto failed_dentry;
925 924 }
fs/ocfs2/dlmfs/dlmfs.c
... ... @@ -582,24 +582,14 @@
582 582 void * data,
583 583 int silent)
584 584 {
585   - struct inode * inode;
586   - struct dentry * root;
587   -
588 585 sb->s_maxbytes = MAX_LFS_FILESIZE;
589 586 sb->s_blocksize = PAGE_CACHE_SIZE;
590 587 sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
591 588 sb->s_magic = DLMFS_MAGIC;
592 589 sb->s_op = &dlmfs_ops;
593   - inode = dlmfs_get_root_inode(sb);
594   - if (!inode)
  590 + sb->s_root = d_make_root(dlmfs_get_root_inode(sb));
  591 + if (!sb->s_root)
595 592 return -ENOMEM;
596   -
597   - root = d_alloc_root(inode);
598   - if (!root) {
599   - iput(inode);
600   - return -ENOMEM;
601   - }
602   - sb->s_root = root;
603 593 return 0;
604 594 }
605 595  
... ... @@ -1166,9 +1166,8 @@
1166 1166 goto read_super_error;
1167 1167 }
1168 1168  
1169   - root = d_alloc_root(inode);
  1169 + root = d_make_root(inode);
1170 1170 if (!root) {
1171   - iput(inode);
1172 1171 status = -ENOMEM;
1173 1172 mlog_errno(status);
1174 1173 goto read_super_error;
... ... @@ -539,11 +539,9 @@
539 539 goto out_brelse_bh2;
540 540 }
541 541  
542   - sb->s_root = d_alloc_root(root);
543   - if (!sb->s_root) {
544   - iput(root);
  542 + sb->s_root = d_make_root(root);
  543 + if (!sb->s_root)
545 544 goto out_brelse_bh2;
546   - }
547 545 printk(KERN_DEBUG "omfs: Mounted volume %s\n", omfs_rb->r_name);
548 546  
549 547 ret = 0;
fs/openpromfs/inode.c
... ... @@ -408,13 +408,12 @@
408 408 oi->type = op_inode_node;
409 409 oi->u.node = of_find_node_by_path("/");
410 410  
411   - s->s_root = d_alloc_root(root_inode);
  411 + s->s_root = d_make_root(root_inode);
412 412 if (!s->s_root)
413 413 goto out_no_root_dentry;
414 414 return 0;
415 415  
416 416 out_no_root_dentry:
417   - iput(root_inode);
418 417 ret = -ENOMEM;
419 418 out_no_root:
420 419 printk("openprom_fill_super: get root inode failed\n");
... ... @@ -486,8 +486,6 @@
486 486  
487 487 int proc_fill_super(struct super_block *s)
488 488 {
489   - struct inode * root_inode;
490   -
491 489 s->s_flags |= MS_NODIRATIME | MS_NOSUID | MS_NOEXEC;
492 490 s->s_blocksize = 1024;
493 491 s->s_blocksize_bits = 10;
494 492  
... ... @@ -496,17 +494,10 @@
496 494 s->s_time_gran = 1;
497 495  
498 496 pde_get(&proc_root);
499   - root_inode = proc_get_inode(s, &proc_root);
500   - if (!root_inode)
501   - goto out_no_root;
502   - s->s_root = d_alloc_root(root_inode);
503   - if (!s->s_root) {
504   - iput(root_inode);
505   - goto out_no_root;
506   - }
507   - return 0;
  497 + s->s_root = d_make_root(proc_get_inode(s, &proc_root));
  498 + if (s->s_root)
  499 + return 0;
508 500  
509   -out_no_root:
510 501 printk("proc_read_super: get root inode failed\n");
511 502 pde_put(&proc_root);
512 503 return -ENOMEM;
... ... @@ -303,7 +303,7 @@
303 303 /* override ramfs "dir" options so we catch unlink(2) */
304 304 inode->i_op = &pstore_dir_inode_operations;
305 305  
306   - root = d_alloc_root(inode);
  306 + root = d_make_root(inode);
307 307 sb->s_root = root;
308 308 if (!root) {
309 309 err = -ENOMEM;
... ... @@ -314,7 +314,6 @@
314 314  
315 315 return 0;
316 316 fail:
317   - iput(inode);
318 317 return err;
319 318 }
320 319  
... ... @@ -260,15 +260,13 @@
260 260 }
261 261  
262 262 ret = -ENOMEM;
263   - s->s_root = d_alloc_root(root);
  263 + s->s_root = d_make_root(root);
264 264 if (s->s_root == NULL)
265   - goto outi;
  265 + goto outb;
266 266  
267 267 brelse(bh);
268 268 return 0;
269 269  
270   - outi:
271   - iput(root);
272 270 outb:
273 271 kfree(qs->BitMap);
274 272 out:
... ... @@ -210,7 +210,6 @@
210 210 {
211 211 struct ramfs_fs_info *fsi;
212 212 struct inode *inode = NULL;
213   - struct dentry *root;
214 213 int err;
215 214  
216 215 save_mount_options(sb, data);
217 216  
218 217  
... ... @@ -234,23 +233,16 @@
234 233 sb->s_time_gran = 1;
235 234  
236 235 inode = ramfs_get_inode(sb, NULL, S_IFDIR | fsi->mount_opts.mode, 0);
237   - if (!inode) {
  236 + sb->s_root = d_make_root(inode);
  237 + if (!sb->s_root) {
238 238 err = -ENOMEM;
239 239 goto fail;
240 240 }
241 241  
242   - root = d_alloc_root(inode);
243   - sb->s_root = root;
244   - if (!root) {
245   - err = -ENOMEM;
246   - goto fail;
247   - }
248   -
249 242 return 0;
250 243 fail:
251 244 kfree(fsi);
252 245 sb->s_fs_info = NULL;
253   - iput(inode);
254 246 return err;
255 247 }
256 248  
... ... @@ -1874,11 +1874,9 @@
1874 1874 unlock_new_inode(root_inode);
1875 1875 }
1876 1876  
1877   - s->s_root = d_alloc_root(root_inode);
1878   - if (!s->s_root) {
1879   - iput(root_inode);
  1877 + s->s_root = d_make_root(root_inode);
  1878 + if (!s->s_root)
1880 1879 goto error;
1881   - }
1882 1880 // define and initialize hash function
1883 1881 sbi->s_hash_function = hash_function(s);
1884 1882 if (sbi->s_hash_function == NULL) {
... ... @@ -538,14 +538,12 @@
538 538 if (IS_ERR(root))
539 539 goto error;
540 540  
541   - sb->s_root = d_alloc_root(root);
  541 + sb->s_root = d_make_root(root);
542 542 if (!sb->s_root)
543   - goto error_i;
  543 + goto error;
544 544  
545 545 return 0;
546 546  
547   -error_i:
548   - iput(root);
549 547 error:
550 548 return -EINVAL;
551 549 error_rsb_inval:
... ... @@ -316,11 +316,10 @@
316 316 }
317 317 insert_inode_hash(root);
318 318  
319   - sb->s_root = d_alloc_root(root);
  319 + sb->s_root = d_make_root(root);
320 320 if (sb->s_root == NULL) {
321 321 ERROR("Root inode create failed\n");
322 322 err = -ENOMEM;
323   - iput(root);
324 323 goto failed_mount;
325 324 }
326 325  
... ... @@ -61,10 +61,9 @@
61 61 }
62 62  
63 63 /* instantiate and link root dentry */
64   - root = d_alloc_root(inode);
  64 + root = d_make_root(inode);
65 65 if (!root) {
66 66 pr_debug("%s: could not get root dentry!\n",__func__);
67   - iput(inode);
68 67 return -ENOMEM;
69 68 }
70 69 root->d_fsdata = &sysfs_root;
... ... @@ -341,9 +341,8 @@
341 341 printk("SysV FS: get root inode failed\n");
342 342 return 0;
343 343 }
344   - sb->s_root = d_alloc_root(root_inode);
  344 + sb->s_root = d_make_root(root_inode);
345 345 if (!sb->s_root) {
346   - iput(root_inode);
347 346 printk("SysV FS: get root dentry failed\n");
348 347 return 0;
349 348 }
... ... @@ -2076,15 +2076,13 @@
2076 2076 goto out_umount;
2077 2077 }
2078 2078  
2079   - sb->s_root = d_alloc_root(root);
  2079 + sb->s_root = d_make_root(root);
2080 2080 if (!sb->s_root)
2081   - goto out_iput;
  2081 + goto out_umount;
2082 2082  
2083 2083 mutex_unlock(&c->umount_mutex);
2084 2084 return 0;
2085 2085  
2086   -out_iput:
2087   - iput(root);
2088 2086 out_umount:
2089 2087 ubifs_umount(c);
2090 2088 out_unlock:
... ... @@ -2037,10 +2037,9 @@
2037 2037 }
2038 2038  
2039 2039 /* Allocate a dentry for the root inode */
2040   - sb->s_root = d_alloc_root(inode);
  2040 + sb->s_root = d_make_root(inode);
2041 2041 if (!sb->s_root) {
2042 2042 udf_err(sb, "Couldn't allocate root dentry\n");
2043   - iput(inode);
2044 2043 goto error_out;
2045 2044 }
2046 2045 sb->s_maxbytes = MAX_LFS_FILESIZE;
... ... @@ -1164,10 +1164,10 @@
1164 1164 ret = PTR_ERR(inode);
1165 1165 goto failed;
1166 1166 }
1167   - sb->s_root = d_alloc_root(inode);
  1167 + sb->s_root = d_make_root(inode);
1168 1168 if (!sb->s_root) {
1169 1169 ret = -ENOMEM;
1170   - goto dalloc_failed;
  1170 + goto failed;
1171 1171 }
1172 1172  
1173 1173 ufs_setup_cstotal(sb);
... ... @@ -1181,8 +1181,6 @@
1181 1181 UFSD("EXIT\n");
1182 1182 return 0;
1183 1183  
1184   -dalloc_failed:
1185   - iput(inode);
1186 1184 failed:
1187 1185 if (ubh)
1188 1186 ubh_brelse_uspi (uspi);
... ... @@ -1362,10 +1362,10 @@
1362 1362 error = EINVAL;
1363 1363 goto out_syncd_stop;
1364 1364 }
1365   - sb->s_root = d_alloc_root(root);
  1365 + sb->s_root = d_make_root(root);
1366 1366 if (!sb->s_root) {
1367 1367 error = ENOMEM;
1368   - goto out_iput;
  1368 + goto out_syncd_stop;
1369 1369 }
1370 1370  
1371 1371 return 0;
... ... @@ -1384,8 +1384,6 @@
1384 1384 out:
1385 1385 return -error;
1386 1386  
1387   - out_iput:
1388   - iput(root);
1389 1387 out_syncd_stop:
1390 1388 xfs_syncd_stop(mp);
1391 1389 out_unmount:
... ... @@ -188,30 +188,20 @@
188 188 {
189 189 struct inode *inode;
190 190 struct ipc_namespace *ns = data;
191   - int error;
192 191  
193 192 sb->s_blocksize = PAGE_CACHE_SIZE;
194 193 sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
195 194 sb->s_magic = MQUEUE_MAGIC;
196 195 sb->s_op = &mqueue_super_ops;
197 196  
198   - inode = mqueue_get_inode(sb, ns, S_IFDIR | S_ISVTX | S_IRWXUGO,
199   - NULL);
200   - if (IS_ERR(inode)) {
201   - error = PTR_ERR(inode);
202   - goto out;
203   - }
  197 + inode = mqueue_get_inode(sb, ns, S_IFDIR | S_ISVTX | S_IRWXUGO, NULL);
  198 + if (IS_ERR(inode))
  199 + return PTR_ERR(inode);
204 200  
205   - sb->s_root = d_alloc_root(inode);
206   - if (!sb->s_root) {
207   - iput(inode);
208   - error = -ENOMEM;
209   - goto out;
210   - }
211   - error = 0;
212   -
213   -out:
214   - return error;
  201 + sb->s_root = d_make_root(inode);
  202 + if (!sb->s_root)
  203 + return -ENOMEM;
  204 + return 0;
215 205 }
216 206  
217 207 static struct dentry *mqueue_mount(struct file_system_type *fs_type,
... ... @@ -1472,7 +1472,6 @@
1472 1472  
1473 1473 struct inode *inode =
1474 1474 cgroup_new_inode(S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR, sb);
1475   - struct dentry *dentry;
1476 1475  
1477 1476 if (!inode)
1478 1477 return -ENOMEM;
1479 1478  
... ... @@ -1481,12 +1480,9 @@
1481 1480 inode->i_op = &cgroup_dir_inode_operations;
1482 1481 /* directories start off with i_nlink == 2 (for "." entry) */
1483 1482 inc_nlink(inode);
1484   - dentry = d_alloc_root(inode);
1485   - if (!dentry) {
1486   - iput(inode);
  1483 + sb->s_root = d_make_root(inode);
  1484 + if (!sb->s_root)
1487 1485 return -ENOMEM;
1488   - }
1489   - sb->s_root = dentry;
1490 1486 /* for everything else we want ->d_op set */
1491 1487 sb->s_d_op = &cgroup_dops;
1492 1488 return 0;
... ... @@ -2232,14 +2232,12 @@
2232 2232 goto failed;
2233 2233 inode->i_uid = sbinfo->uid;
2234 2234 inode->i_gid = sbinfo->gid;
2235   - root = d_alloc_root(inode);
  2235 + root = d_make_root(inode);
2236 2236 if (!root)
2237   - goto failed_iput;
  2237 + goto failed;
2238 2238 sb->s_root = root;
2239 2239 return 0;
2240 2240  
2241   -failed_iput:
2242   - iput(inode);
2243 2241 failed:
2244 2242 shmem_put_super(sb);
2245 2243 return err;
net/sunrpc/rpc_pipe.c
... ... @@ -1033,13 +1033,9 @@
1033 1033 sb->s_time_gran = 1;
1034 1034  
1035 1035 inode = rpc_get_inode(sb, S_IFDIR | 0755);
1036   - if (!inode)
  1036 + sb->s_root = root = d_make_root(inode);
  1037 + if (!root)
1037 1038 return -ENOMEM;
1038   - sb->s_root = root = d_alloc_root(inode);
1039   - if (!root) {
1040   - iput(inode);
1041   - return -ENOMEM;
1042   - }
1043 1039 if (rpc_populate(root, files, RPCAUTH_lockd, RPCAUTH_RootEOF, NULL))
1044 1040 return -ENOMEM;
1045 1041 return 0;