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

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Libguestfs mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libguestfs

Reply via email to