Imported Upstream version 2.5.2p1
[debian/amanda] / tape-src / tapetype.c
index bf3673771fd209142602e9bee7f6e3be94c0ba2a..385039eef8ea8805f08ae1c8def875c7cd2c6818 100644 (file)
@@ -233,6 +233,12 @@ do_pass(
            sProgName, tapedev, strerror(errno));
     exit(1);
   }
+  if (((-1 == tapefd_close(fd)) ||
+       (-1 == (fd = tape_open(tapedev, O_RDWR))))) {
+    fprintf(stderr, "%s: could not re-open %s: %s\n",
+           sProgName, tapedev, strerror(errno));
+    exit(1);
+  }
 
   time(&start);
 
@@ -292,6 +298,15 @@ do_pass0(
     exit(1);
   }
 
+  if (dorewind &&
+      ((-1 == tapefd_close(fd)) ||
+       (-1 == (fd = tape_open(tapedev, O_RDWR))))) {
+    fprintf(stderr, "%s: could not re-open %s: %s\n",
+           sProgName, tapedev, strerror(errno));
+    exit(1);
+  }
+
+
   time(&start);
 
   blks = writeblocks(fd, size);