qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>
Subject: [Qemu-devel] [PULL 11/15] nbd: don't request FUA on FLUSH
Date: Tue,  5 Apr 2016 11:50:14 +0200	[thread overview]
Message-ID: <1459849818-26649-12-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1459849818-26649-1-git-send-email-pbonzini@redhat.com>

From: Eric Blake <eblake@redhat.com>

The NBD protocol does not clearly document what will happen
if a client sends NBD_CMD_FLAG_FUA on NBD_CMD_FLUSH.
Historically, both the qemu and upstream NBD servers silently
ignored that flag, but that feels a bit risky.  Meanwhile, the
qemu NBD client unconditionally sends the flag (without even
bothering to check whether the caller cares; at least with
NBD_CMD_WRITE the client only sends FUA if requested by a
higher layer).

There is ongoing discussion on the NBD list to fix the
protocol documentation to require that the server MUST ignore
the flag (unless the kernel folks can better explain what FUA
means for a flush), but until those doc improvements land, the
current nbd.git master was recently changed to reject the flag
with EINVAL (see nbd commit ab22e082), which now makes it
impossible for a qemu client to use FLUSH with an upstream NBD
server.

We should not send FUA with flush unless the upstream protocol
documents what it will do, and even then, it should be something
that the caller can opt into, rather than being unconditional.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1459526902-32561-1-git-send-email-eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 block/nbd-client.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/block/nbd-client.c b/block/nbd-client.c
index 021a88b..878e879 100644
--- a/block/nbd-client.c
+++ b/block/nbd-client.c
@@ -319,10 +319,6 @@ int nbd_client_co_flush(BlockDriverState *bs)
         return 0;
     }
 
-    if (client->nbdflags & NBD_FLAG_SEND_FUA) {
-        request.type |= NBD_CMD_FLAG_FUA;
-    }
-
     request.from = 0;
     request.len = 0;
 
-- 
2.5.5

  parent reply	other threads:[~2016-04-05  9:50 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-05  9:50 [Qemu-devel] [PULL 00/15] Misc changes for QEMU 2.6.0-rc1 Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 01/15] update Linux headers to 4.6 Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 02/15] target-i386/kvm: Hyper-V VMBus hypercalls blank handlers Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 03/15] memory: fix segv on qemu_ram_free(block=0x0) Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 04/15] target-i386: do not pass MSR_TSC_AUX to KVM ioctls if CPUID bit is not set Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 05/15] target-i386: assert that KVM_GET/SET_MSRS can set all requested MSRs Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 06/15] checkpatch: add target_ulong to typelist Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 07/15] util: retry getaddrinfo if getting EAI_BADFLAGS with AI_V4MAPPED Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 08/15] char: fix broken EAGAIN retry on OS-X due to errno clobbering Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 09/15] char: ensure all clients are in non-blocking mode Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 10/15] doc/memory: update MMIO section Paolo Bonzini
2016-04-05  9:59   ` Cao jin
2016-04-05 10:19     ` Paolo Bonzini
2016-04-05  9:50 ` Paolo Bonzini [this message]
2016-04-05  9:50 ` [Qemu-devel] [PULL 12/15] cpus: don't use atomic_read for vm_clock_warp_start Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 13/15] include/qemu/atomic: add compile time asserts Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 14/15] nbd: Fix poor debug message Paolo Bonzini
2016-04-05  9:50 ` [Qemu-devel] [PULL 15/15] net: fix missing include of qapi/error.h in netmap.c Paolo Bonzini
2016-04-05 10:53 ` [Qemu-devel] [PULL 00/15] Misc changes for QEMU 2.6.0-rc1 Peter Maydell

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=1459849818-26649-12-git-send-email-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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: link
Be 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).