static struct scsi_disk *scsi_disk_get(struct gendisk *disk) { struct scsi_disk *sdkp; down(&sd_ref_sem); sdkp = __scsi_disk_get(disk); up(&sd_ref_sem); return sdkp; }
static struct scsi_disk *scsi_disk_get(struct gendisk *disk) { struct scsi_disk *sdkp; mutex_lock(&sd_ref_mutex); sdkp = __scsi_disk_get(disk); mutex_unlock(&sd_ref_mutex); return sdkp; }
static struct scsi_disk *scsi_disk_get_from_dev(struct device *dev) { struct scsi_disk *sdkp; down(&sd_ref_sem); sdkp = dev_get_drvdata(dev); if (sdkp) sdkp = __scsi_disk_get(sdkp->disk); up(&sd_ref_sem); return sdkp; }
static struct scsi_disk *scsi_disk_get_from_dev(struct device *dev) { struct scsi_disk *sdkp; mutex_lock(&sd_ref_mutex); sdkp = dev_get_drvdata(dev); if (sdkp) sdkp = __scsi_disk_get(sdkp->disk); mutex_unlock(&sd_ref_mutex); return sdkp; }