mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2026-01-04 16:21:11 +00:00
Kernel clients like exofs can retrieve struct osd_dev(s) by means of below API. + osduld_path_lookup() - given a path (e.g "/dev/osd0") locks and returns the corresponding struct osd_dev, which is then needed for subsequent libosd use. + osduld_put_device() - free up use of an osd_dev. Devices can be shared by multiple clients. The osd_uld_device's life time is governed by an embedded kref structure. The osd_uld_device holds an extra reference to both it's char-device and it's scsi_device, and will release these just before the final deallocation. There are three possible lock sources of the osd_uld_device 1. First and for most is the probe() function called by scsi-ml upon a successful login into a target. Released in release() when logout. 2. Second by user-mode file handles opened on the char-dev. 3. Third is here by Kernel users. All three locks must be removed before the osd_uld_device is freed. The MODULE has three lock sources as well: 1. scsi-ml at probe() time, removed after release(). (login/logout) 2. The user-mode file handles open/close. 3. Import symbols by client modules like exofs. TODO: This API is not enough for the pNFS-objects LD. A more versatile API will be needed. Proposed API could be: struct osd_dev *osduld_sysid_lookup(const char id[OSD_SYSTEMID_LEN]); Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> |
||
|---|---|---|
| .. | ||
| fc | ||
| fc_encode.h | ||
| fc_frame.h | ||
| fc_transport_fcoe.h | ||
| iscsi_if.h | ||
| iscsi_proto.h | ||
| libfc.h | ||
| libfcoe.h | ||
| libiscsi_tcp.h | ||
| libiscsi.h | ||
| libsas.h | ||
| libsrp.h | ||
| osd_initiator.h | ||
| osd_protocol.h | ||
| osd_sec.h | ||
| osd_types.h | ||
| sas_ata.h | ||
| sas.h | ||
| scsi_cmnd.h | ||
| scsi_dbg.h | ||
| scsi_device.h | ||
| scsi_devinfo.h | ||
| scsi_dh.h | ||
| scsi_driver.h | ||
| scsi_eh.h | ||
| scsi_host.h | ||
| scsi_ioctl.h | ||
| scsi_netlink_fc.h | ||
| scsi_netlink.h | ||
| scsi_tcq.h | ||
| scsi_tgt_if.h | ||
| scsi_tgt.h | ||
| scsi_transport_fc.h | ||
| scsi_transport_iscsi.h | ||
| scsi_transport_sas.h | ||
| scsi_transport_spi.h | ||
| scsi_transport_srp.h | ||
| scsi_transport.h | ||
| scsi.h | ||
| scsicam.h | ||
| sg.h | ||
| srp.h | ||