keep the PID file locked for the lifetime of the process

The lockf() call in qemu_create_pidfile() aims at ensuring mutual
exclusion. We shouldn't close the pidfile on success (as introduced by
commit 1bbd1592), because that drops the lock as well [1]:

    "File locks shall be released on first close by the locking process
    of any file descriptor for the file."

Coverity may complain again about the leaked file descriptor; let's
worry about that later.

v1->v2:
- add reference to 1bbd1592
- explain the intentional fd leak in the source

[1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/lockf.html

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Laszlo Ersek
2012-02-01 16:23:57 -06:00
committed by Anthony Liguori
parent d34e8f6e9d
commit 93dd748b78
+1 -1
View File
@@ -348,6 +348,6 @@ int qemu_create_pidfile(const char *filename)
return -1;
}
close(fd);
/* keep pidfile open & locked forever */
return 0;
}