[CIFS] Fix unlink oops when indirectly called in rename error path
authorSteve French <sfrench@us.ibm.com>
Fri, 31 Mar 2006 03:37:08 +0000 (03:37 +0000)
committerSteve French <sfrench@us.ibm.com>
Fri, 31 Mar 2006 03:37:08 +0000 (03:37 +0000)
under heavy stress.

Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/inode.c

index e842ce9f65476c7c08037af4217b319635533eee..ca91ea38d611f4492f5eb7ebabb9a51ce1d5265a 100644 (file)
@@ -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