From 17e7a729848361ad50330f87e366938dc80d66d2 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 28 Aug 2009 11:08:31 -0700 Subject: [PATCH] --- yaml --- r: 157287 b: refs/heads/master c: cb9179ead0aa0e3b7b4087cdba59baf16bbeef6d h: refs/heads/master i: 157285: dc4c858e00cee28a2767f928b25cb4f934c9d7fa 157283: b07db605e19d189265d12c5e5aea5f03c7042171 157279: a754a678cd7f564d64f40f9237598dead81180b2 v: v3 --- [refs] | 2 +- trunk/fs/namei.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index ca41fa8afbea..8a3b809af18f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f1ac9f6bfea6f21e8ab6dbbe46879d62a6fba8c0 +refs/heads/master: cb9179ead0aa0e3b7b4087cdba59baf16bbeef6d diff --git a/trunk/fs/namei.c b/trunk/fs/namei.c index 929f535fb225..e645e3070360 100644 --- a/trunk/fs/namei.c +++ b/trunk/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;