CIFSGetSrvInodeNumber() uses SMB_QUERY_FILE_INTERNAL_INFO (0x3ee) level
which is SMB PASSTHROUGH level (>= 0x03e8). SMB PASSTHROUGH levels are
supported only when server announce CAP_INFOLEVEL_PASSTHRU.
So add guard in cifs_query_file_info() function which is the only user of
CIFSGetSrvInodeNumber() function and returns -EOPNOTSUPP when server does
not announce CAP_INFOLEVEL_PASSTHRU.
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
         * There may be higher info levels that work but are there Windows
         * server or network appliances for which IndexNumber field is not
         * guaranteed unique?
+        *
+        * CIFSGetSrvInodeNumber() uses SMB_QUERY_FILE_INTERNAL_INFO
+        * which is SMB PASSTHROUGH level therefore check for capability.
+        * Note that this function can be called with tcon == NULL.
         */
+       if (tcon && !(tcon->ses->capabilities & CAP_INFOLEVEL_PASSTHRU))
+               return -EOPNOTSUPP;
        return CIFSGetSrvInodeNumber(xid, tcon, full_path, uniqueid,
                                     cifs_sb->local_nls,
                                     cifs_remap(cifs_sb));