From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Venkateswararao Jujjuri (JV)" Subject: [PATCH] [fs/9p] Check for NULL fid pointers in p9_client_clunk() Date: Tue, 24 Aug 2010 08:43:05 -0700 Message-ID: <1282664585-12450-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 e32.co.us.ibm.com ([32.97.110.150]:33794 "EHLO e32.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751507Ab0HXPd6 (ORCPT ); Tue, 24 Aug 2010 11:33:58 -0400 Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by e32.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id o7OFPd59013085 for ; Tue, 24 Aug 2010 09:25:39 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o7OFXvDx171134 for ; Tue, 24 Aug 2010 09:33:57 -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 o7OFXuBd002771 for ; Tue, 24 Aug 2010 09:33:57 -0600 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: NULL fid should be handled in cases where we endup calling v9fs_dir_release() before even we instantiate the fid in filp. This patch handles pasing a NULL p9_fid* to p9_client_clunk. Signed-off-by: Venkateswararao Jujjuri --- fs/9p/vfs_dir.c | 3 ++- net/9p/client.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletions(-) diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c index 16c8a2a..5f08203 100644 --- a/fs/9p/vfs_dir.c +++ b/fs/9p/vfs_dir.c @@ -292,7 +292,8 @@ int v9fs_dir_release(struct inode *inode, struct file *filp) fid = filp->private_data; P9_DPRINTK(P9_DEBUG_VFS, - "inode: %p filp: %p fid: %d\n", inode, filp, fid->fid); + "JV: inode: %p filp: %p fid: %d\n", inode, filp, + fid ? fid->fid : -1); filemap_write_and_wait(inode->i_mapping); p9_client_clunk(fid); return 0; diff --git a/net/9p/client.c b/net/9p/client.c index dc6f2f2..9338fb3 100644 --- a/net/9p/client.c +++ b/net/9p/client.c @@ -1201,6 +1201,9 @@ int p9_client_clunk(struct p9_fid *fid) struct p9_client *clnt; struct p9_req_t *req; + if (!fid) + return 0; + P9_DPRINTK(P9_DEBUG_9P, ">>> TCLUNK fid %d\n", fid->fid); err = 0; clnt = fid->clnt; -- 1.6.5.2