ISO9660 file size limitation

From: Wakko Warner
Date: Wed Nov 17 2004 - 18:11:29 EST


I just came across this today after burning backups to dvd-r. The file that
caused the problem is 2,471,265,365 bytes. After searching a little bit
I found that the kernel doesn't like the size even though it's valid (That
is from what I read). So I did this:

--- inode.c-old 2004-11-17 17:50:51.000000000 -0500
+++ inode.c 2004-11-17 17:57:44.000000000 -0500
@@ -1218,12 +1218,16 @@
* WARNING: ISO-9660 filesystems > 1 GB and even > 2 GB are fully
* legal. Do not prevent to use DVD's schilling@xxxxxxxxxxxx
*/
+#if 0
if ((inode->i_size < 0 || inode->i_size > 0x7FFFFFFE) &&
inode->i_sb->u.isofs_sb.s_cruft == 'n') {
printk(KERN_WARNING "Warning: defective CD-ROM. "
"Enabling \"cruft\" mount option.\n");
inode->i_sb->u.isofs_sb.s_cruft = 'y';
}
+#else
+ inode->i_size &= 0xFFFFFFFF;
+#endif

/*
* Some dipshit decided to store some other bit of information


It seems to work for me, but I would like to know if doing this might cause
problems. The large file is a tar.gz. After doing the above modification
and loading the module, I ran gzip -t on the file. gzip reported the file
was ok. With out doing "inode->i_size &= 0xFFFFFFFF", I noticed that the
file size was 18446744071885849685 (0xFFFFFFFF934C8455)

--
Lab tests show that use of micro$oft causes cancer in lab animals
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/