123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- (Note: I consider version numbers as cheap. That means
- that I do not like numbers like 0.1 and the like for
- things that can be used since quite some time. But
- then, 3.1 doesn't mean 'perfectly stable', too.)
- Known bugs:
- -----------
- - Doesn't work on the alpha. The only 64/32-bit
- problem that I'm aware of (pointer/int conversion
- in readdir()) gives compiler warnings but is
- apparently not causing the failure, as directory
- reads basically work (but all files are of size 0).
- Alas, I've got no alpha to debug. :-(
- - The partition checker (drivers/block/genhd.c)
- doesn't work with devices which have 256 byte
- blocks (some very old SCSI drives).
- - The feature to automatically make the fs clean
- might leave a trashed file system with the
- bitmap flag set valid.
- - When a file is truncated to a size that is not
- a multiple of the blocksize, the rest of the
- last allocated block is not cleared. Well,
- this fs never claimed to be Posix conformant.
- Please direct bug reports to: zippel@linux-m68k.org
- Version 3.20
- ------------
- - kill kernel lock
- - fix for a possible bitmap corruption
- Version 3.19
- ------------
- - sizeof changes from Kernel Janitor Project
- - several bug fixes found with fsx
- Version 3.18
- ------------
- - change to global min macro + warning fixes
- - add module tags
- Version 3.17
- ------------
- - locking fixes
- - wrong sign in __affs_hash_dentry
- - remove unnecessary check in affs_new_inode
- - enable international mode for dircache fs
- Version 3.16
- ------------
- - use mark_buffer_dirty_inode instead of mark_buffer_dirty.
- - introduce affs_lock_{link|dir|ext}.
- Version 3.15
- ------------
- - disable link to directories until we can properly support them.
- - locking fixes for link creation/removal.
- Version 3.14
- ------------
- - correctly cut off long file names for compares
- - correctly initialize s_last_bmap
- Version 3.13
- ------------
- Major cleanup for 2.4 [Roman Zippel]
- - new extended block handling
- - new bitmap allocation functions
- - locking should be safe for the future
- - cleanup of some interfaces
- Version 3.12
- ------------
- more 2.4 fixes: [Roman Zippel]
- - s_lock changes
- - increased getblock mess
- - clear meta blocks
- Version 3.11
- ------------
- - Converted to use 2.3.x page cache [Dave Jones <dave@powertweak.com>]
- - Corruption in truncate() bugfix [Ken Tyler <kent@werple.net.au>]
- Version 3.10
- ------------
- - Changed partition checker to allow devices
- with physical blocks != 512 bytes.
- - The partition checker now also ignores the
- word at 0xd0 that Windows likes to write to.
- Version 3.9
- -----------
- - Moved cleanup from release_file() to put_inode().
- This makes the first one obsolete.
- - truncate() zeroes the unused remainder of a
- partially used last block when a file is truncated.
- It also marks the inode dirty now (which is not
- really necessary as notify_change() will do
- it anyway).
- - Added a few comments, fixed some typos (and
- introduced some new ones), made the debug messages
- more consistent. Changed a bad example in the
- doc file (affs.txt).
- - Sets the NOEXEC flag in read_super() for old file
- systems, since you can't run programs on them.
- Version 3.8
- -----------
- Bill Hawes kindly reviewed the affs and sent me the
- patches he did. They're marked (BH). Thanks, Bill!
- - Cleanup of error handling in read_super().
- Didn't release all resources in case of an
- error. (BH)
- - put_inode() releases the ext cache only if it's
- no longer needed. (BH)
- - One set of dentry callbacks is enough. (BH)
- - Cleanup of error handling in namei.c. (BH)
- - Cleanup of error handling in file.c. (BH)
- - The original blocksize of the device is
- restored when the fs is unmounted. (BH)
- - getblock() did not invalidate the key cache
- when it allocated a new block.
- - Removed some unnecessary locks as Bill
- suggested.
- - Simplified match_name(), changed all hashing
- and case insensitive name comparisons to use
- uppercase. This makes the tolower() routines
- obsolete.
- - Added mount option 'mufs' to force muFS
- uid/gid interpretation.
- - File mode changes were not updated on disk.
- This was fixed before, but somehow got lost.
- Version 3.7
- -----------
- - Added dentry callbacks to allow the dcache to
- operate case insensitive and length ignorant
- like the affs itself.
- - getblock() didn't update the lastblock field in the
- inode if the fs was not an OFS. This bug only shows
- up if a file was enlarged via truncate() and there
- was not enough space.
- - Remove some more superfluous code left over from
- the old link days ...
- - Fixed some oversights which were in patch 2.1.78.
- - Fixed a few typos.
- Version 3.6
- -----------
- - dentry changes. (Thanks to Jes Sorensen for his help.)
- - Fixed bug in balloc(): Superblock was not set dirty after
- the bitmap was changed, so the bitmap wasn't sync'd.
- - Fixed nasty bug in find_new_zone(): If the current
- zone number was zero, the loop didn't terminate,
- causing a solid lock-up.
- - Removed support for old-style directory reads.
- - Fixed bug in add_entry(): When doing a sorted insert,
- the pointer to the next entry in the hash chain wasn't
- correctly byte-swapped. Since most of the users of the
- affs use it on a 68k, they didn't notice. But why did
- I not find this during my tests?
- - Fixed some oversights (version wasn't updated on some
- directory changes).
- - Handling of hard links rewritten. To the VFS
- they appear now as normal Unix links. They are
- now resolved only once in lookup(). The backside
- is that unlink(), rename() and rmdir() have to
- be smart about them, but the result is worth the
- effort. This also led to some code cleanup.
- - Changed name type to unsigned char; the test for
- invalid filenames didn't work correctly.
- (Thanks to Michael Krause for pointing at this.)
- - Changed mapping of executable flag.
- - Changed all network byte-order macros to the
- recommended ones.
- - Added a remount function, so attempts to remount
- a dircache filesystem or one with errors read/write
- can be trapped. Previously, ro remounts didn't
- flush the super block, and rw remounts didn't
- create allocation zones ...
- - Call shrink_dcache_parent() in rmdir().
- (Thanks to Bill Hawes.)
- - Permission checks in unlink().
- - Allow mounting of volumes with superfluous
- bitmap pointers read only, also allows them
- to be remounted read/write.
- - Owner/Group defaults now to the fs user (i.e.
- the one that mounted it) instead of root. This
- obsoletes the mount options uid and gid.
- - Argument to volume option could overflow the
- name buffer. It is now silently truncated to
- 30 characters. (Damn it! This kind of bug
- is too embarrassing.)
- - Split inode.c into 2 files, the superblock
- routines desperately wanted their own file.
- - truncate() didn't allocate an extension block
- cache. If a file was extended by means of
- truncate(), this led to an Oops.
- - fsuser is now checked last.
- - rename() will not ignore changes in filename
- casing any more (though mv(1) still won't allow
- you to do "mv oldname OldName").
- Version 3.5
- -----------
- - Extension block caches are now allocated on
- demand instead of when a file is opened, as
- files can be read and written without opening
- them (e. g. the loopback device does this).
- - Removed an unused function.
- Version 3.4
- -----------
- - Hash chains are now sorted by block numbers.
- (Thanks to Kars de Jong for finding this.)
- - Removed all unnecessary external symbols.
- Version 3.3
- -----------
- - Tried to make all types 'correct' and consistent.
- - Errors and warnings are now reported via a
- function. They are all prefixed by a severity
- and have the same appearance:
- "AFFS: <function>: <error message>"
- (There's one exception to this, as in that function
- is no pointer to the super block available.)
- - The filesystem is remounted read-only after an
- error.
- - The names of newly created filesystem objects are
- now checked for validity.
- - Minor cleanups in comments.
- - Added this Changes file. At last!
- Version 3.2
- -----------
- - Extension block cache: Reading/writing of huge files
- (several MB) is much faster (of course the added
- overhead slows down opening, but this is hardly
- noticeable).
- - The same get_block()-routine can now be used for
- both OFS and FFS.
- - The super block is now searched in the block that
- was calculated and in the one following. This
- should remedy the round-off error introduced by
- the 1-k blocks that Linux uses.
- - Minor changes to adhere to the new VFS interface.
- - The number of used blocks is now also calculated
- if the filesystem is mounted read-only.
- - Prefixed some constants with AFFS_ to avoid name
- clashes.
- - Removed 'EXPERIMENTAL' status.
- Version 3.1
- -----------
- - Fixed a nasty bug which didn't allow read-only
- mounts.
- - Allow dir-cache filesystems to be mounted
- read only.
- - OFS support.
- - Several other changes I just cannot remember
- any more.
- Version 3.0
- -----------
- - Almost complete rewrite for the new VFS
- interface in Linux 1.3.
- - Write support.
- - Support for hard and symbolic links.
- - Lots of things I remember even less ...
- Version 2.0
- -----------
- - Fixed a few things to get it compiled.
- - Automatic root block calculation.
- - Partition checker for genhd.c
- ========================================
- Let's just call Ray Burr's original affs
- 'Version 1.0'.
|