[CIFS] Fix cifs trying to write to f_ops
patch 2ea55c01e0
fixed CIFS clobbering the
global fops structure for some per mount setting, by duplicating and having
2 fops structs. However the write to the fops was left behind, which is a
NOP in practice (due to the fact that we KNOW the fops has that field set
to NULL already due to the duplication). So remove it... In addition, another
instance of the same bug was forgotten in november.
Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
parent
a6230af7bd
commit
f3f6ec4b77
|
@ -214,8 +214,7 @@ static void fill_in_inode(struct inode *tmp_inode,
|
||||||
tmp_inode->i_fop = &cifs_file_nobrl_ops;
|
tmp_inode->i_fop = &cifs_file_nobrl_ops;
|
||||||
else
|
else
|
||||||
tmp_inode->i_fop = &cifs_file_ops;
|
tmp_inode->i_fop = &cifs_file_ops;
|
||||||
if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_BRL)
|
|
||||||
tmp_inode->i_fop->lock = NULL;
|
|
||||||
tmp_inode->i_data.a_ops = &cifs_addr_ops;
|
tmp_inode->i_data.a_ops = &cifs_addr_ops;
|
||||||
if((cifs_sb->tcon) && (cifs_sb->tcon->ses) &&
|
if((cifs_sb->tcon) && (cifs_sb->tcon->ses) &&
|
||||||
(cifs_sb->tcon->ses->server->maxBuf <
|
(cifs_sb->tcon->ses->server->maxBuf <
|
||||||
|
@ -327,12 +326,18 @@ static void unix_fill_in_inode(struct inode *tmp_inode,
|
||||||
if (S_ISREG(tmp_inode->i_mode)) {
|
if (S_ISREG(tmp_inode->i_mode)) {
|
||||||
cFYI(1, ("File inode"));
|
cFYI(1, ("File inode"));
|
||||||
tmp_inode->i_op = &cifs_file_inode_ops;
|
tmp_inode->i_op = &cifs_file_inode_ops;
|
||||||
if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DIRECT_IO)
|
|
||||||
tmp_inode->i_fop = &cifs_file_direct_ops;
|
if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DIRECT_IO) {
|
||||||
|
if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_BRL)
|
||||||
|
tmp_inode->i_fop = &cifs_file_direct_nobrl_ops;
|
||||||
|
else
|
||||||
|
tmp_inode->i_fop = &cifs_file_direct_ops;
|
||||||
|
|
||||||
|
} else if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_BRL)
|
||||||
|
tmp_inode->i_fop = &cifs_file_nobrl_ops;
|
||||||
else
|
else
|
||||||
tmp_inode->i_fop = &cifs_file_ops;
|
tmp_inode->i_fop = &cifs_file_ops;
|
||||||
if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_BRL)
|
|
||||||
tmp_inode->i_fop->lock = NULL;
|
|
||||||
tmp_inode->i_data.a_ops = &cifs_addr_ops;
|
tmp_inode->i_data.a_ops = &cifs_addr_ops;
|
||||||
if((cifs_sb->tcon) && (cifs_sb->tcon->ses) &&
|
if((cifs_sb->tcon) && (cifs_sb->tcon->ses) &&
|
||||||
(cifs_sb->tcon->ses->server->maxBuf <
|
(cifs_sb->tcon->ses->server->maxBuf <
|
||||||
|
|
Loading…
Reference in New Issue