]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
cifs: Simplify reparse point check in cifs_query_path_info() function
authorPali Rohár <pali@kernel.org>
Thu, 26 Dec 2024 13:56:33 +0000 (14:56 +0100)
committerSteve French <stfrench@microsoft.com>
Wed, 29 Jan 2025 23:20:40 +0000 (17:20 -0600)
For checking if path is reparse point and setting data->reparse_point
member, it is enough to check if ATTR_REPARSE is present.

It is not required to call CIFS_open() without OPEN_REPARSE_POINT and
checking for -EOPNOTSUPP error code.

Signed-off-by: Pali Rohár <pali@kernel.org>
Acked-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/smb1ops.c

index 236289ff14eddd9455ecf0112fdc05ac95b43c1e..9756b876a75e13df5b27e58ebdea4f25cb2fb132 100644 (file)
@@ -569,32 +569,8 @@ static int cifs_query_path_info(const unsigned int xid,
        }
 
        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 = (struct cifs_open_parms) {
-                       .tcon = tcon,
-                       .cifs_sb = cifs_sb,
-                       .desired_access = FILE_READ_ATTRIBUTES,
-                       .create_options = cifs_create_options(cifs_sb, 0),
-                       .disposition = FILE_OPEN,
-                       .path = full_path,
-                       .fid = &fid,
-               };
-
-               /* Need to check if this is a symbolic link or not */
-               tmprc = CIFS_open(xid, &oparms, &oplock, NULL);
-               if (tmprc == -EOPNOTSUPP)
-                       data->reparse_point = true;
-               else if (tmprc == 0)
-                       CIFSSMBClose(xid, tcon, fid.netfid);
+               data->reparse_point = le32_to_cpu(fi.Attributes) & ATTR_REPARSE;
        }
 
        return rc;