]> err.no Git - linux-2.6/commitdiff
[CIFS] Fix typo in earlier cifs_unlink change and protect one
authorSteve French <sfrench@us.ibm.com>
Fri, 31 Mar 2006 22:43:50 +0000 (22:43 +0000)
committerSteve French <sfrench@us.ibm.com>
Fri, 31 Mar 2006 22:43:50 +0000 (22:43 +0000)
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>
fs/cifs/inode.c

index ca91ea38d611f4492f5eb7ebabb9a51ce1d5265a..957ddd1571c6f0d72e99b053ded08fd14e551b43 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
@@ -695,9 +695,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);