diff options
Diffstat (limited to 'fs/cifs/inode.c')
| -rw-r--r-- | fs/cifs/inode.c | 15 | 
1 files changed, 10 insertions, 5 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 9cb9679d7357..aadc2b68678b 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c @@ -527,10 +527,15 @@ static int cifs_sfu_mode(struct cifs_fattr *fattr, const unsigned char *path,  		return PTR_ERR(tlink);  	tcon = tlink_tcon(tlink); -	rc = CIFSSMBQAllEAs(xid, tcon, path, "SETFILEBITS", -			    ea_value, 4 /* size of buf */, cifs_sb->local_nls, -			    cifs_sb->mnt_cifs_flags & -				CIFS_MOUNT_MAP_SPECIAL_CHR); +	if (tcon->ses->server->ops->query_all_EAs == NULL) { +		cifs_put_tlink(tlink); +		return -EOPNOTSUPP; +	} + +	rc = tcon->ses->server->ops->query_all_EAs(xid, tcon, path, +			"SETFILEBITS", ea_value, 4 /* size of buf */, +			cifs_sb->local_nls, +			cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);  	cifs_put_tlink(tlink);  	if (rc < 0)  		return (int)rc; @@ -672,7 +677,7 @@ cgfi_exit:  int  cifs_get_inode_info(struct inode **inode, const char *full_path,  		    FILE_ALL_INFO *data, struct super_block *sb, int xid, -		    const __u16 *fid) +		    const struct cifs_fid *fid)  {  	bool validinum = false;  	__u16 srchflgs;  | 
