- Fix an uninitialized variable false warning in dm bufio

- Fix DM's passthrough ioctl support to be race free against an
  underlying device being removed.

- Fix corner-case of DM raid resync reporting if/when the raid becomes
  degraded during resync; otherwise automated raid repair will fail.

- A few DM multipath fixes to make non-SCSI optimizations, that were
  introduced during the 4.16 merge, useful for all non-SCSI devices,
  rather than narrowly define this non-SCSI mode in terms of "nvme".
  This allows the removal of "queue_mode nvme" that really didn't need
  to be introduced.  Instead DM core will internalize whether
  nvme-specific IO submission optimizations are doable and DM multipath
  will only do SCSI-specific device handler operations if SCSI is in
  use.
dm table: allow upgrade from bio-based to specialized bio-based variant

In practice this is really only meaningful in the context of the DM
multipath target (which uses dm_table_set_type() to set the type of
device DM should create via its "queue_mode" option).

So this change allows a DM multipath device with "queue_mode bio" to be
upgraded from DM_TYPE_BIO_BASED to DM_TYPE_NVME_BIO_BASED -- iff the
underlying device(s) are NVMe.

DM_TYPE_NVME_BIO_BASED is just a DM core implementation detail that
allows for NVMe-specific optimizations (e.g. use direct_make_request
instead of generic_make_request).  If in the future there is no benefit
or need to distinguish NVMe vs not: then it will be removed.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
1 file changed