From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:35357) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rlgl2-0001FR-C3 for qemu-devel@nongnu.org; Fri, 13 Jan 2012 08:01:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rlgkm-0005hQ-9w for qemu-devel@nongnu.org; Fri, 13 Jan 2012 08:01:24 -0500 Received: from mx1.redhat.com ([209.132.183.28]:32811) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rlgkm-0005gm-0f for qemu-devel@nongnu.org; Fri, 13 Jan 2012 08:01:08 -0500 Date: Fri, 13 Jan 2012 13:01:01 +0000 From: "Daniel P. Berrange" Message-ID: <20120113130101.GD32411@redhat.com> References: <20120113090951.3D333341@gandalf.tls.msk.ru> <4F1027E7.3080808@msgid.tls.msk.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <4F1027E7.3080808@msgid.tls.msk.ru> Subject: Re: [Qemu-devel] [PATCH] do not chdir(/) in qemu-nbd Reply-To: "Daniel P. Berrange" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Michael Tokarev Cc: Kevin Wolf , Stefan Hajnoczi , qemu-devel@nongnu.org On Fri, Jan 13, 2012 at 04:47:35PM +0400, Michael Tokarev wrote: > On 13.01.2012 15:57, Stefan Hajnoczi wrote: > > On Fri, Jan 13, 2012 at 9:04 AM, Michael Tokarev wrote: > >> 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. > > > > It's polite to chdir("/") so that file systems can be unmounted (even > > more important when chroot was involved, but I think qemu-nbd doesn't > > do that). Is it possible to manually do a chdir("/") later on after > > we've opened necessary files? > > Yes that was something I wasn't happy about too -- lack of chdir(/) in > daemons is annoying. > > But instead of adding a chdir later, I'll try to rearrange code a bit > to do all init in the parent instead. Or just canonicalize all relative paths before daemonizing. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|