summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2000-08-23 07:33:28 +0000
committerJim Meyering <jim@meyering.net>2000-08-23 07:33:28 +0000
commitd704481d1f594bbe08e70f157410da2427b22161 (patch)
tree91abe31a45f351b33b4cc6e2c61933229190c44f /src
parent9445f3be0531daf88e782cee465c9aff65090b62 (diff)
downloadcoreutils-d704481d1f594bbe08e70f157410da2427b22161.tar.xz
back out last change
Diffstat (limited to 'src')
-rw-r--r--src/dd.c32
1 files changed, 0 insertions, 32 deletions
diff --git a/src/dd.c b/src/dd.c
index ef5a9ed62..2a89b6b01 100644
--- a/src/dd.c
+++ b/src/dd.c
@@ -718,37 +718,6 @@ swab_buffer (unsigned char *buf, size_t *nread)
return ++bufstart;
}
-/* Return nonzero iff the file referenced by FDESC is of a type for
- which lseek's return value is known to be invalid on some systems.
- Otherwise, return zero.
- For example, return nonzero if FDESC references a character device
- (on any system) because the lseek on many Linux systems incorrectly
- returns `0' for tape devices, even though the function fails to
- perform the requested operation. In that case, lseek should return
- nonzero and set errno. */
-
-static int
-buggy_lseek_support (int fdesc)
-{
- /* We have to resort to this because on some systems, lseek doesn't work
- on some special files but doesn't return an error, either.
- In particular, the Linux tape drivers are a problem.
- For example, when I did the following using dd-4.0y or earlier on a
- Linux-2.2.17 system with a Exabyte SCSI tape drive:
-
- dev=/dev/nst0
- reset='mt -f $dev rewind; mt -f $dev fsf 1'
- eval $reset; dd if=$dev bs=32k of=out1
- eval $reset; dd if=$dev bs=32k of=out2 skip=1
-
- the resulting files, out1 and out2, would compare equal. */
-
- struct stat stats;
-
- return (fstat (fdesc, &stats) == 0
- && (S_ISCHR (stats.st_mode)));
-}
-
/* Throw away RECORDS blocks of BLOCKSIZE bytes on file descriptor FDESC,
which is open with read permission for FILE. Store up to BLOCKSIZE
bytes of the data at a time in BUF, if necessary. */
@@ -763,7 +732,6 @@ skip (int fdesc, char *file, uintmax_t records, size_t blocksize,
operation, fall back on using read. */
o = records * blocksize;
if (o / blocksize != records
- || buggy_lseek_support (fdesc)
|| lseek (fdesc, o, SEEK_SET) == -1)
{
while (records-- > 0)