Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull block fixes from Jens Axboe:
"A small collection of fixes that should go into this series. This
contains:
- NVMe pull request from Christoph, with various fixes for nvme
proper and nvme-fc.
- disable runtime PM for blk-mq for now.
With scsi now defaulting to using blk-mq, this reared its head as
an issue. Longer term we'll fix up runtime PM for blk-mq, for now
just disable it to prevent a hang on laptop resume for some folks.
- blk-mq CPU <-> hw queue map fix from Christoph.
- xen/blkfront pull request from Konrad, with two small fixes for the
blkfront driver.
- a few fixups for nbd from Joseph.
- a stable fix for pblk from Javier"
* 'for-linus' of git://git.kernel.dk/linux-block:
lightnvm: pblk: advance bio according to lba index
nvme: validate admin queue before unquiesce
nbd: clear disconnected on reconnect
nvme-pci: fix HMB size calculation
nvme-fc: revise TRADDR parsing
nvme-fc: address target disconnect race conditions in fcp io submit
nvme: fabrics commands should use the fctype field for data direction
nvme: also provide a UUID in the WWID sysfs attribute
xen/blkfront: always allocate grants first from per-queue persistent grants
xen-blkfront: fix mq start/stop race
blk-mq: map queues to all present CPUs
block: disable runtime-pm for blk-mq
xen-blkfront: Fix handling of non-supported operations
nbd: only set sndtimeo if we have a timeout set
nbd: take tx_lock before disconnecting
nbd: allow multiple disconnects to be sent
This commit is contained in:
commit
0fa8dc423c
13 changed files with 197 additions and 138 deletions
|
|
@ -334,5 +334,24 @@ struct fcnvme_ls_disconnect_acc {
|
|||
#define NVME_FC_LS_TIMEOUT_SEC 2 /* 2 seconds */
|
||||
#define NVME_FC_TGTOP_TIMEOUT_SEC 2 /* 2 seconds */
|
||||
|
||||
/*
|
||||
* TRADDR string must be of form "nn-<16hexdigits>:pn-<16hexdigits>"
|
||||
* the string is allowed to be specified with or without a "0x" prefix
|
||||
* infront of the <16hexdigits>. Without is considered the "min" string
|
||||
* and with is considered the "max" string. The hexdigits may be upper
|
||||
* or lower case.
|
||||
*/
|
||||
#define NVME_FC_TRADDR_NNLEN 3 /* "?n-" */
|
||||
#define NVME_FC_TRADDR_OXNNLEN 5 /* "?n-0x" */
|
||||
#define NVME_FC_TRADDR_HEXNAMELEN 16
|
||||
#define NVME_FC_TRADDR_MINLENGTH \
|
||||
(2 * (NVME_FC_TRADDR_NNLEN + NVME_FC_TRADDR_HEXNAMELEN) + 1)
|
||||
#define NVME_FC_TRADDR_MAXLENGTH \
|
||||
(2 * (NVME_FC_TRADDR_OXNNLEN + NVME_FC_TRADDR_HEXNAMELEN) + 1)
|
||||
#define NVME_FC_TRADDR_MIN_PN_OFFSET \
|
||||
(NVME_FC_TRADDR_NNLEN + NVME_FC_TRADDR_HEXNAMELEN + 1)
|
||||
#define NVME_FC_TRADDR_MAX_PN_OFFSET \
|
||||
(NVME_FC_TRADDR_OXNNLEN + NVME_FC_TRADDR_HEXNAMELEN + 1)
|
||||
|
||||
|
||||
#endif /* _NVME_FC_H */
|
||||
|
|
|
|||
|
|
@ -1006,7 +1006,7 @@ static inline bool nvme_is_write(struct nvme_command *cmd)
|
|||
* Why can't we simply have a Fabrics In and Fabrics out command?
|
||||
*/
|
||||
if (unlikely(cmd->common.opcode == nvme_fabrics_command))
|
||||
return cmd->fabrics.opcode & 1;
|
||||
return cmd->fabrics.fctype & 1;
|
||||
return cmd->common.opcode & 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue