On Tue, 15 Feb 2005, James Bottomley wrote: > On Tue, 2005-02-15 at 16:53 -0800, Andrew Vasquez wrote: > > Yes, but the parent needs to know if the starget is actually created. > > With the fc_rports snapshot I've been working with, I've coded up the > > following: > > Why do you need to know if the scan actually found any LUNs? >
originally, just to handle the starget-specific interfaces originally defined. > > + if (unlikely(!rport->starget)) > > dev_printk(KERN_ERR, &rport->dev, TGT_ALLOC_FAILURE_MSG, > > __FUNCTION__, shost->host_no); > > > > so when the rport gets dropped (i.e. fc_remote_port_delete()), a > > scsi_remove_target() call can be issued. I'm not entirely thrilled > > with the structure-member poking (any other suggestions on how to get > > the child, welcomed), but it does work. > > Well, how about a different format for this, so there's a > scsi_remove_target that takes a generic device (analogous to the > scsi_scan_target) except that this time if the device isn't a target, we > remove all the children of the device that are targets? > along the same vein, we'll also need generic-device accessors to block and unblock all scsi_device children of an scsi_target. currently, scsi_internal_devive_[block|unblock]() is issued across all sdevs for a given starget: void scsi_block_target(struct device *) void scsi_unblock_target(struct device *) one caveat with these parent-accessors is that we also lose 'per-starget' (un)blocking/removal granualarity -- not sure if that's going to be a problem for other interfaces in the future. -- Andrew - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html