cifs: don't allow cifs_iget to match inodes of the wrong type
If the type is different from what we think it should be, then don't match the existing inode. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
parent
9f841593ff
commit
f30b9c1184
|
@ -724,9 +724,14 @@ cifs_find_inode(struct inode *inode, void *opaque)
|
|||
{
|
||||
struct cifs_fattr *fattr = (struct cifs_fattr *) opaque;
|
||||
|
||||
/* don't match inode with different uniqueid */
|
||||
if (CIFS_I(inode)->uniqueid != fattr->cf_uniqueid)
|
||||
return 0;
|
||||
|
||||
/* don't match inode of different type */
|
||||
if ((inode->i_mode & S_IFMT) != (fattr->cf_mode & S_IFMT))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* uh oh -- it's a directory. We can't use it since hardlinked dirs are
|
||||
* verboten. Disable serverino and return it as if it were found, the
|
||||
|
|
Loading…
Reference in New Issue