summaryrefslogtreecommitdiffstats
path: root/lib/misc/lvm-exec.c
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2011-01-10 19:31:02 +0000
committerZdenek Kabelac <zkabelac@redhat.com>2011-01-10 19:31:02 +0000
commitad50450a22ec090a4377a03bdba6ab3a13ca8b34 (patch)
tree46b3a7ff507b91aea1987845a38b1e57926911e9 /lib/misc/lvm-exec.c
parent0825c244dd1d0d11dfcac31560f53f280a2bc8c5 (diff)
downloadlvm2-ad50450a22ec090a4377a03bdba6ab3a13ca8b34.tar.gz
lvm2-ad50450a22ec090a4377a03bdba6ab3a13ca8b34.tar.xz
lvm2-ad50450a22ec090a4377a03bdba6ab3a13ca8b34.zip
Avoid cookie sharing between forked processes
Before fork, ensure cookie is reset so it's not shared between processes.
Diffstat (limited to 'lib/misc/lvm-exec.c')
-rw-r--r--lib/misc/lvm-exec.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/misc/lvm-exec.c b/lib/misc/lvm-exec.c
index 5cad79eb..6dde265c 100644
--- a/lib/misc/lvm-exec.c
+++ b/lib/misc/lvm-exec.c
@@ -54,6 +54,8 @@ int exec_cmd(struct cmd_context *cmd, const char *const argv[], int *rstatus)
log_verbose("Executing: %s", _verbose_args(argv, buf, sizeof(buf)));
+ fs_unlock(); /* Flush oops and ensure cookie is not shared */
+
if ((pid = fork()) == -1) {
log_error("fork failed: %s", strerror(errno));
return 0;