On Thu, Jan 21, 2016 at 1:27 PM, Jens Axboe <axboe@xxxxxx> wrote:
Note that pulling this in will conflict with master, since the code was
forked off pretty early, and we had a good chunk of nvme fixes later in
the 4.4 cycle.
Not just conflict, but conflict in bad ways. I don't think I'll be
able to fix it up sanely.
In particular, commit b5875222de2f ("NVMe: IO ending fixes on surprise
removal") by Keith Busch added this to nvme_dev_remove():
if (nvme_io_incapable(dev)) {
/*
* If the device is not capable of IO (surprise hot-removal,
* for example), we need to quiesce prior to deleting the
* namespaces. This will end outstanding requests and prevent
* attempts to sync dirty data.
*/
nvme_dev_shutdown(dev);
}
and in your branch we now have:
- nvme_dev_shutdown() is now nvme_dev_disable(dev, false). Fine.
- nvme_dev_remove() got renamed to nvme_remove_namespaces(), but also
lost the "dev" argument (it takes "struct nvme_ctrl *ctrl" now).
I think I will end up doing the merge by just dropping that part of
the surprise removal commit, and letting you and Keith work out what
the real solution is..