lkml.org 
[lkml]   [2009]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 4/8] Simplify exec_permission_lite(), part 3

    From: Linus Torvalds <torvalds@linux-foundation.org>
    Date: Fri, 28 Aug 2009 11:08:31 -0700

    Don't call down to the generic inode_permission() function just to
    call the inode-specific permission function - just do it directly.

    The generic inode_permission() code does things like checking MAY_WRITE
    and devcgroup_inode_permission(), neither of which are relevant for the
    light pathname walk permission checks (we always do just MAY_EXEC, and
    the inode is never a special device).

    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    ---
    fs/namei.c | 8 ++++++--
    1 files changed, 6 insertions(+), 2 deletions(-)

    diff --git a/fs/namei.c b/fs/namei.c
    index e39e5cb..7959e70 100644
    --- a/fs/namei.c
    +++ b/fs/namei.c
    @@ -434,8 +434,12 @@ static int exec_permission_lite(struct inode *inode)
    {
    umode_t mode = inode->i_mode;

    - if (inode->i_op->permission)
    - return inode_permission(inode, MAY_EXEC);
    + if (inode->i_op->permission) {
    + int ret = inode->i_op->permission(inode, MAY_EXEC);
    + if (!ret)
    + goto ok;
    + return ret;
    + }

    if (current_fsuid() == inode->i_uid)
    mode >>= 6;
    --
    1.6.4.1.209.g74b8


    \
     
     \ /
      Last update: 2009-10-18 23:28    [W:0.025 / U:0.288 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site