Re: [PATCH v3 08/16] nvmet-fc: untangle cross refcounting objects

From: Christoph Hellwig
Date: Tue Dec 19 2023 - 00:17:05 EST


On Mon, Dec 18, 2023 at 04:30:56PM +0100, Daniel Wagner wrote:
> The live time of the queues are strictly bound to the lifetime of an

> + struct nvmet_fc_tgt_queue *_queues[NVMET_NR_QUEUES + 1];
> struct nvmet_fc_tgt_queue __rcu *queues[NVMET_NR_QUEUES + 1];

For magic prefixes we use __, not _ in Linux. But having two arrays
of queues right next to each other, once with rcu annotation and one
not rings a bit far warning bell to me. Why do we have both? When
are we supposed to use either? Why is FC different from rest?

I really don't have any good answers as I don't know the code in the
FC transport very well, but I think this needs more work.