From 6910ab30a29d10e0fec7710b2ed857a2201e2468 Mon Sep 17 00:00:00 2001
From: Steve French <sfrench@us.ibm.com>
Date: Fri, 31 Mar 2006 03:37:08 +0000
Subject: [CIFS] Fix unlink oops when indirectly called in rename error path
 under heavy stress.

Signed-off-by: Steve French <sfrench@us.ibm.com>
---
 fs/cifs/inode.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

(limited to 'fs/cifs/inode.c')

diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index e842ce9f654..ca91ea38d61 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -569,7 +569,10 @@ int cifs_unlink(struct inode *inode, struct dentry *direntry)
 
 	xid = GetXid();
 
-	cifs_sb = CIFS_SB(inode->i_sb);
+	if(inode)
+		cifs_sb = CIFS_SB(inode->i_sb);
+	else
+		cifs_sb = CIFS_SB(dentry->d_sb);
 	pTcon = cifs_sb->tcon;
 
 	/* Unlink can be called from rename so we can not grab the sem here
-- 
cgit v1.2.3-18-g5258