diff options
Diffstat (limited to 'fs/cifs/inode.c')
-rw-r--r-- | fs/cifs/inode.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 28a22092d450..9c548f110102 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -546,7 +546,8 @@ int cifs_get_inode_info(struct inode **pinode, | |||
546 | if ((inode->i_mode & S_IWUGO) == 0 && | 546 | if ((inode->i_mode & S_IWUGO) == 0 && |
547 | (attr & ATTR_READONLY) == 0) | 547 | (attr & ATTR_READONLY) == 0) |
548 | inode->i_mode |= (S_IWUGO & default_mode); | 548 | inode->i_mode |= (S_IWUGO & default_mode); |
549 | inode->i_mode &= ~S_IFMT; | 549 | |
550 | inode->i_mode &= ~S_IFMT; | ||
550 | } | 551 | } |
551 | /* clear write bits if ATTR_READONLY is set */ | 552 | /* clear write bits if ATTR_READONLY is set */ |
552 | if (attr & ATTR_READONLY) | 553 | if (attr & ATTR_READONLY) |
@@ -649,6 +650,7 @@ struct inode *cifs_iget(struct super_block *sb, unsigned long ino) | |||
649 | inode->i_fop = &simple_dir_operations; | 650 | inode->i_fop = &simple_dir_operations; |
650 | inode->i_uid = cifs_sb->mnt_uid; | 651 | inode->i_uid = cifs_sb->mnt_uid; |
651 | inode->i_gid = cifs_sb->mnt_gid; | 652 | inode->i_gid = cifs_sb->mnt_gid; |
653 | } else if (rc) { | ||
652 | _FreeXid(xid); | 654 | _FreeXid(xid); |
653 | iget_failed(inode); | 655 | iget_failed(inode); |
654 | return ERR_PTR(rc); | 656 | return ERR_PTR(rc); |