From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Hansen Subject: [RFC][PATCH 18/27] sys_faccessat(): collapse if() Date: Wed, 07 Jun 2006 17:10:29 -0700 Message-ID: <20060608001029.2F5F11B3@localhost.localdomain> References: <20060608001013.0D041507@localhost.localdomain> Cc: herbert@13thfloor.at, viro@ftp.linux.org.uk, hch@infradead.org, trond.myklebust@fys.uio.no, Dave Hansen Return-path: Received: from e33.co.us.ibm.com ([32.97.110.151]:20196 "EHLO e33.co.us.ibm.com") by vger.kernel.org with ESMTP id S932495AbWFHAKe (ORCPT ); Wed, 7 Jun 2006 20:10:34 -0400 Received: from westrelay02.boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e33.co.us.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id k580AXTR006264 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 7 Jun 2006 20:10:33 -0400 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by westrelay02.boulder.ibm.com (8.13.6/NCO/VER7.0) with ESMTP id k580ASPb221448 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 7 Jun 2006 18:10:29 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id k580AWXA008766 for ; Wed, 7 Jun 2006 18:10:33 -0600 To: linux-fsdevel@vger.kernel.org In-Reply-To: <20060608001013.0D041507@localhost.localdomain> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org This patch should make no functional changes. Signed-off-by: Dave Hansen --- lxc-dave/fs/open.c | 18 ++++++++++-------- 1 files changed, 10 insertions(+), 8 deletions(-) diff -puN fs/open.c~elevate-writers-opens-part2-sys_faccessat fs/open.c --- lxc/fs/open.c~elevate-writers-opens-part2-sys_faccessat 2006-06-07 16:53:23.000000000 -0700 +++ lxc-dave/fs/open.c 2006-06-07 16:53:23.000000000 -0700 @@ -537,15 +537,17 @@ asmlinkage long sys_faccessat(int dfd, c current->cap_effective = current->cap_permitted; res = __user_walk_fd(dfd, filename, LOOKUP_FOLLOW|LOOKUP_ACCESS, &nd); - if (!res) { - res = vfs_permission(&nd, mode); - /* SuS v2 requires we report a read only fs too */ - if(!res && (mode & S_IWOTH) && IS_RDONLY(nd.dentry->d_inode) - && !special_file(nd.dentry->d_inode->i_mode)) - res = -EROFS; - path_release(&nd); - } + if (res) + goto out; + res = vfs_permission(&nd, mode); + /* SuS v2 requires we report a read only fs too */ + if(!res && (mode & S_IWOTH) && IS_RDONLY(nd.dentry->d_inode) + && !special_file(nd.dentry->d_inode->i_mode)) + res = -EROFS; + path_release(&nd); + +out: current->fsuid = old_fsuid; current->fsgid = old_fsgid; current->cap_effective = old_cap; _