patch-2.4.13 linux/fs/isofs/inode.c

Next file: linux/fs/lockd/clntproc.c
Previous file: linux/fs/hfs/catalog.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.12/linux/fs/isofs/inode.c linux/fs/isofs/inode.c
@@ -1184,11 +1184,14 @@
 		inode->i_size = isonum_733 (de->size);
 	}
 
-	/* There are defective discs out there - we do this to protect
-	   ourselves.  A cdrom will never contain more than 800Mb 
-	   .. but a DVD may be up to 1Gig (Ulrich Habel) */
-
-	if ((inode->i_size < 0 || inode->i_size > 1073741824) &&
+	/*
+	 * The ISO-9660 filesystem only stores 32 bits for file size.
+	 * mkisofs handles files up to 2GB-2 = 2147483646 = 0x7FFFFFFE bytes
+	 * in size. This is according to the large file summit paper from 1996.
+	 * WARNING: ISO-9660 filesystems > 1 GB and even > 2 GB are fully
+	 *	    legal. Do not prevent to use DVD's schilling@fokus.gmd.de
+	 */
+	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");

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)