Commit 48fde701aff662559b38d9a609574068f22d00fe
1 parent
6b4231e2f9
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
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
- arch/s390/hypfs/inode.c
- drivers/misc/ibmasm/ibmasmfs.c
- drivers/oprofile/oprofilefs.c
- drivers/usb/core/inode.c
- drivers/usb/gadget/f_fs.c
- drivers/usb/gadget/inode.c
- fs/9p/vfs_super.c
- fs/adfs/super.c
- fs/affs/super.c
- fs/afs/super.c
- fs/autofs4/inode.c
- fs/befs/linuxvfs.c
- fs/bfs/inode.c
- fs/btrfs/super.c
- fs/ceph/super.c
- fs/cifs/cifsfs.c
- fs/coda/inode.c
- fs/configfs/mount.c
- fs/cramfs/inode.c
- fs/devpts/inode.c
- fs/ecryptfs/main.c
- fs/efs/super.c
- fs/exofs/super.c
- fs/ext2/super.c
- fs/ext3/super.c
- fs/ext4/super.c
- fs/freevxfs/vxfs_super.c
- fs/fuse/inode.c
- fs/gfs2/ops_fstype.c
- fs/hfs/super.c
- fs/hostfs/hostfs_kern.c
- fs/hpfs/super.c
- fs/hppfs/hppfs.c
- fs/hugetlbfs/inode.c
- fs/isofs/inode.c
- fs/jffs2/fs.c
- fs/jfs/super.c
- fs/libfs.c
- fs/logfs/super.c
- fs/ncpfs/inode.c
- fs/nfs/getroot.c
- fs/nilfs2/super.c
- fs/ocfs2/dlmfs/dlmfs.c
- fs/ocfs2/super.c
- fs/omfs/inode.c
- fs/openpromfs/inode.c
- fs/proc/inode.c
- fs/pstore/inode.c
- fs/qnx4/inode.c
- fs/ramfs/inode.c
- fs/reiserfs/super.c
- fs/romfs/super.c
- fs/squashfs/super.c
- fs/sysfs/mount.c
- fs/sysv/super.c
- fs/ubifs/super.c
- fs/udf/super.c
- fs/ufs/super.c
- fs/xfs/xfs_super.c
- ipc/mqueue.c
- kernel/cgroup.c
- mm/shmem.c
- net/sunrpc/rpc_pipe.c
arch/powerpc/platforms/cell/spufs/inode.c
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. |
fs/9p/vfs_super.c
fs/adfs/super.c
... | ... | @@ -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); |
fs/affs/super.c
... | ... | @@ -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); |
fs/afs/super.c
... | ... | @@ -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 | } |
fs/autofs4/inode.c
... | ... | @@ -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: |
fs/befs/linuxvfs.c
... | ... | @@ -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 | } |
fs/bfs/inode.c
fs/btrfs/super.c
... | ... | @@ -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); |
fs/ceph/super.c
... | ... | @@ -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 | } |
fs/cifs/cifsfs.c
fs/coda/inode.c
... | ... | @@ -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 | } |
fs/configfs/mount.c
... | ... | @@ -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); |
fs/cramfs/inode.c
... | ... | @@ -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); |
fs/devpts/inode.c
... | ... | @@ -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; |
fs/ecryptfs/main.c
fs/efs/super.c
... | ... | @@ -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 | } |
fs/exofs/super.c
... | ... | @@ -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; |
fs/ext2/super.c
... | ... | @@ -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; |
fs/ext3/super.c
... | ... | @@ -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 | } |
fs/ext4/super.c
... | ... | @@ -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 | } |
fs/fuse/inode.c
... | ... | @@ -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; |
fs/hfs/super.c
... | ... | @@ -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
fs/hpfs/super.c
... | ... | @@ -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 |
fs/hppfs/hppfs.c
... | ... | @@ -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); |
fs/isofs/inode.c
... | ... | @@ -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 | } |
fs/jffs2/fs.c
... | ... | @@ -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); |
fs/jfs/super.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); |
fs/libfs.c
... | ... | @@ -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; |
fs/logfs/super.c
... | ... | @@ -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); |
fs/ncpfs/inode.c
... | ... | @@ -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); |
fs/nfs/getroot.c
... | ... | @@ -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(). |
fs/nilfs2/super.c
... | ... | @@ -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 |
fs/ocfs2/super.c
fs/omfs/inode.c
... | ... | @@ -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"); |
fs/proc/inode.c
... | ... | @@ -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; |
fs/pstore/inode.c
... | ... | @@ -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 |
fs/qnx4/inode.c
... | ... | @@ -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: |
fs/ramfs/inode.c
... | ... | @@ -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 |
fs/reiserfs/super.c
... | ... | @@ -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) { |
fs/romfs/super.c
... | ... | @@ -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: |
fs/squashfs/super.c
... | ... | @@ -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 |
fs/sysfs/mount.c
... | ... | @@ -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; |
fs/sysv/super.c
... | ... | @@ -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 | } |
fs/ubifs/super.c
... | ... | @@ -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: |
fs/udf/super.c
... | ... | @@ -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; |
fs/ufs/super.c
... | ... | @@ -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); |
fs/xfs/xfs_super.c
... | ... | @@ -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: |
ipc/mqueue.c
... | ... | @@ -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, |
kernel/cgroup.c
... | ... | @@ -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; |
mm/shmem.c
... | ... | @@ -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; |