Re: moving affs + RDB partition support to staging?

From: jdow
Date: Tue Jun 26 2018 - 05:45:28 EST


If it is not backwards compatible I for one would refuse to use it. And if it still mattered that much to me I'd also generate a reasonable alternative. Modifying RDBs nay not be even an approximation of a good idea. You'd discover that as soon as an RDB uint64_t disk is tasted by a uint32_t only system. If it is for your personal use then you're entirely free to reject my advice and are probably smart enough to keep it working for yourself.

GPT is probably the right way to go. Preserve the ability to read RDBs for legacy disks only.

{^_^}

On 20180626 01:31, Michael Schmitz wrote:
Joanne,

I think we all agree that doing 32 bit calculations on 512-byte block
addresses that overflow on disks 2 TB and larger is a bug, causing the
issues Martin reported. Your patch addresses that by using the correct
data type for the calculations (as do other partition parsers that may
have to deal with large disks) and fixes Martin's bug, so appears to be
the right thing to do.

Using 64 bit data types for disks smaller than 2 TB where calculations
don't currently overflow is not expected to cause new issues, other than
enabling use of disk and partitions larger than 2 TB (which may have
ramifications with filesystems on these partitions). So comptibility is
preserved.

Forcing larger block sizes might be a good strategy to avoid overflow
issues in filesystems as well, but I can't see how the block size stored
in the RDB would enforce use of the same block size in filesystems.
We'll have to rely on the filesystem tools to get that right, too. Linux
AFFS does allow block sizes up to 4k (VFS limitation) so this should
allow partitions larger than 2 TB to work already (but I suspect Al Viro
may have found a few issues when he looked at the AFFS code so I won't
say more). Anyway partitioning tools and filesystems are unrelated to
the Linux partition parser code which is all we aim to fix in this patch.

If you feel strongly about unknown ramifications of any filesystems on
partitions larger than 2 TB, say so and I'll have the kernel print a
warning about these partitions.

I'll get this patch tested on Martin's test case image as well as on a
RDB image from a disk known to currently work under Linux (thanks Geert
for the losetup hint). Can't do much more without procuring a working
Amiga disk image to use with an emulator, sorry. The Amiga I plan to use
for tests is a long way away from my home indeed.

Cheers,

ÂÂÂ Michael

Am 26.06.18 um 17:17 schrieb jdow:
As long as it preserves compatibility it should be OK, I suppose.
Personally I'd make any partitioning tool front end gently force the
block size towards 8k as the disk size gets larger. The file systems
may also run into 2TB issues that are not obvious. An unused blocks
list will have to go beyond a uint32_t size, for example. But a block
list (OFS for sure, don't remember for the newer AFS) uses a tad under
1% of the disk all by itself. A block bitmap is not quite so bad. {^_-}

Just be sure you are aware of all the ramifications when you make a
change. I remember thinking about this for awhile and then determining
I REALLY did not want to think about it as my brain was getting tied
into a gordian knot.

{^_^}

On 20180625 19:23, Michael Schmitz wrote:
Joanne,

Martin's boot log (including your patch) says:

Jun 19 21:19:09 merkaba kernel: [ 7891.843284]Â sdb: RDSK (512) sdb1
(LNX^@)(res 2 spb 1) sdb2 (JXF^D)(res 2 spb 1) sdb3 (DOS^C)(res 2 spb
4)
Jun 19 21:19:09 merkaba kernel: [ 7891.844055] sd 7:0:0:0: [sdb]
Attached SCSI disk

so it's indeed a case of self inflicted damage (RDSK (512) means 512
byte blocks) and can be worked around by using a different block size.

Your memory serves right indeed - blocksize is in 512 bytes units.
I'll still submit a patch to Jens anyway as this may bite others yet.

Cheers,

ÂÂ Michael


On Sun, Jun 24, 2018 at 11:40 PM, jdow <jdow@xxxxxxxxxxxxx> wrote:
BTW - anybody who uses 512 byte blocks with an Amiga file system is
a famn
dool.

If memory serves the RDBs think in blocks rather than bytes so it
should
work up to 2 gigablocks whatever your block size is. 512 blocks is
2199023255552 bytes. But that wastes just a WHOLE LOT of disk in
block maps.
Go up to 4096 or 8192. The latter is 35 TB.

{^_^}
On 20180624 02:06, Martin Steigerwald wrote:

Hi.

Michael Schmitz - 27.04.18, 04:11:

test results at https://bugzilla.kernel.org/show_bug.cgi?id=43511
indicate the RDB parser bug is fixed by the patch given there, so if
Martin now submits the patch, all should be well?


Ok, better be honest than having anyone waiting for it:

I do not care enough about this, in order to motivate myself preparing
the a patch from Joanne DowÂs fix.

I am not even using my Amiga boxes anymore, not even the Sam440ep
which
I still have in my apartment.

So RDB support in Linux it remains broken for disks larger 2 TB,
unless
someone else does.

Thanks.

--
To unsubscribe from this list: send the line "unsubscribe
linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html