summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_tape.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fhandler_tape.cc')
-rw-r--r--winsup/cygwin/fhandler_tape.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_tape.cc b/winsup/cygwin/fhandler_tape.cc
index 14f3e9d1b..eb35f6599 100644
--- a/winsup/cygwin/fhandler_tape.cc
+++ b/winsup/cygwin/fhandler_tape.cc
@@ -107,7 +107,10 @@ mtinfo_drive::get_mp (HANDLE mt)
int
mtinfo_drive::open (HANDLE mt)
{
- get_dp (mt);
+ /* First access after opening the device can return BUS RESET, but we
+ need the drive parameters, so just try again. */
+ while (get_dp (mt) == ERROR_BUS_RESET)
+ ;
get_mp (mt);
get_pos (mt);
if (partition < MAX_PARTITION_NUM && part (partition)->block != block)