Re: [PATCH 2/5] nvme: don't hold nvmf_transports_rwsem for more than transport lookups

From: Christoph Hellwig
Date: Tue May 15 2018 - 03:44:15 EST


> diff --git a/drivers/nvme/host/fabrics.c b/drivers/nvme/host/fabrics.c
> index 7ae732a77fe8..febf82639b40 100644
> --- a/drivers/nvme/host/fabrics.c
> +++ b/drivers/nvme/host/fabrics.c
> @@ -957,16 +957,17 @@ nvmf_create_ctrl(struct device *dev, const char *buf, size_t count)
>
> down_read(&nvmf_transports_rwsem);
> ops = nvmf_lookup_transport(opts);
> + up_read(&nvmf_transports_rwsem);

And what protects us from the transport getting unregister right here
from anothet thread waiting to acquire nvmf_transports_rwsem?