All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2] do not chdir(/) in qemu-nbd before opening all files
@ 2012-01-16 14:37 Michael Tokarev
  0 siblings, 0 replies; only message in thread
From: Michael Tokarev @ 2012-01-16 14:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, mjt

When qemu-nbd becomes a daemon it calls daemon(3) with
nochdir=0, so daemon(3) changes current directory to /.
But at this time, qemu-nbd did not open any user-specified
files yet, so by changing current directory, all non-absolute
paths becomes wrong.  The solution is to pass nochdir=1 to
daemon(3) function, and to chdir("/") after all init has
been performed, before entering the main loop, -- just like
a good daemon should do.

This patch is applicable for -stable.

Signed-Off-By: Michael Tokarev <mjt@tls.msk.ru>
---
 qemu-nbd.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/qemu-nbd.c b/qemu-nbd.c
index e76c782..b1b5ae6 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -431,3 +431,3 @@ int main(int argc, char **argv)
             close(stderr_fd[0]);
-            ret = qemu_daemon(0, 0);
+            ret = qemu_daemon(1, 0);
 
@@ -529,2 +529,8 @@ int main(int argc, char **argv)
 
+    /* now when the initialization is (almost) complete, chdir("/")
+     * to free any busy filesystems */
+    if (chdir("/") < 0) {
+        err(EXIT_FAILURE, "Could not chdir to root directory");
+    }
+
     do {
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-01-16 14:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-16 14:37 [Qemu-devel] [PATCH v2] do not chdir(/) in qemu-nbd before opening all files Michael Tokarev

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.