HomeFreeBSD

MFC 302541,302605

Description

MFC 302541,302605

302541

hyperv/stor: Fix the INQUIRY checks

Don't check the area that the host has not filled.

PR:         https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209443
PR:         https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=210425
Submitted by:       Hongjiang Zhang <honzhan microsoft com>
Reviewed by:        sephe, Dexuan Cui <decui microsoft com>
Sponsored by:       Microsoft OSTC
Differential Revision:      https://reviews.freebsd.org/D6955

302605

hyperv/stor: Save the response status and xfer length properly.

The current command response handling discards status and xfer
length unconditionally, so that all of the commands would be
considered successful, even if errors happened.  When errors
really happens, this causes all kinds of wiredness, since the
buffer will not be filled on the host side and sense data will
be ignored.

Most of the time, errors do not happen, however, error does
happen for the request sent immediately after the disk resizing.
Discarding the SCSI status (SCSI_STATUS_CHECK_COND) and sense
data (capacity changes) prevents the disk resizing from working
properly.

This commit saves the response status and xfer length properly
for later use.

Submitted by:       Dexuan Cui <decui microsoft com>
Noticed by: sephe
Sponsored by:       Microsoft OSTC
Differential Revision:      https://reviews.freebsd.org/D7181

Approved by: re (gjb)

Details

Provenance
sepheAuthored on
Parents
rS302861: Fix rendering issues.
Branches
Unknown
Tags
Unknown