public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* lseek() on an iso9660 file
@ 2002-01-07 14:18 Richard B. Johnson
  2002-01-07 17:48 ` H. Peter Anvin
  0 siblings, 1 reply; 4+ messages in thread
From: Richard B. Johnson @ 2002-01-07 14:18 UTC (permalink / raw)
  To: Linux kernel



Using Linux 2.4.1 I discovered a problem with lseek on CDROM files
(iso9660). I just installed 2.4.17 and found the same problem.

The problem:

(1) A portion of the file, existing on a CDROM,  is read and its the
    contents are written to an output file on writable media.

(2) The current input file-position is obtained using
    pos = lseek(fd, 0, SEEK_CUR); The value returned is exactly
    the expected value.

(3) The rest of the CDROM file is read and written to the output file.

(4) The file-position of the CDROM file is then set back to the saved
    position using lseek(fd, pos, SEEK_SET); The value returned is
    exactly the expected value.

(5) The CDROM file is then read and its contents are observed to be
    scrambled in some strange manner in which word-length groups of
    bytes from near the end of the file are interleaved with the
    correct bytes. Basically, the file ends up being about twice
    as long as the original, with every-other two-byte interval
    being filled with bytes from near the end of the file.

If I mount the CDROM using the loop device, i.e.,

		mount -o loop /dev/cdrom /mnt

... the problem does not exist.

However, the performance is poor when mounting through the loop
device so this is not a good "fix". It takes about 5 minutes to
copy a 50 megabyte file from the CDROM through the loop device
while it normally takes about 50 seconds using the SCSI CDROM
directly.

If I am not supposed to use lseek() on a file existing on an
iso9660 file-system, how is an application to "know" that the
file is not lseek() capable? I need a "quick-fix". One at the
application-level is fine.


Cheers,
Dick Johnson

Penguin : Linux version 2.4.1 on an i686 machine (797.90 BogoMips).

    I was going to compile a list of innovations that could be
    attributed to Microsoft. Once I realized that Ctrl-Alt-Del
    was handled in the BIOS, I found that there aren't any.



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-01-09  8:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-01-07 14:18 lseek() on an iso9660 file Richard B. Johnson
2002-01-07 17:48 ` H. Peter Anvin
2002-01-07 18:22   ` Richard B. Johnson
2002-01-09  8:24   ` Rogier Wolff

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox