From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jon Burgess Subject: [PATCH] Remove iso9660 check for sbsector < 660Mb Date: Wed, 03 Dec 2003 18:59:56 +0000 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <3FCE32AC.4060306@jburgess.uklinux.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from columba1.eur.3com.com ([161.71.171.235]:23939 "EHLO columba1.eur.3com.com") by vger.kernel.org with ESMTP id S265119AbTLCTAA (ORCPT ); Wed, 3 Dec 2003 14:00:00 -0500 Received: from toucana.eur.3com.com (eurelay.eur.3com.com [140.204.220.50]) by columba1.eur.3com.com with ESMTP id hB3Ixl4q025638 for ; Wed, 3 Dec 2003 18:59:47 GMT Received: from isolan.pdd.3com.com ([161.71.120.148]) by toucana.eur.3com.com with ESMTP id hB3J2cja013762 for ; Wed, 3 Dec 2003 19:02:38 GMT Received: from jburgess.uklinux.net (titanic [161.71.121.152]) by isolan.pdd.3com.com (8.11.6+Sun/8.9.3) with ESMTP id hB3IxuM18022 for ; Wed, 3 Dec 2003 18:59:56 GMT To: linux-fsdevel@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org The iso9660 filesystem code checks that the "sbsector" option is positioned within the first 660Mb of the disk. Today the iso9660 filesystem is used on DVD's which are much bigger than 660Mb and this check prevents the sbsector option being used to specify the location of the superblock of multisession DVD's. With this check removed I can mount the second session on a DVD-R by specifying the sbsector, even though the firmware on that drive returns bogus data for the TOC. If an invalid large sector number is entered then a "request beyond end of device" error is reported elsewhere in the block code, but appears to do no damage. Thanks, Jon --- linux-2.6.0-test11/fs/isofs/inode.c-orig Tue Oct 14 18:00:18 2003 +++ linux-2.6.0-test11/fs/isofs/inode.c Wed Dec 3 18:48:00 2003 @@ -447,10 +447,7 @@ case Opt_sb: if (match_int(&args[0], &option)) return 0; - n = option; - if (n > 660 * 512) - return 0; - popt->sbsector = n; + popt->sbsector = option; break; case Opt_check_r: popt->check = 'r';