Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jun 2005 17:45:32 +0200
From:      des@des.no (=?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=)
To:        Scott Long <scottl@samsco.org>
Cc:        freebsd-hackers@freebsd.org, Gregg Cooper <bsdcrank@squbes.com>
Subject:   Re: Duplicate inodes in 5.4-RELEASE-i386-disc1.iso
Message-ID:  <86mzphcc0z.fsf@xps.des.no>
In-Reply-To: <42BAC1CB.30402@samsco.org> (Scott Long's message of "Thu, 23 Jun 2005 08:06:03 -0600")
References:  <42BAC058.3040603@squbes.com> <42BAC1CB.30402@samsco.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--=-=-=
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

Scott Long <scottl@samsco.org> writes:
> Gregg Cooper wrote:
> > 15005 -r--r--r--  2 root  wheel      0 May  8 03:05 dumpdates
> > 15005 -r--r--r--  2 root  wheel    142 May  8 03:05 fbtab
> > 83266 -r--r--r--  2 root  wheel     0 May  8 03:01 locale
> > 83266 -r--r--r--  2 root  wheel    31 May  8 03:01 mm.tmac
> > 83269 -r--r--r--  2 root  wheel     0 May  8 03:01 se_locale
> > 83269 -r--r--r--  2 root  wheel    97 May  8 03:01 se_ms.cov
> > 99056 -r--r--r--  2 root  wheel     0 May  8 03:05 utmp
> > 99056 -r--r--r--  2 root  wheel  18425 May  8 03:04 Makefile.dist
> Maybe it's a bug in mkisofs?

ISO 9660 filesystems donn't have inode numbers.  The cd9660 code fakes
them based on the location of each file's contents.  This model breaks
down for empty files, which have no contents and thus no meaningful
location.  Apparently, mkisofs simply keeps track of the last extent
written and uses that for the location of the next file regardless of
whether it actually has any contents, so empty files get the same
inode number as the previous non-empty file.

The attached patch will make mkisofs assign the lowest valid non-zero
address to all empty files.  They will therefore appear to be hard
links to eachother, but not to random non-empty files.

DES
--=20
Dag-Erling Sm=F8rgrav - des@des.no


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment; filename=mkisofs.diff

--- mkisofs/write.c.orig	Thu Jun 23 17:16:26 2005
+++ mkisofs/write.c	Thu Jun 23 17:19:13 2005
@@ -1238,7 +1238,8 @@
 				}
 				dwpnt->next = NULL;
 				dwpnt->size = s_entry->size;
-				dwpnt->extent = last_extent;
+				dwpnt->extent = dwpnt->size ?
+						last_extent : ISO_BLOCKS(1);
 				set_733((char *) s_entry->isorec.extent,
 								last_extent);
 				s_entry->starting_block = last_extent;

--=-=-=--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86mzphcc0z.fsf>