On 01/27/2012 07:34 AM, Laszlo Ersek wrote:
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

Applied.  Thanks.

Regards,

Anthony Liguori


Signed-off-by: Laszlo Ersek<ler...@redhat.com>
---
  os-posix.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/os-posix.c b/os-posix.c
index 5c437ca..e3ed497 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -348,6 +348,6 @@ int qemu_create_pidfile(const char *filename)
          return -1;
      }

-    close(fd);
+    /* keep pidfile open&  locked forever */
      return 0;
  }


Reply via email to