Re: [GIT PULL] NVMe changes for 4.5-rc1

From: Jens Axboe
Date: Fri Jan 22 2016 - 10:59:09 EST


On 01/21/2016 08:58 PM, Linus Torvalds wrote:
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).

&dev->ctrl

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..

That's fine, thanks for merging!

--
Jens Axboe