* Ported to Linux's Second Extended File System as part of the
* dump and restore backup suit
* Remy Card <card@Linux.EU.Org>, 1994-1997
- * Stelian Pop <pop@cybercable.fr>, 1999
+ * Stelian Pop <pop@cybercable.fr>, 1999-2000
*/
/*-
#ifndef lint
static const char rcsid[] =
- "$Id: tape.c,v 1.9 1999/11/21 16:01:47 tiniou Exp $";
+ "$Id: tape.c,v 1.11 2000/01/21 10:17:41 stelian Exp $";
#endif /* not lint */
#ifdef __linux__
{
int got, need = count;
- while ((got = read(fd, buf, need)) > 0 && (need -= got) > 0)
- (char *)buf += got;
+ do {
+ while ((got = read(fd, buf, need)) > 0 && (need -= got) > 0)
+ (char *)buf += got;
+ } while (got == -1 && errno == EINTR);
return (got < 0 ? got : count - need);
}
{
int got, need = count;
- while ((got = write(fd, buf, need)) > 0 && (need -= got) > 0)
- (char *)buf += got;
+ do {
+ while ((got = write(fd, buf, need)) > 0 && (need -= got) > 0)
+ (char *)buf += got;
+ } while (got == -1 && errno == EINTR);
return (got < 0 ? got : count - need);
}