diff options
author | Steve French <sfrench@us.ibm.com> | 2006-03-31 17:43:50 -0500 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2006-03-31 17:43:50 -0500 |
commit | 06bcfedd05448e63cae8924074bfacdf82bb17d4 (patch) | |
tree | c213b29cad1f44db615f5293476abd249618b70d | |
parent | e9917a000fcc370408c8b7b83f2e85dba5fffbd4 (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>
-rw-r--r-- | fs/cifs/inode.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index ca91ea38d611..957ddd1571c6 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -565,14 +565,14 @@ int cifs_unlink(struct inode *inode, struct dentry *direntry) | |||
565 | struct cifsInodeInfo *cifsInode; | 565 | struct cifsInodeInfo *cifsInode; |
566 | FILE_BASIC_INFO *pinfo_buf; | 566 | FILE_BASIC_INFO *pinfo_buf; |
567 | 567 | ||
568 | cFYI(1, ("cifs_unlink, inode = 0x%p with ", inode)); | 568 | cFYI(1, ("cifs_unlink, inode = 0x%p", inode)); |
569 | 569 | ||
570 | xid = GetXid(); | 570 | xid = GetXid(); |
571 | 571 | ||
572 | if(inode) | 572 | if(inode) |
573 | cifs_sb = CIFS_SB(inode->i_sb); | 573 | cifs_sb = CIFS_SB(inode->i_sb); |
574 | else | 574 | else |
575 | cifs_sb = CIFS_SB(dentry->d_sb); | 575 | cifs_sb = CIFS_SB(direntry->d_sb); |
576 | pTcon = cifs_sb->tcon; | 576 | pTcon = cifs_sb->tcon; |
577 | 577 | ||
578 | /* 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 |
@@ -695,9 +695,11 @@ int cifs_unlink(struct inode *inode, struct dentry *direntry) | |||
695 | when needed */ | 695 | when needed */ |
696 | direntry->d_inode->i_ctime = current_fs_time(inode->i_sb); | 696 | direntry->d_inode->i_ctime = current_fs_time(inode->i_sb); |
697 | } | 697 | } |
698 | inode->i_ctime = inode->i_mtime = current_fs_time(inode->i_sb); | 698 | if(inode) { |
699 | cifsInode = CIFS_I(inode); | 699 | inode->i_ctime = inode->i_mtime = current_fs_time(inode->i_sb); |
700 | cifsInode->time = 0; /* force revalidate of dir as well */ | 700 | cifsInode = CIFS_I(inode); |
701 | cifsInode->time = 0; /* force revalidate of dir as well */ | ||
702 | } | ||
701 | 703 | ||
702 | kfree(full_path); | 704 | kfree(full_path); |
703 | FreeXid(xid); | 705 | FreeXid(xid); |