All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nilay Shroff <nilay@linux.ibm.com>
To: Keith Busch <kbusch@kernel.org>
Cc: linux-nvme@lists.infradead.org, sagi@grimberg.me, hch@lst.de,
	axboe@fb.com, john.g.garry@oracle.com, wenxiong@linux.ibm.com,
	gjoyce@linux.ibm.com
Subject: Re: [PATCH 1/2] nvme: keep transport module referenced while head node is open
Date: Wed, 2 Sep 2026 10:25:48 +0530	[thread overview]
Message-ID: <94c6ccbb-0b76-43e1-b3a2-ef2fcb485ca5@linux.ibm.com> (raw)
In-Reply-To: <apb_3yu6G0dx_rWe@kbusch-mbp>

On 9/1/26 10:09 PM, Keith Busch wrote:
> On Mon, Aug 31, 2026 at 08:49:54PM +0530, Nilay Shroff wrote:
>> +static inline int nvme_module_get(struct nvme_ns *ns, unsigned int count)
>> +{
>> +	unsigned int i;
>> +
>> +	for (i = 0; i < count; i++) {
>> +		if (!try_module_get(ns->ctrl->ops->module))
>> +			goto out_unwind;
>> +	}
>> +
>> +	return 0;
>> +out_unwind:
>> +	while (i--)
>> +		module_put(ns->ctrl->ops->module);
>> +	return -ENXIO;
>> +}
>> +
>> +static inline void nvme_module_put(struct nvme_ns *ns, unsigned int count)
>> +{
>> +	while (count--)
>> +		module_put(ns->ctrl->ops->module);
>> +}
> 
> Thanks, looks correct to me.
> 
> I don't like the looping though. This could be done in a single
> atomic_sub instead of multiple atomic_dec calls if the module api
> provided something to get/put many references.

Yeah I though of the same however unfortunately module APIs don't
provide something using which we could atomically get/put more than
one references.

Thanks,
--Nilay


  reply	other threads:[~2026-09-02  4:56 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-31 15:19 [PATCH 0/2] nvme: add reference counting for transport modules Nilay Shroff
2026-08-31 15:19 ` [PATCH 1/2] nvme: keep transport module referenced while head node is open Nilay Shroff
2026-09-01 16:39   ` Keith Busch
2026-09-02  4:55     ` Nilay Shroff [this message]
2026-09-02  0:20   ` Wen Xiong
2026-09-02 13:31   ` Christoph Hellwig
2026-09-02 14:09     ` Nilay Shroff
2026-09-02 14:13       ` Christoph Hellwig
2026-09-02 14:25         ` Keith Busch
2026-09-02 14:27         ` Nilay Shroff
2026-09-13 14:03           ` Nilay Shroff
2026-08-31 15:19 ` [PATCH 2/2] nvme: add context annotation for nvme_ns_head::nr_openers Nilay Shroff
2026-09-01  8:14 ` [PATCH 0/2] nvme: add reference counting for transport modules John Garry
2026-09-01  9:47   ` Nilay Shroff
2026-09-01 10:14     ` John Garry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=94c6ccbb-0b76-43e1-b3a2-ef2fcb485ca5@linux.ibm.com \
    --to=nilay@linux.ibm.com \
    --cc=axboe@fb.com \
    --cc=gjoyce@linux.ibm.com \
    --cc=hch@lst.de \
    --cc=john.g.garry@oracle.com \
    --cc=kbusch@kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=sagi@grimberg.me \
    --cc=wenxiong@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.