diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-03-09 10:22:45 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-03-09 10:23:15 +0100 |
commit | 6cef72d0b4f6cd676203688a2562f0a9a620c7fb (patch) | |
tree | d45d59493e942e4489c6428e40ea979eb373eec5 /src/corelib/io | |
parent | f7118e7f1b495fc0a0b8d83dff1a207dfddb09aa (diff) | |
parent | 1cd8d67d5f9bb0cd17147481544db8fb9342354d (diff) |
Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: I9d10911c51700965f2cf0e3173b88fd9116bd3ee
Diffstat (limited to 'src/corelib/io')
-rw-r--r-- | src/corelib/io/qlockfile_unix.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/corelib/io/qlockfile_unix.cpp b/src/corelib/io/qlockfile_unix.cpp index 5719d899a0..1c8da607a7 100644 --- a/src/corelib/io/qlockfile_unix.cpp +++ b/src/corelib/io/qlockfile_unix.cpp @@ -157,13 +157,17 @@ QLockFile::LockError QLockFilePrivate::tryLock_sys() if (!setNativeLocks(fd)) qWarning() << "setNativeLocks failed:" << strerror(errno); + if (qt_write_loop(fd, fileData.constData(), fileData.size()) < fileData.size()) { + close(fd); + if (!QFile::remove(fileName)) + qWarning("QLockFile: Could not remove our own lock file %s.", qPrintable(fileName)); + return QLockFile::UnknownError; // partition full + } + // We hold the lock, continue. fileHandle = fd; - QLockFile::LockError error = QLockFile::NoError; - if (qt_write_loop(fd, fileData.constData(), fileData.size()) < fileData.size()) - error = QLockFile::UnknownError; // partition full - return error; + return QLockFile::NoError; } bool QLockFilePrivate::removeStaleLock() |