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-01-27 14:34:05 +01:00 committed by Anthony Liguori
parent d34e8f6e9d
commit 93dd748b78

View File

@ -348,6 +348,6 @@ int qemu_create_pidfile(const char *filename)
return -1; return -1;
} }
close(fd); /* keep pidfile open & locked forever */
return 0; return 0;
} }