[Libguestfs] [nbdkit PATCH 6/9] server: Cache per-connection can_FOO flags
Eric Blake
eblake at redhat.com
Fri Aug 30 13:35:35 UTC 2019
On 8/30/19 8:24 AM, Richard W.M. Jones wrote:
> On Thu, Aug 29, 2019 at 10:08:26PM -0500, Eric Blake wrote:
>> @@ -232,8 +257,8 @@ handle_request (struct connection *conn,
>> void *buf, struct nbdkit_extents *extents)
>> {
>> uint32_t f = 0;
>> - bool fua = conn->can_fua && (flags & NBD_CMD_FLAG_FUA);
>> int err = 0;
>> + int r;
>>
>> /* Clear the error, so that we know if the plugin calls
>> * nbdkit_set_error() or relied on errno. */
>> @@ -246,7 +271,7 @@ handle_request (struct connection *conn,
>> break;
>>
>> case NBD_CMD_WRITE:
>> - if (fua)
>> + if (flags & NBD_CMD_FLAG_FUA)
>> f |= NBDKIT_FLAG_FUA;
>
> So don't we need to keep the backend_can_fua() test here and later in
> this function?
handle_request() is run after validate_request(), which already rejected
any use of NBD_CMD_FLAG_FUA when it was not advertised. And since the
flag is advertised only when backend_can_fua() succeeded, it is
redundant to check it here. (You do have a point that we don't want to
call into a backend without checking the flag, and thus
backend_can_fua() _also_ needs to check things - but that's done in
patch 9 when we actually start enforcing things between backends; until
then, this patch is not a change in behavior).
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20190830/e4738b0e/attachment.sig>
More information about the Libguestfs
mailing list