diff options
| author | Hannes Reinecke <hare@suse.de> | 2017-03-12 08:17:00 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2017-03-12 08:17:00 +0000 |
| commit | fbf3cf0c8300dcaf4ac03815ef6330367d15e25b (patch) | |
| tree | 30a9b273d95570b6054962a3db3ff169a7baaa41 | |
| parent | 2e4caeeccf888e39c0165b4f884b84db12eb2428 (diff) | |
| parent | ea240cfed99bda8fc1774801cb9da355e66dc7e1 (diff) | |
sd: get disk reference in sd_check_events()
am: ea240cfed9
Change-Id: Ie5d8f2f3588859d8a4f4466c158223afbf8e2ecb
| -rw-r--r-- | drivers/scsi/sd.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 6ee50742f6a5..78430ef28ea4 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -1398,11 +1398,15 @@ static int media_not_present(struct scsi_disk *sdkp, **/ static unsigned int sd_check_events(struct gendisk *disk, unsigned int clearing) { - struct scsi_disk *sdkp = scsi_disk(disk); - struct scsi_device *sdp = sdkp->device; + struct scsi_disk *sdkp = scsi_disk_get(disk); + struct scsi_device *sdp; struct scsi_sense_hdr *sshdr = NULL; int retval; + if (!sdkp) + return 0; + + sdp = sdkp->device; SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp, "sd_check_events\n")); /* @@ -1459,6 +1463,7 @@ out: kfree(sshdr); retval = sdp->changed ? DISK_EVENT_MEDIA_CHANGE : 0; sdp->changed = 0; + scsi_disk_put(sdkp); return retval; } |
