On Mon, May 18, 2015 at 12:17:24AM -0700, Nicholas A. Bellinger wrote: > On Sun, 2015-05-17 at 18:51 +0200, Christoph Hellwig wrote: > > On Wed, May 13, 2015 at 01:46:11AM -0700, Nicholas A. Bellinger wrote: > > > Updated to use a mirror lun->lun_rtpi, with the assignment from sep_rtpi > > > occuring in core_dev_export() code. > > > > From looking at your current tree I suspect freeing the se_port structure > > using kfree_rcu might be a better idea. Together with dropping the references > > to the se_device from call_rcu context this basically means all pointers > > in struct se_lun are rcu protected which is much safer if you want > > to access struct se_lun under rcu protection, as this avoids having to > > deal with special cases. Additionally that basically allows you to > > replace lun_sep_lock with rcu_read_lock for anything remotely like > > a fast path. > > Here's a first pass at this along with kref + completion conversion for > the special case PR ALL_TGT_PT=1 pointer dereference. Btw, I started hacking up a patch to merge se_port and t10_alua_tg_pt_gp_member in se_lun, which seems even better as it closes all kinds of other races. Can you keep this one back for now, I'll send out that patch ASAP after finishing some testing. -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html