Commit f22c458f authored by Daniel Wagner's avatar Daniel Wagner Committed by Christoph Hellwig
Browse files

nvmet-fcloop: replace kref with refcount



The kref wrapper is not really adding any value ontop of refcount. Thus
replace the kref API with the refcount API.

Signed-off-by: default avatarDaniel Wagner <wagi@kernel.org>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 2b5f0c5b
Loading
Loading
Loading
Loading
+12 −24
Original line number Diff line number Diff line
@@ -239,7 +239,7 @@ struct fcloop_nport {
	struct fcloop_tport *tport;
	struct fcloop_lport *lport;
	struct list_head nport_list;
	struct kref ref;
	refcount_t ref;
	u64 node_name;
	u64 port_name;
	u32 port_role;
@@ -274,7 +274,7 @@ struct fcloop_fcpreq {
	u32				inistate;
	bool				active;
	bool				aborted;
	struct kref			ref;
	refcount_t			ref;
	struct work_struct		fcp_rcv_work;
	struct work_struct		abort_rcv_work;
	struct work_struct		tio_done_work;
@@ -534,24 +534,18 @@ fcloop_tgt_discovery_evt(struct nvmet_fc_target_port *tgtport)
}

static void
fcloop_tfcp_req_free(struct kref *ref)
fcloop_tfcp_req_put(struct fcloop_fcpreq *tfcp_req)
{
	struct fcloop_fcpreq *tfcp_req =
		container_of(ref, struct fcloop_fcpreq, ref);
	if (!refcount_dec_and_test(&tfcp_req->ref))
		return;

	kfree(tfcp_req);
}

static void
fcloop_tfcp_req_put(struct fcloop_fcpreq *tfcp_req)
{
	kref_put(&tfcp_req->ref, fcloop_tfcp_req_free);
}

static int
fcloop_tfcp_req_get(struct fcloop_fcpreq *tfcp_req)
{
	return kref_get_unless_zero(&tfcp_req->ref);
	return refcount_inc_not_zero(&tfcp_req->ref);
}

static void
@@ -748,7 +742,7 @@ fcloop_fcp_req(struct nvme_fc_local_port *localport,
	INIT_WORK(&tfcp_req->fcp_rcv_work, fcloop_fcp_recv_work);
	INIT_WORK(&tfcp_req->abort_rcv_work, fcloop_fcp_abort_recv_work);
	INIT_WORK(&tfcp_req->tio_done_work, fcloop_tgt_fcprqst_done_work);
	kref_init(&tfcp_req->ref);
	refcount_set(&tfcp_req->ref, 1);

	queue_work(nvmet_wq, &tfcp_req->fcp_rcv_work);

@@ -1001,24 +995,18 @@ fcloop_fcp_abort(struct nvme_fc_local_port *localport,
}

static void
fcloop_nport_free(struct kref *ref)
fcloop_nport_put(struct fcloop_nport *nport)
{
	struct fcloop_nport *nport =
		container_of(ref, struct fcloop_nport, ref);
	if (!refcount_dec_and_test(&nport->ref))
		return;

	kfree(nport);
}

static void
fcloop_nport_put(struct fcloop_nport *nport)
{
	kref_put(&nport->ref, fcloop_nport_free);
}

static int
fcloop_nport_get(struct fcloop_nport *nport)
{
	return kref_get_unless_zero(&nport->ref);
	return refcount_inc_not_zero(&nport->ref);
}

static void
@@ -1249,7 +1237,7 @@ fcloop_alloc_nport(const char *buf, size_t count, bool remoteport)
		newnport->port_role = opts->roles;
	if (opts->mask & NVMF_OPT_FCADDR)
		newnport->port_id = opts->fcaddr;
	kref_init(&newnport->ref);
	refcount_set(&newnport->ref, 1);

	spin_lock_irqsave(&fcloop_lock, flags);