brintos

brintos / linux-shallow public Read only

0
0
Text · 9.1 KiB · b41c2c9 Raw
344 lines · plain
1(Note: I consider version numbers as cheap. That means2that I do not like numbers like 0.1 and the like for3things that can be used since quite some time. But4then, 3.1 doesn't mean 'perfectly stable', too.)5 6Known bugs:7-----------8 9- Doesn't work on the alpha. The only 64/32-bit10  problem that I'm aware of (pointer/int conversion11  in readdir()) gives compiler warnings but is12  apparently not causing the failure, as directory13  reads basically work (but all files are of size 0).14  Alas, I've got no alpha to debug. :-(15 16- The partition checker (drivers/block/genhd.c)17  doesn't work with devices which have 256 byte18  blocks (some very old SCSI drives). 19 20- The feature to automatically make the fs clean21  might leave a trashed file system with the22  bitmap flag set valid.23 24- When a file is truncated to a size that is not25  a multiple of the blocksize, the rest of the26  last allocated block is not cleared. Well,27  this fs never claimed to be Posix conformant.28 29Please direct bug reports to: zippel@linux-m68k.org30 31Version 3.2032------------33- kill kernel lock34- fix for a possible bitmap corruption35 36Version 3.1937------------38 39- sizeof changes from Kernel Janitor Project40- several bug fixes found with fsx41 42Version 3.1843------------44 45- change to global min macro + warning fixes46- add module tags47 48Version 3.1749------------50 51- locking fixes52- wrong sign in __affs_hash_dentry53- remove unnecessary check in affs_new_inode54- enable international mode for dircache fs55 56Version 3.1657------------58 59- use mark_buffer_dirty_inode instead of mark_buffer_dirty.60- introduce affs_lock_{link|dir|ext}.61 62Version 3.1563------------64 65- disable link to directories until we can properly support them.66- locking fixes for link creation/removal.67 68Version 3.1469------------70 71- correctly cut off long file names for compares72- correctly initialize s_last_bmap73 74Version 3.1375------------76 77Major cleanup for 2.4 [Roman Zippel]78- new extended block handling79- new bitmap allocation functions80- locking should be safe for the future81- cleanup of some interfaces82 83Version 3.1284------------85 86more 2.4 fixes: [Roman Zippel]87- s_lock changes88- increased getblock mess89- clear meta blocks 90 91Version 3.1192------------93 94- Converted to use 2.3.x page cache [Dave Jones]95- Corruption in truncate() bugfix [Ken Tyler <kent@werple.net.au>]96 97Version 3.1098------------99 100- Changed partition checker to allow devices101  with physical blocks != 512 bytes.102 103- The partition checker now also ignores the104  word at 0xd0 that Windows likes to write to.105 106Version 3.9107-----------108 109- Moved cleanup from release_file() to put_inode().110  This makes the first one obsolete.111 112- truncate() zeroes the unused remainder of a113  partially used last block when a file is truncated.114  It also marks the inode dirty now (which is not115  really necessary as notify_change() will do116  it anyway).117 118- Added a few comments, fixed some typos (and119  introduced some new ones), made the debug messages120  more consistent. Changed a bad example in the121  doc file (affs.txt).122 123- Sets the NOEXEC flag in read_super() for old file124  systems, since you can't run programs on them.125 126Version 3.8127-----------128Bill Hawes kindly reviewed the affs and sent me the129patches he did. They're marked (BH). Thanks, Bill!130 131- Cleanup of error handling in read_super().132  Didn't release all resources in case of an133  error. (BH)134 135- put_inode() releases the ext cache only if it's136  no longer needed. (BH)137 138- One set of dentry callbacks is enough. (BH)139 140- Cleanup of error handling in namei.c. (BH)141 142- Cleanup of error handling in file.c. (BH)143 144- The original blocksize of the device is145  restored when the fs is unmounted. (BH)146 147- getblock() did not invalidate the key cache148  when it allocated a new block.149 150- Removed some unnecessary locks as Bill151  suggested.152 153- Simplified match_name(), changed all hashing154  and case insensitive name comparisons to use155  uppercase. This makes the tolower() routines156  obsolete.157 158- Added mount option 'mufs' to force muFS159  uid/gid interpretation.160 161- File mode changes were not updated on disk.162  This was fixed before, but somehow got lost.163 164Version 3.7165-----------166 167- Added dentry callbacks to allow the dcache to168  operate case insensitive and length ignorant169  like the affs itself.170 171- getblock() didn't update the lastblock field in the172  inode if the fs was not an OFS. This bug only shows173  up if a file was enlarged via truncate() and there174  was not enough space.175 176- Remove some more superfluous code left over from177  the old link days ...178 179- Fixed some oversights which were in patch 2.1.78.180 181- Fixed a few typos.182 183Version 3.6184-----------185 186- dentry changes. (Thanks to Jes Sorensen for his help.)187 188- Fixed bug in balloc(): Superblock was not set dirty after189  the bitmap was changed, so the bitmap wasn't sync'd.190 191- Fixed nasty bug in find_new_zone(): If the current192  zone number was zero, the loop didn't terminate,193  causing a solid lock-up.194 195- Removed support for old-style directory reads.196 197- Fixed bug in add_entry(): When doing a sorted insert,198  the pointer to the next entry in the hash chain wasn't199  correctly byte-swapped. Since most of the users of the200  affs use it on a 68k, they didn't notice. But why did201  I not find this during my tests?202 203- Fixed some oversights (version wasn't updated on some204  directory changes).205 206- Handling of hard links rewritten. To the VFS207  they appear now as normal Unix links. They are208  now resolved only once in lookup(). The backside209  is that unlink(), rename() and rmdir() have to210  be smart about them, but the result is worth the211  effort. This also led to some code cleanup.212 213- Changed name type to unsigned char; the test for214  invalid filenames didn't work correctly.215  (Thanks to Michael Krause for pointing at this.)216 217- Changed mapping of executable flag.218 219- Changed all network byte-order macros to the220  recommended ones.221 222- Added a remount function, so attempts to remount223  a dircache filesystem or one with errors read/write224  can be trapped. Previously, ro remounts didn't225  flush the super block, and rw remounts didn't226  create allocation zones ...227 228- Call shrink_dcache_parent() in rmdir().229  (Thanks to Bill Hawes.)230 231- Permission checks in unlink().232 233- Allow mounting of volumes with superfluous234  bitmap pointers read only, also allows them235  to be remounted read/write.236 237- Owner/Group defaults now to the fs user (i.e.238  the one that mounted it) instead of root. This239  obsoletes the mount options uid and gid.240 241- Argument to volume option could overflow the242  name buffer. It is now silently truncated to243  30 characters. (Damn it! This kind of bug244  is too embarrassing.)245 246- Split inode.c into 2 files, the superblock247  routines desperately wanted their own file.248 249- truncate() didn't allocate an extension block250  cache. If a file was extended by means of251  truncate(), this led to an Oops.252 253- fsuser is now checked last.254 255- rename() will not ignore changes in filename256  casing any more (though mv(1) still won't allow257  you to do "mv oldname OldName").258 259Version 3.5260-----------261 262- Extension block caches are now allocated on263  demand instead of when a file is opened, as264  files can be read and written without opening265  them (e. g. the loopback device does this).266 267- Removed an unused function.268 269Version 3.4270-----------271 272- Hash chains are now sorted by block numbers.273  (Thanks to Kars de Jong for finding this.)274- Removed all unnecessary external symbols.275 276Version 3.3277-----------278 279- Tried to make all types 'correct' and consistent.280- Errors and warnings are now reported via a281  function. They are all prefixed by a severity282  and have the same appearance:283    "AFFS: <function>: <error message>"284  (There's one exception to this, as in that function285  is no pointer to the super block available.)286- The filesystem is remounted read-only after an287  error.288- The names of newly created filesystem objects are289  now checked for validity.290- Minor cleanups in comments.291- Added this Changes file. At last!292 293Version 3.2294-----------295 296- Extension block cache: Reading/writing of huge files297  (several MB) is much faster (of course the added298  overhead slows down opening, but this is hardly299  noticeable).300- The same get_block()-routine can now be used for301  both OFS and FFS.302- The super block is now searched in the block that303  was calculated and in the one following. This304  should remedy the round-off error introduced by305  the 1-k blocks that Linux uses.306- Minor changes to adhere to the new VFS interface.307- The number of used blocks is now also calculated308  if the filesystem is mounted read-only.309- Prefixed some constants with AFFS_ to avoid name310  clashes.311- Removed 'EXPERIMENTAL' status.312 313Version 3.1314-----------315 316- Fixed a nasty bug which didn't allow read-only317  mounts.318- Allow dir-cache filesystems to be mounted319  read only.320- OFS support.321- Several other changes I just cannot remember322  any more.323 324Version 3.0325-----------326 327- Almost complete rewrite for the new VFS328  interface in Linux 1.3.329- Write support.330- Support for hard and symbolic links.331- Lots of things I remember even less ...332 333Version 2.0334-----------335 336- Fixed a few things to get it compiled.337- Automatic root block calculation.338- Partition checker for genhd.c339 340========================================341 342Let's just call Ray Burr's original affs343'Version 1.0'.344