[PATCH] [fs/9p] Check for NULL fid pointers in p9_client_clunk()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <jvrao@xxxxxxxxxxxxxxxxxx>
---
 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

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux