qfilesystemengine_win: Update LinkType whenever asked

Checking the known flags prevented us from correctly setting the
LinkType flag if we had previously set LinkType as a known flag since
the flag is not reset between updates.

Manifested itself in situations where the file info is loaded and then
the LegacyLinkType flag is checked through
QFileInfoPrivate::checkAttribute. Since the LegacyLinkType is not
set for Windows it will update the metadata and exclude the LinkType
flag.

Change-Id: Iea27f42fe11f36ba2247e52fa9c82b4639666a64
Fixes: QTBUG-72644
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Mårten Nordheim 2018-12-20 17:38:03 +01:00
parent 4f6a4c7992
commit 524a37f99d

View File

@ -1038,8 +1038,7 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM
if (what & QFileSystemMetaData::Permissions)
fillPermissions(fname, data, what);
if ((what & QFileSystemMetaData::LinkType)
&& data.missingFlags(QFileSystemMetaData::LinkType)) {
if (what & QFileSystemMetaData::LinkType) {
data.knownFlagsMask |= QFileSystemMetaData::LinkType;
if (data.fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) {
WIN32_FIND_DATA findData;