diff options
| author | Steve French <sfrench@us.ibm.com> | 2006-03-30 22:37:08 -0500 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2006-03-30 22:37:08 -0500 |
| commit | 6910ab30a29d10e0fec7710b2ed857a2201e2468 (patch) | |
| tree | ac8ca0b969f623af42519defcf5816c136459087 | |
| parent | d62e54abca1146981fc9f98f85ff398a113a22c2 (diff) | |
[CIFS] Fix unlink oops when indirectly called in rename error path
under heavy stress.
Signed-off-by: Steve French <sfrench@us.ibm.com>
| -rw-r--r-- | fs/cifs/inode.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index e842ce9f6547..ca91ea38d611 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
| @@ -569,7 +569,10 @@ int cifs_unlink(struct inode *inode, struct dentry *direntry) | |||
| 569 | 569 | ||
| 570 | xid = GetXid(); | 570 | xid = GetXid(); |
| 571 | 571 | ||
| 572 | cifs_sb = CIFS_SB(inode->i_sb); | 572 | if(inode) |
| 573 | cifs_sb = CIFS_SB(inode->i_sb); | ||
| 574 | else | ||
| 575 | cifs_sb = CIFS_SB(dentry->d_sb); | ||
| 573 | pTcon = cifs_sb->tcon; | 576 | pTcon = cifs_sb->tcon; |
| 574 | 577 | ||
| 575 | /* Unlink can be called from rename so we can not grab the sem here | 578 | /* Unlink can be called from rename so we can not grab the sem here |
