From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754128AbcAMIJa (ORCPT ); Wed, 13 Jan 2016 03:09:30 -0500 Received: from mail.linux-iscsi.org ([67.23.28.174]:34290 "EHLO linux-iscsi.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750967AbcAMIJ2 (ORCPT ); Wed, 13 Jan 2016 03:09:28 -0500 Message-ID: <1452672566.27508.44.camel@haakon3.risingtidesystems.com> Subject: Re: [PATCH-for-4.6 1/6] target: Add target_alloc_session() helper function From: "Nicholas A. Bellinger" To: Christoph Hellwig Cc: "Nicholas A. Bellinger" , target-devel , linux-scsi , lkml , Sagi Grimberg , Hannes Reinecke , Andy Grover , Vasu Dev , Vu Pham Date: Wed, 13 Jan 2016 00:09:26 -0800 In-Reply-To: <20160112151119.GD2058@lst.de> References: <1452458668-11034-1-git-send-email-nab@daterainc.com> <1452458668-11034-2-git-send-email-nab@daterainc.com> <20160112151119.GD2058@lst.de> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.4.4-1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2016-01-12 at 16:11 +0100, Christoph Hellwig wrote: > > +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. > What's the point..? Only vhost-scsi currently needs to allocate extra resources for se_session percpu-ida tag pre-allocation. The rest of the consumers can just use this common code. > > + 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. > Done.