mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 01:04:19 +08:00
cifs: fix file info setting in cifs_query_path_info()
We missed to set file info when CIFSSMBQPathInfo() returned 0, thus
leaving cifs_open_info_data::fi unset.
Fix this by setting cifs_open_info_data::fi when either
CIFSSMBQPathInfo() or SMBQueryInformation() succeed.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216881
Fixes: 76894f3e2f
("cifs: improve symlink handling for smb2+")
Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
b7bfaa761d
commit
29cf28235e
@ -562,17 +562,20 @@ static int cifs_query_path_info(const unsigned int xid, struct cifs_tcon *tcon,
|
||||
if ((rc == -EOPNOTSUPP) || (rc == -EINVAL)) {
|
||||
rc = SMBQueryInformation(xid, tcon, full_path, &fi, cifs_sb->local_nls,
|
||||
cifs_remap(cifs_sb));
|
||||
if (!rc)
|
||||
move_cifs_info_to_smb2(&data->fi, &fi);
|
||||
*adjustTZ = true;
|
||||
}
|
||||
|
||||
if (!rc && (le32_to_cpu(fi.Attributes) & ATTR_REPARSE)) {
|
||||
if (!rc) {
|
||||
int tmprc;
|
||||
int oplock = 0;
|
||||
struct cifs_fid fid;
|
||||
struct cifs_open_parms oparms;
|
||||
|
||||
move_cifs_info_to_smb2(&data->fi, &fi);
|
||||
|
||||
if (!(le32_to_cpu(fi.Attributes) & ATTR_REPARSE))
|
||||
return 0;
|
||||
|
||||
oparms.tcon = tcon;
|
||||
oparms.cifs_sb = cifs_sb;
|
||||
oparms.desired_access = FILE_READ_ATTRIBUTES;
|
||||
|
Loading…
Reference in New Issue
Block a user