forked from luck/tmp_suning_uos_patched
smb311: add support for using info level for posix extensions query
Adds calls to the newer info level for query info using SMB3.1.1 posix extensions. The remaining two places that call the older query info (non-SMB3.1.1 POSIX) require passing in the fid and can be updated in a later patch. Signed-off-by: Steve French <stfrench@microsoft.com> Reviewed-by: Aurelien Aptel <aaptel@suse.com>
This commit is contained in:
parent
790434ff98
commit
d313852d7a
|
@ -411,6 +411,7 @@ cifs_do_create(struct inode *inode, struct dentry *direntry, unsigned int xid,
|
|||
rc = cifs_get_inode_info_unix(&newinode, full_path, inode->i_sb,
|
||||
xid);
|
||||
else {
|
||||
/* TODO: Add support for calling POSIX query info here, but passing in fid */
|
||||
rc = cifs_get_inode_info(&newinode, full_path, buf, inode->i_sb,
|
||||
xid, fid);
|
||||
if (newinode) {
|
||||
|
|
|
@ -243,6 +243,7 @@ cifs_nt_open(char *full_path, struct inode *inode, struct cifs_sb_info *cifs_sb,
|
|||
if (rc)
|
||||
goto out;
|
||||
|
||||
/* TODO: Add support for calling posix query info but with passing in fid */
|
||||
if (tcon->unix_ext)
|
||||
rc = cifs_get_inode_info_unix(&inode, full_path, inode->i_sb,
|
||||
xid);
|
||||
|
@ -800,7 +801,9 @@ cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush)
|
|||
if (!is_interrupt_error(rc))
|
||||
mapping_set_error(inode->i_mapping, rc);
|
||||
|
||||
if (tcon->unix_ext)
|
||||
if (tcon->posix_extensions)
|
||||
rc = smb311_posix_get_inode_info(&inode, full_path, inode->i_sb, xid);
|
||||
else if (tcon->unix_ext)
|
||||
rc = cifs_get_inode_info_unix(&inode, full_path,
|
||||
inode->i_sb, xid);
|
||||
else
|
||||
|
|
|
@ -1333,7 +1333,10 @@ struct inode *cifs_root_iget(struct super_block *sb)
|
|||
}
|
||||
|
||||
convert_delimiter(path, CIFS_DIR_SEP(cifs_sb));
|
||||
rc = cifs_get_inode_info(&inode, path, NULL, sb, xid, NULL);
|
||||
if (tcon->posix_extensions)
|
||||
rc = smb311_posix_get_inode_info(&inode, path, sb, xid);
|
||||
else
|
||||
rc = cifs_get_inode_info(&inode, path, NULL, sb, xid, NULL);
|
||||
|
||||
iget_no_retry:
|
||||
if (!inode) {
|
||||
|
@ -1689,7 +1692,9 @@ cifs_mkdir_qinfo(struct inode *parent, struct dentry *dentry, umode_t mode,
|
|||
int rc = 0;
|
||||
struct inode *inode = NULL;
|
||||
|
||||
if (tcon->unix_ext)
|
||||
if (tcon->posix_extensions)
|
||||
rc = smb311_posix_get_inode_info(&inode, full_path, parent->i_sb, xid);
|
||||
else if (tcon->unix_ext)
|
||||
rc = cifs_get_inode_info_unix(&inode, full_path, parent->i_sb,
|
||||
xid);
|
||||
else
|
||||
|
|
|
@ -701,7 +701,9 @@ cifs_symlink(struct inode *inode, struct dentry *direntry, const char *symname)
|
|||
cifs_sb_target->local_nls); */
|
||||
|
||||
if (rc == 0) {
|
||||
if (pTcon->unix_ext)
|
||||
if (pTcon->posix_extensions)
|
||||
rc = smb311_posix_get_inode_info(&newinode, full_path, inode->i_sb, xid);
|
||||
else if (pTcon->unix_ext)
|
||||
rc = cifs_get_inode_info_unix(&newinode, full_path,
|
||||
inode->i_sb, xid);
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue
Block a user