Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

/proc/sys: use d_splice_alias() calling conventions to simplify failure exits

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

Al Viro 1eae9a47 6f36230e

+2 -12
+2 -12
fs/proc/proc_sysctl.c
··· 534 534 goto out; 535 535 } 536 536 537 - inode = proc_sys_make_inode(dir->i_sb, h ? h : head, p); 538 - if (IS_ERR(inode)) { 539 - err = ERR_CAST(inode); 540 - goto out; 541 - } 542 - 543 537 d_set_d_op(dentry, &proc_sys_dentry_operations); 538 + inode = proc_sys_make_inode(dir->i_sb, h ? h : head, p); 544 539 err = d_splice_alias(inode, dentry); 545 540 546 541 out: ··· 693 698 return false; 694 699 if (d_in_lookup(child)) { 695 700 struct dentry *res; 696 - inode = proc_sys_make_inode(dir->d_sb, head, table); 697 - if (IS_ERR(inode)) { 698 - d_lookup_done(child); 699 - dput(child); 700 - return false; 701 - } 702 701 d_set_d_op(child, &proc_sys_dentry_operations); 702 + inode = proc_sys_make_inode(dir->d_sb, head, table); 703 703 res = d_splice_alias(inode, child); 704 704 d_lookup_done(child); 705 705 if (unlikely(res)) {