[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1b333c20de3dfe22615d1b33ba2898bc72fafbbf.1513263482.git.msuchanek@suse.de>
Date: Thu, 14 Dec 2017 16:13:55 +0100
From: Michal Suchanek <msuchanek@...e.de>
To: Jens Axboe <axboe@...nel.dk>, linux-kernel@...r.kernel.org
Cc: Michal Suchanek <msuchanek@...e.de>
Subject: [PATCH 6/6] cdrom: wait for drive to become ready
When the drive closes it can take tens of seconds until the disc is
analyzed. Wait for the drive to become ready or report an error.
Signed-off-by: Michal Suchanek <msuchanek@...e.de>
---
drivers/cdrom/cdrom.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index 040d3d466cd7..a483f34b7648 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -1087,6 +1087,15 @@ int open_for_common(struct cdrom_device_info *cdi, tracktype *tracks)
}
cd_dbg(CD_OPEN, "the tray is now closed\n");
}
+ /* the door should be closed now, check for the disc */
+ if (ret == CDS_DRIVE_NOT_READY) {
+ int poll_res = poll_event_interruptible(
+ CDS_DRIVE_NOT_READY !=
+ (ret = cdo->drive_status(cdi, CDSL_CURRENT)),
+ 500);
+ if (poll_res == -ERESTARTSYS)
+ return poll_res;
+ }
if (ret != CDS_DISC_OK)
return -ENOMEDIUM;
}
--
2.13.6
Powered by blists - more mailing lists