PFS3AIO 3.0 final is now available from Aminet.
- Bug fixes, including finally fixed nasty bug causing Wrong Index Block ID
(and others) if partition was >=5G and lots of small files were created
very quickly, for example unpacking archive with thousands of small files.
This bug has most likely existed since PFS3 introduced >=5G partition
- Compiled with m68k optimized GCC 6
), 16k smaller than
- Some HD controllers modify MaxTransfer after filesystem has been
initialized, which was ignored by previous versions.
- Automatic max transfer limit is only enabled if scsi.device version is v36
or newer and older than v50.
- Limit Direct SCSI mode max transfer size to 65535 blocks (~32MB).
- Automatically attempt to increase number of buffers if all buffers are in
use and more buffers are required.
- Added support for new OS 3.1.4 filesystem mount flags. (SCSIDIRECT,
SUPERFLOPPY and DISABLENSD).
- Shows more detailed information in error requesters (access mode, start
block, end block, SCSI details if SCSI Direct)
- Includes unsupported and experimental >104G partition support. Shows
warning if enabled during formatting.
- ACTION_DIE (unmount) stability fix.
- Filename changed from pfs3_aio-handler to pfs3aio.
PFS3AIO 3.0 Test #7 (Yet another attempt of final....)
PFS3AIO 3.0 Test #7
- ACTION_DIE (unmount) was replied too early, KillDev that comes with IDEFix crashed with memory list corruption.
- Test #2 TD64/NSD test fix didn't make any sense, was reverted.
- Also add sometimes used PFS\1 and PDS\1 to FileSystem.resource.
PFS3AIO 3.0 Test #6 (still bugs found, It looks like I'll never finish this....)
PFS3AIO 3.0 Test #6
- OS 3.1.4 SCSIDIRECT option READ CAPACITY bug fix.
- UNSAFEQUIT was not set, it should be or ACTION_DIE with open handles could cause crashes. (Was set in AROS version)
- ACTION_DIE crash fixed (StackSwap start/exit code was rewritten for non-AROS version, of course it had a bug..)
- Previously failed init (for example if OpenDevice() failed) caused pfs3 to wait forever. Now it returns error and exits normally.
PFS3AIO 3.0 Test #5 (#4 wasn't final after all, added lost v2 features)
- pfs3aio is again rommable and loadmodule etc.. compatible. Feature was lost during AROS gcc to "normal" gcc port.
- pfs3aio-custom is also included again. Version for drivers that have broken filesystem loader and assume single hunk and no relocation entries.
PFS3AIO 3.0 Test #4 (probably almost final)
- Added embedded struct Resident, enables c:version <device name>: to report name and version.
- Added access mode id and also full sense data if Direct SCSI mode to read/write error messages.
- Removed not very useful "Make sure disk is inserted" part in read/write error messages.
- Removed code duplication, combined separate disk.c read/write functions which were nearly identical.
Access mode IDs: 1 = standard, 2 = Direct SCSI, 3 = TD64, 4 = NSD
PFS3AIO 3.0 Test #3
- Direct SCSI writes failed with error requester if it needed max transfer splitting (test #2)
- Limit Direct SCSI mode max transfer to 65535 blocks (~32MB) which is READ(10) and WRITE(10) max.
PFS3AIO v3.0 Test #2
Don't use, see post #42.
- TD64/NSD capability test was not detected as failed if DoIO() succeeded but test read buffer was not modified.
- Added support for new OS 3.1.4 filesystem mount flags. (SCSIDIRECT, SUPERFLOPPY and DISABLENSD). (Don't ask me!)
- Include "PFS3AIO" in embedded version string.
- Added more information (accessed block, start and end of partition block) to out of bounds access error requesters.
PFS3AIO v3.0 Test #1 (Based on v19 PFS3)
- Finally 100% fixes wrong index block (and similar) errors, see below for details. Thanks to Michiel Pelt for helping to find this nasty bug.
- Fixed two (probably) harmless off-by-one bugs.
- Compiled with m68k optimized GCC 6 (https://github.com/bebbo/amigaos-cross-toolchain
), 17k smaller than previous pfs3aio.
- Some HD controllers modify MaxTransfer after filesystem has been initialized which was ignored by previous versions.
- Automatic 0x20000 max transfer limit is only enabled if scsi.device version is v36 or newer and older than v50.
- Automatically attempt to increase number of buffers if all buffers are in use and more buffers are required.
- Includes experimental >104G partition support. Shows warning if enabled during formatting.
Includes all previous pfs3aio features:
- Full KS 1.x compatibility.
- 68000+ compatible.
- TD64, NSD and Direct SCSI supported and autodetected.
Souces available from https://github.com/tonioni/pfs3aio
Source tree also includes experimental >4G file size (48 bit file length field) support but it is not enabled in this version. Contact me if you want to test it.
>104G partition support and >4G file size support requires reformat and on-disk structures are not anymore compatible with old PFS3 or PFSDoctor versions. (http://www.winuae.net/files/b/pfsdoc...perimental.zip
Note: command line only, no GUI like in official pfsdoctor)
Official version will be released in few weeks or so.
This version 100% fixes very old (has at least existed since commercial 18.x versions, possibly much longer) bug that causes wrong index block and similar errors when creating lots of new files/dirs quickly. PFSDoctor also reports errors, for example "x reserved blocks not used but allocated".
- >=5G partition size ("super index" partition mode)
- Lots of small files created quickly (for example unpacking archive with thousands of small files, for example EmeraldMines_v1.0_CD.lha)