From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54067) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VKQb7-0007IR-FA for qemu-devel@nongnu.org; Fri, 13 Sep 2013 06:27:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VKQb1-0003kd-Ho for qemu-devel@nongnu.org; Fri, 13 Sep 2013 06:27:33 -0400 Received: from mx.ipv6.kamp.de ([2a02:248:0:51::16]:60885 helo=mx01.kamp.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VKQb1-0003jC-5K for qemu-devel@nongnu.org; Fri, 13 Sep 2013 06:27:27 -0400 From: Peter Lieven Date: Fri, 13 Sep 2013 12:25:03 +0200 Message-Id: <1379067909-22984-7-git-send-email-pl@kamp.de> In-Reply-To: <1379067909-22984-1-git-send-email-pl@kamp.de> References: <1379067909-22984-1-git-send-email-pl@kamp.de> Subject: [Qemu-devel] [PATCH 06/12] iscsi: add .bdrv_get_info List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, ronniesahlberg@gmail.com, Peter Lieven , stefanha@redhat.com, anthony@codemonkey.ws, pbonzini@redhat.com Signed-off-by: Peter Lieven --- block/iscsi.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/block/iscsi.c b/block/iscsi.c index 3d7961d..438d45e 100644 --- a/block/iscsi.c +++ b/block/iscsi.c @@ -1577,6 +1577,29 @@ out: return ret; } +static int iscsi_get_info(BlockDriverState *bs, BlockDriverInfo *bdi) +{ + IscsiLun *iscsilun = bs->opaque; + int max_discard = iscsilun->bl.max_unmap; + int max_write_zeroes = iscsilun->bl.max_ws_len; + + if (max_discard == 0xffffffff) { + max_discard = ISCSI_MAX_UNMAP; + } + bdi->max_discard = sector_lun2qemu(max_discard, iscsilun); + + if (max_write_zeroes == 0xffffffff) { + max_write_zeroes = ISCSI_MAX_WRITESAME; + } + bdi->max_write_zeroes = sector_lun2qemu(max_write_zeroes, iscsilun); + + bdi->discard_zeroes = iscsilun->lbprz; + bdi->discard_write_zeroes = (bs->open_flags & BDRV_O_UNMAP) && + iscsilun->lbprz && iscsilun->lbp.lbpws; + + return 0; +} + static QEMUOptionParameter iscsi_create_options[] = { { .name = BLOCK_OPT_SIZE, @@ -1597,6 +1620,7 @@ static BlockDriver bdrv_iscsi = { .create_options = iscsi_create_options, .bdrv_getlength = iscsi_getlength, + .bdrv_get_info = iscsi_get_info, .bdrv_truncate = iscsi_truncate, .bdrv_co_get_block_status = iscsi_co_get_block_status, -- 1.7.9.5