Back to home page

OSCL-LXR

 
 

    


0001 (Note: I consider version numbers as cheap. That means
0002 that I do not like numbers like 0.1 and the like for
0003 things that can be used since quite some time. But
0004 then, 3.1 doesn't mean 'perfectly stable', too.)
0005 
0006 Known bugs:
0007 -----------
0008 
0009 - Doesn't work on the alpha. The only 64/32-bit
0010   problem that I'm aware of (pointer/int conversion
0011   in readdir()) gives compiler warnings but is
0012   apparently not causing the failure, as directory
0013   reads basically work (but all files are of size 0).
0014   Alas, I've got no alpha to debug. :-(
0015 
0016 - The partition checker (drivers/block/genhd.c)
0017   doesn't work with devices which have 256 byte
0018   blocks (some very old SCSI drives). 
0019 
0020 - The feature to automatically make the fs clean
0021   might leave a trashed file system with the
0022   bitmap flag set valid.
0023 
0024 - When a file is truncated to a size that is not
0025   a multiple of the blocksize, the rest of the
0026   last allocated block is not cleared. Well,
0027   this fs never claimed to be Posix conformant.
0028 
0029 Please direct bug reports to: zippel@linux-m68k.org
0030 
0031 Version 3.20
0032 ------------
0033 - kill kernel lock
0034 - fix for a possible bitmap corruption
0035 
0036 Version 3.19
0037 ------------
0038 
0039 - sizeof changes from Kernel Janitor Project
0040 - several bug fixes found with fsx
0041 
0042 Version 3.18
0043 ------------
0044 
0045 - change to global min macro + warning fixes
0046 - add module tags
0047 
0048 Version 3.17
0049 ------------
0050 
0051 - locking fixes
0052 - wrong sign in __affs_hash_dentry
0053 - remove unnecessary check in affs_new_inode
0054 - enable international mode for dircache fs
0055 
0056 Version 3.16
0057 ------------
0058 
0059 - use mark_buffer_dirty_inode instead of mark_buffer_dirty.
0060 - introduce affs_lock_{link|dir|ext}.
0061 
0062 Version 3.15
0063 ------------
0064 
0065 - disable link to directories until we can properly support them.
0066 - locking fixes for link creation/removal.
0067 
0068 Version 3.14
0069 ------------
0070 
0071 - correctly cut off long file names for compares
0072 - correctly initialize s_last_bmap
0073 
0074 Version 3.13
0075 ------------
0076 
0077 Major cleanup for 2.4 [Roman Zippel]
0078 - new extended block handling
0079 - new bitmap allocation functions
0080 - locking should be safe for the future
0081 - cleanup of some interfaces
0082 
0083 Version 3.12
0084 ------------
0085 
0086 more 2.4 fixes: [Roman Zippel]
0087 - s_lock changes
0088 - increased getblock mess
0089 - clear meta blocks 
0090 
0091 Version 3.11
0092 ------------
0093 
0094 - Converted to use 2.3.x page cache [Dave Jones]
0095 - Corruption in truncate() bugfix [Ken Tyler <kent@werple.net.au>]
0096 
0097 Version 3.10
0098 ------------
0099 
0100 - Changed partition checker to allow devices
0101   with physical blocks != 512 bytes.
0102 
0103 - The partition checker now also ignores the
0104   word at 0xd0 that Windows likes to write to.
0105 
0106 Version 3.9
0107 -----------
0108 
0109 - Moved cleanup from release_file() to put_inode().
0110   This makes the first one obsolete.
0111 
0112 - truncate() zeroes the unused remainder of a
0113   partially used last block when a file is truncated.
0114   It also marks the inode dirty now (which is not
0115   really necessary as notify_change() will do
0116   it anyway).
0117 
0118 - Added a few comments, fixed some typos (and
0119   introduced some new ones), made the debug messages
0120   more consistent. Changed a bad example in the
0121   doc file (affs.txt).
0122 
0123 - Sets the NOEXEC flag in read_super() for old file
0124   systems, since you can't run programs on them.
0125 
0126 Version 3.8
0127 -----------
0128 Bill Hawes kindly reviewed the affs and sent me the
0129 patches he did. They're marked (BH). Thanks, Bill!
0130 
0131 - Cleanup of error handling in read_super().
0132   Didn't release all resources in case of an
0133   error. (BH)
0134 
0135 - put_inode() releases the ext cache only if it's
0136   no longer needed. (BH)
0137 
0138 - One set of dentry callbacks is enough. (BH)
0139 
0140 - Cleanup of error handling in namei.c. (BH)
0141 
0142 - Cleanup of error handling in file.c. (BH)
0143 
0144 - The original blocksize of the device is
0145   restored when the fs is unmounted. (BH)
0146 
0147 - getblock() did not invalidate the key cache
0148   when it allocated a new block.
0149 
0150 - Removed some unnecessary locks as Bill
0151   suggested.
0152 
0153 - Simplified match_name(), changed all hashing
0154   and case insensitive name comparisons to use
0155   uppercase. This makes the tolower() routines
0156   obsolete.
0157 
0158 - Added mount option 'mufs' to force muFS
0159   uid/gid interpretation.
0160 
0161 - File mode changes were not updated on disk.
0162   This was fixed before, but somehow got lost.
0163 
0164 Version 3.7
0165 -----------
0166 
0167 - Added dentry callbacks to allow the dcache to
0168   operate case insensitive and length ignorant
0169   like the affs itself.
0170 
0171 - getblock() didn't update the lastblock field in the
0172   inode if the fs was not an OFS. This bug only shows
0173   up if a file was enlarged via truncate() and there
0174   was not enough space.
0175 
0176 - Remove some more superfluous code left over from
0177   the old link days ...
0178 
0179 - Fixed some oversights which were in patch 2.1.78.
0180 
0181 - Fixed a few typos.
0182 
0183 Version 3.6
0184 -----------
0185 
0186 - dentry changes. (Thanks to Jes Sorensen for his help.)
0187 
0188 - Fixed bug in balloc(): Superblock was not set dirty after
0189   the bitmap was changed, so the bitmap wasn't sync'd.
0190 
0191 - Fixed nasty bug in find_new_zone(): If the current
0192   zone number was zero, the loop didn't terminate,
0193   causing a solid lock-up.
0194 
0195 - Removed support for old-style directory reads.
0196 
0197 - Fixed bug in add_entry(): When doing a sorted insert,
0198   the pointer to the next entry in the hash chain wasn't
0199   correctly byte-swapped. Since most of the users of the
0200   affs use it on a 68k, they didn't notice. But why did
0201   I not find this during my tests?
0202 
0203 - Fixed some oversights (version wasn't updated on some
0204   directory changes).
0205 
0206 - Handling of hard links rewritten. To the VFS
0207   they appear now as normal Unix links. They are
0208   now resolved only once in lookup(). The backside
0209   is that unlink(), rename() and rmdir() have to
0210   be smart about them, but the result is worth the
0211   effort. This also led to some code cleanup.
0212 
0213 - Changed name type to unsigned char; the test for
0214   invalid filenames didn't work correctly.
0215   (Thanks to Michael Krause for pointing at this.)
0216 
0217 - Changed mapping of executable flag.
0218 
0219 - Changed all network byte-order macros to the
0220   recommended ones.
0221 
0222 - Added a remount function, so attempts to remount
0223   a dircache filesystem or one with errors read/write
0224   can be trapped. Previously, ro remounts didn't
0225   flush the super block, and rw remounts didn't
0226   create allocation zones ...
0227 
0228 - Call shrink_dcache_parent() in rmdir().
0229   (Thanks to Bill Hawes.)
0230 
0231 - Permission checks in unlink().
0232 
0233 - Allow mounting of volumes with superfluous
0234   bitmap pointers read only, also allows them
0235   to be remounted read/write.
0236 
0237 - Owner/Group defaults now to the fs user (i.e.
0238   the one that mounted it) instead of root. This
0239   obsoletes the mount options uid and gid.
0240 
0241 - Argument to volume option could overflow the
0242   name buffer. It is now silently truncated to
0243   30 characters. (Damn it! This kind of bug
0244   is too embarrassing.)
0245 
0246 - Split inode.c into 2 files, the superblock
0247   routines desperately wanted their own file.
0248 
0249 - truncate() didn't allocate an extension block
0250   cache. If a file was extended by means of
0251   truncate(), this led to an Oops.
0252 
0253 - fsuser is now checked last.
0254 
0255 - rename() will not ignore changes in filename
0256   casing any more (though mv(1) still won't allow
0257   you to do "mv oldname OldName").
0258 
0259 Version 3.5
0260 -----------
0261 
0262 - Extension block caches are now allocated on
0263   demand instead of when a file is opened, as
0264   files can be read and written without opening
0265   them (e. g. the loopback device does this).
0266 
0267 - Removed an unused function.
0268 
0269 Version 3.4
0270 -----------
0271 
0272 - Hash chains are now sorted by block numbers.
0273   (Thanks to Kars de Jong for finding this.)
0274 - Removed all unnecessary external symbols.
0275 
0276 Version 3.3
0277 -----------
0278 
0279 - Tried to make all types 'correct' and consistent.
0280 - Errors and warnings are now reported via a
0281   function. They are all prefixed by a severity
0282   and have the same appearance:
0283     "AFFS: <function>: <error message>"
0284   (There's one exception to this, as in that function
0285   is no pointer to the super block available.)
0286 - The filesystem is remounted read-only after an
0287   error.
0288 - The names of newly created filesystem objects are
0289   now checked for validity.
0290 - Minor cleanups in comments.
0291 - Added this Changes file. At last!
0292 
0293 Version 3.2
0294 -----------
0295 
0296 - Extension block cache: Reading/writing of huge files
0297   (several MB) is much faster (of course the added
0298   overhead slows down opening, but this is hardly
0299   noticeable).
0300 - The same get_block()-routine can now be used for
0301   both OFS and FFS.
0302 - The super block is now searched in the block that
0303   was calculated and in the one following. This
0304   should remedy the round-off error introduced by
0305   the 1-k blocks that Linux uses.
0306 - Minor changes to adhere to the new VFS interface.
0307 - The number of used blocks is now also calculated
0308   if the filesystem is mounted read-only.
0309 - Prefixed some constants with AFFS_ to avoid name
0310   clashes.
0311 - Removed 'EXPERIMENTAL' status.
0312 
0313 Version 3.1
0314 -----------
0315 
0316 - Fixed a nasty bug which didn't allow read-only
0317   mounts.
0318 - Allow dir-cache filesystems to be mounted
0319   read only.
0320 - OFS support.
0321 - Several other changes I just cannot remember
0322   any more.
0323 
0324 Version 3.0
0325 -----------
0326 
0327 - Almost complete rewrite for the new VFS
0328   interface in Linux 1.3.
0329 - Write support.
0330 - Support for hard and symbolic links.
0331 - Lots of things I remember even less ...
0332 
0333 Version 2.0
0334 -----------
0335 
0336 - Fixed a few things to get it compiled.
0337 - Automatic root block calculation.
0338 - Partition checker for genhd.c
0339 
0340 ========================================
0341 
0342 Let's just call Ray Burr's original affs
0343 'Version 1.0'.