NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/48787
The following reply was made to PR kern/48787; it has been noted by GNATS.
From: "Thomas Schmitt" <scdbackup%gmx.net@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: kern/48787
Date: Fri, 09 May 2014 18:42:04 +0200
> -rw-r--r-- 1 dbus dbus 4294965248 May 6 15:30 large_file
> -rw-r--r-- 1 dbus dbus 4294965248 May 6 15:30 large_file
This is a different bug. ISO 9660 level 3 allows to store files
larger than 4 GiB - 1. This is done by several directory entries
with the same name marking a byte interval ("extent") of the
overall file.
There is no global indication in a filesystem for ISO 9660 level 3.
You recognize it by encountering multi-extent files.
The real situation as reported by
xorriso -find /my/large_file -exec report_lba
is that the first extent starts at block 56 and has 2097151 blocks.
The second extent starts at block 2097207 and has 16802 blocks.
The combined file size is 4329375744 bytes.
> The norrip case works as expected:
> -r-xr-xr-x 1 root wheel 34410496 May 6 15:30 large_file
It does not, i fear. It just shows a different skewed projection
of the large file: 4329375744 - 4294965248 = 34410496.
I.e. we see the second extent with the remaining bytes of the
file above byte address 4 GiB - 2048.
(You can combine one file from with RRIP and the file of -norrip
to get the original large file. Easier would be to let xorriso
extract it to hard disk.)
When i assessed the problem in FreeBSD 2 years ago, i noticed
a 1:1 relation between iso_node and extent. It would have to
become 1:n, or multi-extent files would have to be handled
as reason for a well contained error. (Not easy to imagine how
the latter shall work consistently.)
I plan to look for a solution.
But that change will be a fat patch, i guess, because it will
include an adjustment of the object relationship graph in cd9660.
Between this quite clear PR 48787 and the PR for large files
i plan to post a PR for scaling down cd9660 inode numbers by a
factor of 32. See ls -i and its 32-bit rolled over inode number
display with the test image.
But i first want to gain more experience about NetBSD cooperation
by this PR 48787. Be invited to teach me how to make it convenient
for those who decide about commits.
(Also i have found one spot in libisofs which needs closer
inspection in respect to 64 bit ino_t. Pot, kettle, black.)
Home |
Main Index |
Thread Index |
Old Index