QStorageInfo/Linux: include QDir::Hidden in the search for labels
There's nothing wrong with device labels starting with a dot. Whether udev would encode those as \x2e is unknown, but we may as well not tempt fate in case it has changed or changes in the future. Also including QDir::System in case udev places the actual device nodes in /dev/disks/by-label instead of a symlink. As a nice and intentional side-effect, QDirIterator no longer performs a stat() in each of the entries, removing the double stat'ing that started happening with the previous commit. Pick-to: 6.6 Change-Id: I9d43e5b91eb142d6945cfffd1787681b4cf2bb58 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
df8514a764
commit
cad7164ee2
@ -68,7 +68,8 @@ static inline QString retrieveLabel(const QByteArray &device)
|
|||||||
if (devicePath.isEmpty())
|
if (devicePath.isEmpty())
|
||||||
return QString();
|
return QString();
|
||||||
|
|
||||||
QDirIterator it(QLatin1StringView(pathDiskByLabel), QDir::NoDotAndDotDot);
|
auto filter = QDir::AllEntries | QDir::System | QDir::Hidden | QDir::NoDotAndDotDot;
|
||||||
|
QDirIterator it(QLatin1StringView(pathDiskByLabel), filter);
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
QFileInfo fileInfo = it.nextFileInfo();
|
QFileInfo fileInfo = it.nextFileInfo();
|
||||||
if (fileInfo.symLinkTarget() == devicePath)
|
if (fileInfo.symLinkTarget() == devicePath)
|
||||||
|
Loading…
Reference in New Issue
Block a user