aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2006-10-14 10:11:47 +0200
committerAdrian Bunk <bunk@stusta.de>2006-10-14 10:11:47 +0200
commitfd21c69ab8ab3e175f62fc09b38b1ab64e787f72 (patch)
tree86c4b16f250383e553af7ca2e18fde331814ae5c
parenta59ce20e0e4ed46c633d284cad159af84a8f2822 (diff)
[CIFS] Fix typo in earlier cifs_unlink change and protect one extra path.
Since cifs_unlink can also be called from rename path and there was one report of oops am making the extra check for null inode. Signed-off-by: Steve French <sfrench@us.ibm.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
-rw-r--r--fs/cifs/inode.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index cfac39aa1a8..4542645778c 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -565,14 +565,14 @@ int cifs_unlink(struct inode *inode, struct dentry *direntry)
struct cifsInodeInfo *cifsInode;
FILE_BASIC_INFO *pinfo_buf;
- cFYI(1, ("cifs_unlink, inode = 0x%p with ", inode));
+ cFYI(1, ("cifs_unlink, inode = 0x%p", inode));
xid = GetXid();
if(inode)
cifs_sb = CIFS_SB(inode->i_sb);
else
- cifs_sb = CIFS_SB(dentry->d_sb);
+ cifs_sb = CIFS_SB(direntry->d_sb);
pTcon = cifs_sb->tcon;
/* Unlink can be called from rename so we can not grab the sem here
@@ -696,9 +696,11 @@ int cifs_unlink(struct inode *inode, struct dentry *direntry)
when needed */
direntry->d_inode->i_ctime = current_fs_time(inode->i_sb);
}
- inode->i_ctime = inode->i_mtime = current_fs_time(inode->i_sb);
- cifsInode = CIFS_I(inode);
- cifsInode->time = 0; /* force revalidate of dir as well */
+ if(inode) {
+ inode->i_ctime = inode->i_mtime = current_fs_time(inode->i_sb);
+ cifsInode = CIFS_I(inode);
+ cifsInode->time = 0; /* force revalidate of dir as well */
+ }
kfree(full_path);
FreeXid(xid);