lkml.org 
[lkml]   [2014]   [Nov]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/1] fs-proc: One function call less in proc_sys_lookup() after error detection
    From: Markus Elfring <elfring@users.sourceforge.net>
    Date: Tue, 18 Nov 2014 15:42:43 +0100

    The sysctl_head_finish() function was called in an inefficient way by the
    implementation of the proc_sys_lookup() function in case of a lookup failure.
    The corresponding source code was improved by deletion of an unnecessary
    null pointer check and a few adjustments for jump labels.

    Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
    ---
    fs/proc/proc_sysctl.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
    index f92d5dd..6606aaf 100644
    --- a/fs/proc/proc_sysctl.c
    +++ b/fs/proc/proc_sysctl.c
    @@ -457,21 +457,21 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
    ret = sysctl_follow_link(&h, &p, current->nsproxy);
    err = ERR_PTR(ret);
    if (ret)
    - goto out;
    + goto inode_failure;
    }

    err = ERR_PTR(-ENOMEM);
    inode = proc_sys_make_inode(dir->i_sb, h ? h : head, p);
    if (!inode)
    - goto out;
    + goto inode_failure;

    err = NULL;
    d_set_d_op(dentry, &proc_sys_dentry_operations);
    d_add(dentry, inode);

    +inode_failure:
    + sysctl_head_finish(h);
    out:
    - if (h)
    - sysctl_head_finish(h);
    sysctl_head_finish(head);
    return err;
    }
    --
    2.1.3


    \
     
     \ /
      Last update: 2014-11-18 16:21    [W:4.050 / U:1.572 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site