From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=55135 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q6lU4-0005Gl-R1 for qemu-devel@nongnu.org; Mon, 04 Apr 2011 11:14:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q6lOs-0004ml-Nm for qemu-devel@nongnu.org; Mon, 04 Apr 2011 11:09:11 -0400 Received: from mail-yw0-f45.google.com ([209.85.213.45]:63281) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q6lOs-0004ma-H1 for qemu-devel@nongnu.org; Mon, 04 Apr 2011 11:09:06 -0400 Received: by ywl41 with SMTP id 41so2714515ywl.4 for ; Mon, 04 Apr 2011 08:09:06 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <4D99CC74.9070703@redhat.com> References: <1301425482-8722-1-git-send-email-stefanha@linux.vnet.ibm.com> <1301425482-8722-4-git-send-email-stefanha@linux.vnet.ibm.com> <4D99C61E.3080600@redhat.com> <4D99C9ED.3020602@codemonkey.ws> <4D99CC74.9070703@redhat.com> Date: Mon, 4 Apr 2011 16:09:05 +0100 Message-ID: Subject: Re: [Qemu-devel] [PATCH v2 3/3] raw-posix: Re-open host CD-ROM after media change From: Stefan Hajnoczi Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Kevin Wolf , Stefan Hajnoczi , Juan Quintela , libvir-list@redhat.com, qemu-devel@nongnu.org, Ryan Harper , Amit Shah On Mon, Apr 4, 2011 at 2:49 PM, Avi Kivity wrote: > On 04/04/2011 04:38 PM, Anthony Liguori wrote: >> >> On 04/04/2011 08:22 AM, Avi Kivity wrote: >>> >>> On 04/03/2011 02:57 PM, Stefan Hajnoczi wrote: >>>> >>>> In order for media change to work with Linux host CD-ROM it is >>>> necessary to reopen the file (otherwise the inode size will not >>>> refresh, this is an issue with existing kernels). >>>> >>> >>> Maybe we should fix the bug in Linux (and backport as necessary)? >>> >>> I think cd-rom assignment is sufficiently obscure that we can require a >>> fixed kernel instead of providing a workaround. >> >> Do reads fail after CD change? =A0Or do they succeed and the size is jus= t >> reported incorrectly? >> >> If it's the later, I'd agree that it needs fixing in the kernel. =A0If i= t's >> the former, I'd say it's clearly a feature. >> > > Even if it's a documented or intentional feature, we can add an ioctl to > "refresh" the device with up-to-date data. It's possible to fix this in the kernel. I just haven't written the patch yet. The inode size needs to be updated when the new medium is detected. I haven't tested but I suspect reads within the size of the previous medium will succeed. But if the new medium is larger then reads beyond the old medium size will fail. The size reported by lseek(fd, 0, SEEK_END) is outdated. Stefan