From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Venkateswararao Jujjuri (JV)" Subject: [RFC 2/2] [fs/9p] Check if the inode change is allowed. Date: Tue, 8 Jun 2010 17:22:28 -0700 Message-ID: <1276042948-19257-2-git-send-email-jvrao@linux.vnet.ibm.com> References: <1276042948-19257-1-git-send-email-jvrao@linux.vnet.ibm.com> Cc: linux-fsdevel@vger.kernel.org, "Venkateswararao Jujjuri (JV)" To: v9fs-developer@lists.sourceforge.net Return-path: Received: from e38.co.us.ibm.com ([32.97.110.159]:47014 "EHLO e38.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754349Ab0FIASq (ORCPT ); Tue, 8 Jun 2010 20:18:46 -0400 Received: from d03relay05.boulder.ibm.com (d03relay05.boulder.ibm.com [9.17.195.107]) by e38.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id o590C9Yh017310 for ; Tue, 8 Jun 2010 18:12:09 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay05.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o590IjY1134880 for ; Tue, 8 Jun 2010 18:18:45 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o590IiTo032558 for ; Tue, 8 Jun 2010 18:18:44 -0600 In-Reply-To: <1276042948-19257-1-git-send-email-jvrao@linux.vnet.ibm.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: This patch adds a inode_change_ok() check before proceeding on to change the attributes. This check is done only if the access=client. Signed-off-by: Venkateswararao Jujjuri --- fs/9p/vfs_inode.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index a67f9f5..31a70c7 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c @@ -900,10 +900,19 @@ static int v9fs_vfs_setattr(struct dentry *dentry, struct iattr *iattr) struct v9fs_session_info *v9ses; struct p9_fid *fid; struct p9_wstat wstat; + int access; P9_DPRINTK(P9_DEBUG_VFS, "\n"); retval = -EPERM; v9ses = v9fs_inode2v9ses(dentry->d_inode); + access = v9ses->flags & V9FS_ACCESS_MASK; + + if ((access == V9FS_ACCESS_CLIENT)) { + retval = inode_change_ok(dentry->d_inode, iattr); + if (retval) + return retval; + } + fid = v9fs_fid_lookup(dentry); if(IS_ERR(fid)) return PTR_ERR(fid); -- 1.6.5.2