Re: [PATCH-for-4.6 1/6] target: Add target_alloc_session() helper function

From: Christoph Hellwig
Date: Tue Jan 12 2016 - 10:11:26 EST


> +struct se_session *
> +target_alloc_session(struct se_portal_group *tpg,
> + unsigned int tag_num, unsigned int tag_size,
> + enum target_prot_op prot_op,
> + const char *initiatorname, void *private,
> + int (*callback)(struct se_portal_group *,
> + struct se_session *, void *))
> +{

I'd much rather have the fabrics drivers call transport_alloc_session_tags
directly from the callback than growing even more arguments here.

> + struct se_session *sess;
> +
> + if (tag_num != 0 && !tag_size) {
> + pr_err("target_alloc_session called with percpu-ida tag_num:"
> + " %u, but zero tag_size\n", tag_num);
> + return ERR_PTR(-EINVAL);
> + }
> + if (!tag_num && tag_size) {
> + pr_err("target_alloc_session called with percpu-ida tag_size:"
> + " %u, but zero tag_num\n", tag_size);
> + return ERR_PTR(-EINVAL);
> + }

These checks should be in transport_alloc_session_tags.