QStorageInfo: Pass MNT_NOWAIT to getmntinfo

This forces the API not to wait for synchronous I/O from the filesystems
and get the information, but instead just use the cached information
directly. It's a good idea if we have an unresponsive FS, like NFS with
an unreachable server.

Task-number: QTBUG-61096
Change-Id: Iddeeffb6f4ad4a2894a2fffd14c32f6e90664a63
Reviewed-by: Tobias C. Berner
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Thiago Macieira 2017-05-29 14:00:53 -07:00
parent dbeb748de3
commit fa3940cc4b

View File

@ -195,8 +195,12 @@ static bool shouldIncludeFs(const QStorageIterator &it)
#if defined(Q_OS_BSD4)
#ifndef MNT_NOWAIT
# define MNT_NOWAIT 0
#endif
inline QStorageIterator::QStorageIterator()
: entryCount(::getmntinfo(&stat_buf, 0)),
: entryCount(::getmntinfo(&stat_buf, MNT_NOWAIT)),
currentIndex(-1)
{
}