• E
    nbd: Limit nbdflags to 16 bits · 97b5a97f
    Eric Blake 提交于
    Rather than asserting that nbdflags is within range, just give
    it the correct type to begin with :)  nbdflags corresponds to
    the per-export portion of NBD Protocol "transmission flags", which
    is 16 bits in response to NBD_OPT_EXPORT_NAME and NBD_OPT_GO.
    
    Furthermore, upstream NBD has never passed the global flags to
    the kernel via ioctl(NBD_SET_FLAGS) (the ioctl was first
    introduced in NBD 2.9.22; then a latent bug in NBD 3.1 actually
    tried to OR the global flags with the transmission flags, with
    the disaster that the addition of NBD_FLAG_NO_ZEROES in 3.9
    caused all earlier NBD 3.x clients to treat every export as
    read-only; NBD 3.10 and later intentionally clip things to 16
    bits to pass only transmission flags).  Qemu should follow suit,
    since the current two global flags (NBD_FLAG_FIXED_NEWSTYLE
    and NBD_FLAG_NO_ZEROES) have no impact on the kernel's behavior
    during transmission.
    
    CC: qemu-stable@nongnu.org
    Signed-off-by: NEric Blake <eblake@redhat.com>
    
    Message-Id: <1469129688-22848-3-git-send-email-eblake@redhat.com>
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    (cherry picked from commit 7423f417)
    Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
    97b5a97f
client.c 20.9 KB