]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[CIFS] Fix typo in earlier cifs_unlink change and protect one extra path.
authorSteve French <sfrench@us.ibm.com>
Sat, 14 Oct 2006 08:11:47 +0000 (10:11 +0200)
committerAdrian Bunk <bunk@stusta.de>
Sat, 14 Oct 2006 08:11:47 +0000 (10:11 +0200)
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>
fs/cifs/inode.c

index cfac39aa1a8c3c38d56dea0912fef716b80b2e5c..4542645778cd7600be203b2406ec2e5cd4c92e74 100644 (file)
@@ -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);