return 0;
 }
 
+static int
+smb2_query_file_info(const unsigned int xid, struct cifs_tcon *tcon,
+                    struct cifs_fid *fid, FILE_ALL_INFO *data)
+{
+       int rc;
+       struct smb2_file_all_info *smb2_data;
+
+       smb2_data = kzalloc(sizeof(struct smb2_file_all_info) + MAX_NAME * 2,
+                           GFP_KERNEL);
+       if (smb2_data == NULL)
+               return -ENOMEM;
+
+       rc = SMB2_query_info(xid, tcon, fid->persistent_fid, fid->volatile_fid,
+                            smb2_data);
+       if (!rc)
+               move_smb2_info_to_cifs(data, smb2_data);
+       kfree(smb2_data);
+       return rc;
+}
+
 static char *
 smb2_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb,
                        struct cifs_tcon *tcon)
        .echo = SMB2_echo,
        .query_path_info = smb2_query_path_info,
        .get_srv_inum = smb2_get_srv_inum,
+       .query_file_info = smb2_query_file_info,
        .build_path_to_root = smb2_build_path_to_root,
        .mkdir = smb2_mkdir,
        .mkdir_setinfo = smb2_mkdir_setinfo,