public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Paul Serice <paul@serice.net>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: [PATCH] iso9660 inodes beyond 4GB
Date: Thu, 20 May 2004 17:22:02 -0500	[thread overview]
Message-ID: <40AD2F8A.6030306@serice.net> (raw)

The ISO 9660 standard allows meta-data to be stored at almost any
arbitrary byte on the file system.  The current inode scheme uses the
byte offset as the inode value making it easy to find the underlying
block and block offset.

This scheme is subject to obvious integer overflow problems that
prevents it from being able to reach meta-data beyond the 4GB
boundary.  Looking back through the archives, this problem was
anticipated but discounted because mkisofs puts its meta-data near the
beginning of the file system.

However, there are at least two common scenarios where meta-data must
be located beyond the 4GB boundary.  First, growisofs needs to add
meta-data beyond the 4GB boundary when it merges a new session with an
old session that ended beyond the 4GB boundary.  The following URL has
more information:

     http://fy.chalmers.se/~appro/linux/DVD+RW/#isofs4gb

Second (and what prompted this patch) is that I've written two
programs that together with cdrecord or growisofs allow arbitrarily
large backups to span a multi-volume set of DVDs without the need for
any intermediate files (much like the functionality of a tape drive).
Because I only know the file lengths near the end of each burn, I have
to write the meta-data near the end of the DVD.  The following URL has
more information:

     http://www.serice.net/shunt/

To support these types of DVDs, the inode scheme for isofs must be
changed.  The patch I'm submitting for review provides one such
comprehensive inode scheme.  It assigns inode numbers sequentially
starting with 1 for the root inode.  It keeps a mapping for each inode
that is indexed both by the inode number and by the block and block
offset.  The indexes are implemented using two rbtrees and protected
by a reader-writer spin lock.

The patch is about 28K and can be downloaded from the following URL:

     http://www.serice.net/shunt/linux-2.6.6-isofs.patch


Thanks
Paul Serice


             reply	other threads:[~2004-05-22  1:28 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-20 22:22 Paul Serice [this message]
2004-05-22  2:06 ` [PATCH] iso9660 inodes beyond 4GB Andrew Morton
2004-05-22 19:44   ` Paul Serice
2004-05-22 19:53     ` Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2004-05-31 17:54 Paul Serice
2004-06-01  4:17 ` Neil Brown
2004-06-01 13:44   ` Paul Serice

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=40AD2F8A.6030306@serice.net \
    --to=paul@serice.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox