From: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> To: qemu-devel@nongnu.org, qemu-block@nongnu.org Cc: stefanha@redhat.com, fam@euphon.net, kwolf@redhat.com, mreitz@redhat.com, den@openvz.org, vsementsov@virtuozzo.com, andrey.shinkevich@virtuozzo.com Subject: [Qemu-devel] [PATCH] block/io.c: fix for the allocation failure Date: Fri, 5 Apr 2019 17:24:04 +0300 [thread overview] Message-ID: <1554474244-553661-1-git-send-email-andrey.shinkevich@virtuozzo.com> (raw) On a file system used by the customer, fallocate() returns an error if the block is not properly aligned. So, bdrv_co_pwrite_zeroes() fails. We can handle that case the same way as it is done for the unsupported cases, namely, call to bdrv_driver_pwritev() that writes zeroes to an image for the unaligned chunk of the block. Suggested-by: Denis V. Lunev <den@openvz.org> Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> --- block/io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/io.c b/block/io.c index dfc153b..0412a51 100644 --- a/block/io.c +++ b/block/io.c @@ -1516,7 +1516,7 @@ static int coroutine_fn bdrv_co_do_pwrite_zeroes(BlockDriverState *bs, assert(!bs->supported_zero_flags); } - if (ret == -ENOTSUP && !(flags & BDRV_REQ_NO_FALLBACK)) { + if (ret < 0 && !(flags & BDRV_REQ_NO_FALLBACK)) { /* Fall back to bounce buffer if write zeroes is unsupported */ BdrvRequestFlags write_flags = flags & ~BDRV_REQ_ZERO_WRITE; -- 1.8.3.1
WARNING: multiple messages have this Message-ID (diff)
From: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> To: qemu-devel@nongnu.org, qemu-block@nongnu.org Cc: fam@euphon.net, kwolf@redhat.com, vsementsov@virtuozzo.com, mreitz@redhat.com, stefanha@redhat.com, andrey.shinkevich@virtuozzo.com, den@openvz.org Subject: [Qemu-devel] [PATCH] block/io.c: fix for the allocation failure Date: Fri, 5 Apr 2019 17:24:04 +0300 [thread overview] Message-ID: <1554474244-553661-1-git-send-email-andrey.shinkevich@virtuozzo.com> (raw) Message-ID: <20190405142404._MCRi9nINHWj_GRDO8XX8ldrLSoJ0RI1CmmxoDU_DbY@z> (raw) On a file system used by the customer, fallocate() returns an error if the block is not properly aligned. So, bdrv_co_pwrite_zeroes() fails. We can handle that case the same way as it is done for the unsupported cases, namely, call to bdrv_driver_pwritev() that writes zeroes to an image for the unaligned chunk of the block. Suggested-by: Denis V. Lunev <den@openvz.org> Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> --- block/io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/io.c b/block/io.c index dfc153b..0412a51 100644 --- a/block/io.c +++ b/block/io.c @@ -1516,7 +1516,7 @@ static int coroutine_fn bdrv_co_do_pwrite_zeroes(BlockDriverState *bs, assert(!bs->supported_zero_flags); } - if (ret == -ENOTSUP && !(flags & BDRV_REQ_NO_FALLBACK)) { + if (ret < 0 && !(flags & BDRV_REQ_NO_FALLBACK)) { /* Fall back to bounce buffer if write zeroes is unsupported */ BdrvRequestFlags write_flags = flags & ~BDRV_REQ_ZERO_WRITE; -- 1.8.3.1
next reply other threads:[~2019-04-05 14:24 UTC|newest] Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-04-05 14:24 Andrey Shinkevich [this message] 2019-04-05 14:24 ` [Qemu-devel] [PATCH] block/io.c: fix for the allocation failure Andrey Shinkevich 2019-04-05 22:50 ` [Qemu-devel] [Qemu-block] " John Snow 2019-04-05 22:50 ` John Snow 2019-04-08 9:44 ` Andrey Shinkevich 2019-04-08 9:44 ` Andrey Shinkevich 2019-04-08 10:04 ` Kevin Wolf 2019-04-08 10:04 ` Kevin Wolf 2019-04-08 10:14 ` Kevin Wolf 2019-04-08 10:14 ` Kevin Wolf 2019-04-10 14:54 ` Stefan Hajnoczi 2019-04-10 14:54 ` Stefan Hajnoczi 2019-04-08 11:55 ` Andrey Shinkevich 2019-04-08 11:55 ` Andrey Shinkevich 2019-04-08 9:00 ` [Qemu-devel] " Stefan Hajnoczi 2019-04-08 9:00 ` Stefan Hajnoczi 2019-04-08 9:45 ` Andrey Shinkevich 2019-04-08 9:45 ` Andrey Shinkevich 2019-08-17 14:42 ` Eric Blake 2019-08-17 14:49 ` Eric Blake 2019-08-17 14:56 ` Eric Blake 2019-08-19 19:46 ` Denis V. Lunev 2019-08-19 20:30 ` Eric Blake 2019-08-19 20:53 ` Denis V. Lunev 2019-08-19 21:29 ` Eric Blake
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1554474244-553661-1-git-send-email-andrey.shinkevich@virtuozzo.com \ --to=andrey.shinkevich@virtuozzo.com \ --cc=den@openvz.org \ --cc=fam@euphon.net \ --cc=kwolf@redhat.com \ --cc=mreitz@redhat.com \ --cc=qemu-block@nongnu.org \ --cc=qemu-devel@nongnu.org \ --cc=stefanha@redhat.com \ --cc=vsementsov@virtuozzo.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).