From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: Re: [PATCH v7 11/35] util: introduce qemu_file_getlength() Date: Wed, 4 Nov 2015 22:44:52 +0800 Message-ID: <563A19E4.1060708@linux.intel.com> References: <1446455617-129562-1-git-send-email-guangrong.xiao@linux.intel.com> <1446455617-129562-12-git-send-email-guangrong.xiao@linux.intel.com> <20151103232151.GH4180@thinpad.lan.raisama.net> <563978B5.5070803@linux.intel.com> <20151104144410.GJ4180@thinpad.lan.raisama.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: pbonzini@redhat.com, imammedo@redhat.com, gleb@kernel.org, mtosatti@redhat.com, stefanha@redhat.com, mst@redhat.com, rth@twiddle.net, dan.j.williams@intel.com, kvm@vger.kernel.org, qemu-devel@nongnu.org, vsementsov@virtuozzo.com, eblake@redhat.com To: Eduardo Habkost Return-path: Received: from mga14.intel.com ([192.55.52.115]:61182 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932778AbbKDOvD (ORCPT ); Wed, 4 Nov 2015 09:51:03 -0500 In-Reply-To: <20151104144410.GJ4180@thinpad.lan.raisama.net> Sender: kvm-owner@vger.kernel.org List-ID: On 11/04/2015 10:44 PM, Eduardo Habkost wrote: > On Wed, Nov 04, 2015 at 11:17:09AM +0800, Xiao Guangrong wrote: >> >> >> On 11/04/2015 07:21 AM, Eduardo Habkost wrote: >>> On Mon, Nov 02, 2015 at 05:13:13PM +0800, Xiao Guangrong wrote: >>> [...] >>>> +size_t qemu_file_getlength(const char *file, Error **errp) >>>> +{ >>>> + int64_t size; >>> [...] >>>> + return size; >>> >>> Can you guarantee that SIZE_MAX >= INT64_MAX on all platforms supported >>> by QEMU? >>> >> >> Actually, this function is abstracted from the common function, raw_getlength(), >> in raw-posix.c whose return value is int64_t. >> >> And i think int64_t is large enough for block devices. > > int64_t should be enough, but I don't know if size_t is large enough on > all platforms. > > I believe it's going to be either one of those cases: > > * If you are absolutely sure SIZE_MAX >= INT64_MAX on all platforms, > please explain why (and maybe add a QEMU_BUILD_BUG_ON?). (I don't > think this will be the case) > * If SIZE_MAX < INT64_MAX is possible but you believe > size <= SIZE_MAX is always true here, please explain why (and maybe > add an assert()). > * Otherwise, we need to set an appropriate error if size > SIZE_MAX > or change the type of qemu_file_getlength(). What about making it > uint64_t? > It sounds better, I will change the return value from size_t to uint64_t. Thank you for pointing it out, Eduardo!