[haiku-bugs] Re: [Haiku] #11455: ISO9660 KDLs when it is not the first session on a CD.

  • From: "pulkomandy" <trac@xxxxxxxxxxxx>
  • Date: Fri, 14 Nov 2014 15:39:39 -0000

#11455: ISO9660 KDLs when it is not the first session on a CD.
-------------------------------------+----------------------------
   Reporter:  pulkomandy             |      Owner:  nobody
       Type:  bug                    |     Status:  new
   Priority:  normal                 |  Milestone:  R1
  Component:  File Systems/ISO 9660  |    Version:  R1/Development
 Resolution:                         |   Keywords:
 Blocked By:                         |   Blocking:
Has a Patch:  0                      |   Platform:  All
-------------------------------------+----------------------------

Comment (by pulkomandy):

 Yes, but if we give the whole disc to ISO9660, it will not be able to find
 the table of contents (which is at a fixed offset from the start of the
 data track, not the start of the disc).

 I understand this is how it works usually, when there is a single session,
 the ISO9660 filesystem works directly with the disc (the session
 partitionning system is not even used in that case), and everything is
 fine.

 When there are multiple sessions/tracks, and the ISO9660 track is the
 first one (as seen on video games with audio tracks, or the BeOS CDs for
 example), everything is also fine. The session partitionning system is
 used, but the first session has an offset of 0 and everything still works.

 In the case of these Blue Book CDs, the ISO9660 filesystem starts in the
 last track on the disc, and in a separate session. So, the ISO9660
 filesystem should look for his header at the start of that session, but
 then use disc-relative numbers as soon as it tries to access something
 else. So I see two possible solutions:
  * Have the session partitionning make all sessions overlapped and
 starting from the first sector of the disc, to make ISO9660 happy, and
 then somehow inform it of where is the ISO9660 header.
  * Have the partitionning system as it is now (so sessions match the
 physical layout of the disc), have ISO9660 convert the on-disc asolute
 numbers to session-start-relative (possibly negative), then the session
 partitionning system convert back to absolute numbers. This menas more
 involved changes to the ISO9660 and makes it more complex, but somehow it
 feels more "natural" to me than overlapping the partitions.

 In the first case, I think we would also break any other filesystem used,
 for example the BFS track on the BeOS CDs. In the second case these would
 continue to work, using only positive offsets from the session start (as
 they do now).

--
Ticket URL: <https://dev.haiku-os.org/ticket/11455#comment:9>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: