From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O3rvY-0006ja-PK for qemu-devel@nongnu.org; Mon, 19 Apr 2010 10:26:20 -0400 Received: from [140.186.70.92] (port=34460 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O3rvS-0006hj-Fn for qemu-devel@nongnu.org; Mon, 19 Apr 2010 10:26:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O3rvM-00066H-FR for qemu-devel@nongnu.org; Mon, 19 Apr 2010 10:26:14 -0400 Received: from mail-bw0-f215.google.com ([209.85.218.215]:59433) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O3rvM-000660-Ac for qemu-devel@nongnu.org; Mon, 19 Apr 2010 10:26:08 -0400 Received: by bwz7 with SMTP id 7so4551977bwz.16 for ; Mon, 19 Apr 2010 07:26:07 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <4BCC6453.2020605@redhat.com> References: <1271680452-24121-1-git-send-email-stefanha@linux.vnet.ibm.com> <1271680452-24121-2-git-send-email-stefanha@linux.vnet.ibm.com> <4BCC6453.2020605@redhat.com> Date: Mon, 19 Apr 2010 15:26:06 +0100 Message-ID: Subject: Re: [Qemu-devel] Re: [PATCH 2/2] block: Cache total_sectors to reduce bdrv_getlength calls 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: Kevin Wolf Cc: Jan Kiszka , Christoph Hellwig , Stefan Hajnoczi , qemu-devel@nongnu.org On Mon, Apr 19, 2010 at 3:10 PM, Kevin Wolf wrote: >> @@ -416,9 +417,7 @@ static int bdrv_open_common(BlockDriverState *bs, co= nst char *filename, >> =A0 =A0 =A0} >> >> =A0 =A0 =A0bs->keep_read_only =3D bs->read_only =3D !(open_flags & BDRV_= O_RDWR); >> - =A0 =A0if (drv->bdrv_getlength) { >> - =A0 =A0 =A0 =A0bs->total_sectors =3D bdrv_getlength(bs) >> BDRV_SECTOR= _BITS; >> - =A0 =A0} >> + =A0 =A0bs->total_sectors =3D bdrv_getlength(bs) >> BDRV_SECTOR_BITS; > > Does this hunk make a difference? If drv->bdrv_getlength =3D=3D NULL, we'= ll > just get back the current value. The if statement could be left as is. I removed it to reduce the number of places where if (drv->bdrv_getlength) is explicitly checked. If callers don't know the internals of bdrv_getlength() then it is easier to extend it without auditing and changing callers. Having said that, I did add an if (drv->bdrv_getlength) check into bdrv_truncate... > But now that you sent this hunk for review, one thing about the existing > code: We should probably check the return value of bdrv_getlength. You're right. I'll clean this up and send a v2. Stefan