[plug] iso9660 and 2GB filesize limit

Michael Holland myk at westnet.com.au
Wed Jul 21 10:50:03 WST 2004


On Tue, 20 Jul 2004, Cameron Patrick wrote:

>                 printk(KERN_WARNING "Warning: defective CD-ROM.  "
>                        "Enabling \"cruft\" mount option.\n");

Yes, I'm seeing that.

> If you see that "defective CD-ROM" message in syslog, then I'd guess
> that the attached patch (written by me, utterly untested, use at your

Uh ... kernel code is interesting to look at. And often disappointing
(havn't these people heard of comments!??).  But I get a bit nervous at
the words "untested kernel patch". Phrases like "memory leak", "buffer
overflow", "subltle filesystem corruption", deadlock, and "race condition"
come to mind. Yes, I'm afraid I'm kernel-mode-phobic.

Eh, WTF. But I'll do a backup first.

One work-around is to burn the DVD with the '-udf' option. That generates
lots of 'UDF-fs DEBUG fs/udf/super.c:' messages in the syslog on mounting,
and shows a large UID (4294967295), but the large files read OK.

Are there any user-mode tools to extract files from an ISOFS images?
I can't find one.

> -               printk(KERN_WARNING "Warning: defective CD-ROM.  "
> -                      "Enabling \"cruft\" mount option.\n");
> +               printk(KERN_WARNING "Warning: using Cameron's dodgy hack to disable checks on file size");
>                 sbi->s_cruft = 'y';

> -       /*
> -        * Some dipshit decided to store some other bit of information
> -        * in the high byte of the file length.  Catch this and holler.
> -        * WARNING: this will make it impossible for a file to be > 16MB
> -        * on the CDROM.
> -        */
> -
> -       if (sbi->s_cruft == 'y' &&
> -           inode->i_size & 0xff000000) {
> -               inode->i_size &= 0x00ffffff;
> -       }
> -

Wow! So any one file over 2GB will cripple ALL files over 16MB !!!
And this is a dumb hack that's been sitting there since 1998?

I'd rather remove the "enable cruft on seeing a large file", than disable
cruft completely. Is that OK? Perhaps the "right way" would be to add
another isofs-specific mount option?
That patch leaves in lots of code that now serves no purpose.

I'm doing a 'make modules' now, and its slow. (The kernel has got huge!)
Whats the easy way to make and install a single module?

thanks, Mike.

--
Reading this .sig? So are your customers.



More information about the plug mailing list