Block driver changes for 4.6-rc
Hi Linus,
This is the block driver pull request for this merge window. It sits on top of for-4.6/core, that was just sent out.
With the amount of changes we ended up having after the merge window in 4.5, there's a non trivial amount of merging for this branch for NVMe. Even with resolving them correctly, you need to know that NVMe requires a symbol export (nvme_kill_queues()) in the merged result that doesn't exist in either branch, its only needed when they are merged together. I'm providing you two options here:
1) Pull for-4.6/drivers and do the merges yourself. This is the original branch.
2) Pull for-4.6/drivers-merged, which is the above branch, but with v4.5 merged into it and the merges resolved cleanly.
Diffstat below shown for the regular branch, for-4.6/drivers. This pull request contains:
- A set of fixes for lightnvm. One from Alan, fixing an overflow, and the rest from the usual suspects, Javier and Matias.
- A set of fixes for nbd from Markus and Dan, and a fixup from Arnd for correct usage of the signed 64-bit divider.
- A set of bug fixes for the Micron mtip32xx, from Asai.
- A fix for the brd discard handling from Bart.
- Update the maintainers entry for cciss, since that hardware has transferred ownership.
- 3 bug fixes for bcache from Eric Wheeler.
- Set of fixes for xen-blk{back,front} from Jan and Konrad.
- Removal of the cpqarray driver. It has been disabled in Kconfig since 2013, and we were initially scheduled to remove it in 3.15.
- Various updates and fixes for NVMe, with the most important being:
- Removal of the per-device NVMe thread, replacing that with a watchdog timer instead. From Christoph.
- Exposing the namespace WWID through sysfs, from Keith.
- Set of cleanups from Ming Lin.
- Logging the controller device name instead of the underlying PCI device name, from Sagi.
- And a bunch of fixes and optimizations from the usual suspects in this area.
Please pull!
git://git.kernel.dk/linux-block.git for-4.6/drivers
----------------------------------------------------------------
Alan (1):
lightnvm: fix up nonsensical configure overrun checking
Arnd Bergmann (1):
nbd: use correct div_s64 helper
Asai Thambi SP (9):
mtip32xx: Fix broken service thread handling
mtip32xx: Remove unwanted code from taskfile error handler
mtip32xx: Print exact time when an internal command is interrupted
mtip32xx: Avoid issuing standby immediate cmd during FTL rebuild
mtip32xx: Fix for rmmod crash when drive is in FTL rebuild
mtip32xx: Handle safe removal during IO
mtip32xx: Handle FTL rebuild failure state during device initialization
mtip32xx: Implement timeout handler
mtip32xx: Cleanup queued requests after surprise removal
Bart Van Assche (1):
brd: Fix discard request processing
Christoph Hellwig (5):
nvme: fix drvdata setup for the nvme device
nvme: use a work item to submit async event requests
nvme: don't poll the CQ from the kthread
nvme: replace the kthread with a per-device watchdog timer
nvme: return the whole CQE through the request passthrough interface
Dan Streetman (1):
nbd: ratelimit error msgs after socket close
Don Brace (1):
cciss: update MAINTAINERS
Eric Wheeler (3):
bcache: fix race of writeback thread starting before complete initialization
bcache: cleaned up error handling around register_cache()
bcache: fix cache_set_flush() NULL pointer dereference on OOM
Jan Beulich (2):
xen-blkfront: rename indirect descriptor parameter
xen-blkback: advertise indirect segment support earlier
Javier González (2):
lightnvm: update closed list outside of intr context
lightnvm: generalize rrpc ppa calculations
Jens Axboe (3):
Merge tag 'nbd-for-4.6' of git://git.pengutronix.de/git/mpa/linux-nbd into for-4.6/drivers
mtip32xx: remove unneeded variable in mtip_cmd_timeout()
cpqarray: remove it from the kernel
Jon Derrick (1):
NVMe: Remove unused sq_head read in completion path
Keith Busch (3):
NVMe: Fix possible queue use after freed
NVMe: Create discard zero quirk white list
NVMe: Expose ns wwid through single sysfs entry
Konrad Rzeszutek Wilk (1):
xen/blback: Fit the important information of the thread in 17 characters
Markus Pargmann (6):
nbd: Fix debugfs error handling
nbd: Remove signal usage
nbd: Timeouts are not user requested disconnects
nbd: Cleanup reset of nbd and bdev after a disconnect
nbd: Move flag parsing to a function
nbd: Create size change events for userspace
Matias Bjørling (3):
lightnvm: fold get bb tbl when using dual/quad plane mode
lightnvm: rename ->nr_pages to ->nr_sects
lightnvm: remove struct nvm_dev->total_blocksMing Lin (4):
nvme: move timeout variables to core.c
nvme: split dev_list_lock
nvme: split pci module out of core module
nvme: expose cntlid in sysfs
Sagi Grimberg (2):
nvme: Log the ctrl device name instead of the underlying pci device name nvme/host: reference the fabric module for each bdev open callout
Valentin Rothberg (1):
drivers:block: cpqarray clean up
Documentation/blockdev/cpqarray.txt | 93 -- MAINTAINERS | 10 +- drivers/block/Kconfig | 10 - drivers/block/Makefile | 1 - drivers/block/brd.c | 2 +- drivers/block/cpqarray.c | 1820 ----------------------------------- drivers/block/cpqarray.h | 126 --- drivers/block/ida_cmd.h | 349 ------- drivers/block/ida_ioctl.h | 87 -- drivers/block/mtip32xx/mtip32xx.c | 266 +++-- drivers/block/mtip32xx/mtip32xx.h | 11 +- drivers/block/nbd.c | 334 +++---- drivers/block/xen-blkback/xenbus.c | 20 +- drivers/block/xen-blkfront.c | 6 +- drivers/lightnvm/core.c | 19 +- drivers/lightnvm/gennvm.c | 7 +- drivers/lightnvm/rrpc.c | 98 +- drivers/lightnvm/rrpc.h | 15 +- drivers/md/bcache/super.c | 46 +- drivers/nvme/host/Kconfig | 6 +- drivers/nvme/host/Makefile | 10 +- drivers/nvme/host/core.c | 165 +++- drivers/nvme/host/lightnvm.c | 46 +- drivers/nvme/host/nvme.h | 14 +- drivers/nvme/host/pci.c | 239 ++--- include/linux/lightnvm.h | 8 +- 26 files changed, 792 insertions(+), 3016 deletions(-) delete mode 100644 Documentation/blockdev/cpqarray.txt delete mode 100644 drivers/block/cpqarray.c delete mode 100644 drivers/block/cpqarray.h delete mode 100644 drivers/block/ida_cmd.h delete mode 100644 drivers/block/ida_ioctl.h
Signature · 1 line
Jens Axboe
Quoted 6 lines · Jens Axboe
1) Pull for-4.6/drivers and do the merges yourself. This is the original branch.
2) Pull for-4.6/drivers-merged, which is the above branch, but with v4.5 merged into it and the merges resolved cleanly.
I don't think your merge is correct.
I pushed out mine.
So the differences are (apart from purely newline changes):
- you kept the early "flush_work(&dev->reset_work)", so your merge
didn't take the changes from commit ff23a2a15a2117245b4599c1352343c8b8fb4c43 properly, and you flush the work twice.
I don't know that it matters, but it looks odd.
- Your merge dropped the nvme_dev_disable() fromnvme_remove_dead_ctrl(), added by commit69d9a99c258eb1d6478fd9608a2070890797eed7
- Your merge kept the redundant dev_set_drvdata() innvme_init_ctrl(), removed by commit f4f0f63e6f01055dfbdb7bc5e83935e1bdfa1980.
Anyway, since I got a different merge result than you did, you should double-check, but I think I did the merge correctly.
But I don't know the code nor the hardware, so I'm just going by reading the commits.
I also do have to ask: why the hell is nvme development done in that insane way? Why the f*ck can people not work together? Why are these two different groups messing with each others code?
Tell them to stop.
I'm not happy with how messy these block layer pulls are.
Linus
Linus
Quoted 25 lines · Linus Torvalds
Quoted 6 lines · Jens Axboe
1) Pull for-4.6/drivers and do the merges yourself. This is the original branch.
2) Pull for-4.6/drivers-merged, which is the above branch, but with v4.5 merged into it and the merges resolved cleanly.
I don't think your merge is correct.
I pushed out mine.
So the differences are (apart from purely newline changes):
- you kept the early "
flush_work(&dev->reset_work)", so your merge
didn't take the changes from commitff23a2a15a2117245b4599c1352343c8b8fb4c43properly, and you flush the work twice.I don't know that it matters, but it looks odd.
- Your merge dropped the
nvme_dev_disable()fromnvme_remove_dead_ctrl(), added by commit69d9a99c258eb1d6478fd9608a2070890797eed7
Quoted 6 lines
- Your merge kept the redundant
dev_set_drvdata()innvme_init_ctrl(), removed by commitf4f0f63e6f01055dfbdb7bc5e83935e1bdfa1980.Anyway, since I got a different merge result than you did, you should double-check, but I think I did the merge correctly.
I'll double check again, but from a quick look, looks like yours is the better version.
Quoted 6 lines
But I don't know the code nor the hardware, so I'm just going by reading the commits.
I also do have to ask: why the hell is nvme development done in that insane way? Why the f*ck can people not work together? Why are these two different groups messing with each others code?
The reason it's messy is not the code in for-4.6/drivers branch, it's the amount of activity in the post merge window time for the last release. And that's why it was messy in the 4.5 merge window as well, the post merge changes for NVMe, not the history of the patches in the merge window. But you already know that. It's not two different groups of people, it's the same people...
Quoted 3 lines
Tell them to stop.
I'm not happy with how messy these block layer pulls are.
Agree, it's not going to be an issue going forward.
Signature · 1 line
Jens Axboe