xref: /linux/fs/affs/Changes (revision e5451c8f8330e03ad3cfa16048b4daf961af434f)
11da177e4SLinus Torvalds(Note: I consider version numbers as cheap. That means
21da177e4SLinus Torvaldsthat I do not like numbers like 0.1 and the like for
31da177e4SLinus Torvaldsthings that can be used since quite some time. But
41da177e4SLinus Torvaldsthen, 3.1 doesn't mean 'perfectly stable', too.)
51da177e4SLinus Torvalds
61da177e4SLinus TorvaldsKnown bugs:
71da177e4SLinus Torvalds-----------
81da177e4SLinus Torvalds
91da177e4SLinus Torvalds- Doesn't work on the alpha. The only 64/32-bit
101da177e4SLinus Torvalds  problem that I'm aware of (pointer/int conversion
111da177e4SLinus Torvalds  in readdir()) gives compiler warnings but is
121da177e4SLinus Torvalds  apparently not causing the failure, as directory
131da177e4SLinus Torvalds  reads basically work (but all files are of size 0).
141da177e4SLinus Torvalds  Alas, I've got no alpha to debug. :-(
151da177e4SLinus Torvalds
161da177e4SLinus Torvalds- The partition checker (drivers/block/genhd.c)
171da177e4SLinus Torvalds  doesn't work with devices which have 256 byte
181da177e4SLinus Torvalds  blocks (some very old SCSI drives).
191da177e4SLinus Torvalds
201da177e4SLinus Torvalds- The feature to automatically make the fs clean
211da177e4SLinus Torvalds  might leave a trashed file system with the
221da177e4SLinus Torvalds  bitmap flag set valid.
231da177e4SLinus Torvalds
241da177e4SLinus Torvalds- When a file is truncated to a size that is not
251da177e4SLinus Torvalds  a multiple of the blocksize, the rest of the
261da177e4SLinus Torvalds  last allocated block is not cleared. Well,
271da177e4SLinus Torvalds  this fs never claimed to be Posix conformant.
281da177e4SLinus Torvalds
291da177e4SLinus TorvaldsPlease direct bug reports to: zippel@linux-m68k.org
301da177e4SLinus Torvalds
311da177e4SLinus TorvaldsVersion 3.20
321da177e4SLinus Torvalds------------
331da177e4SLinus Torvalds- kill kernel lock
341da177e4SLinus Torvalds- fix for a possible bitmap corruption
351da177e4SLinus Torvalds
361da177e4SLinus TorvaldsVersion 3.19
371da177e4SLinus Torvalds------------
381da177e4SLinus Torvalds
391da177e4SLinus Torvalds- sizeof changes from Kernel Janitor Project
401da177e4SLinus Torvalds- several bug fixes found with fsx
411da177e4SLinus Torvalds
421da177e4SLinus TorvaldsVersion 3.18
431da177e4SLinus Torvalds------------
441da177e4SLinus Torvalds
451da177e4SLinus Torvalds- change to global min macro + warning fixes
461da177e4SLinus Torvalds- add module tags
471da177e4SLinus Torvalds
481da177e4SLinus TorvaldsVersion 3.17
491da177e4SLinus Torvalds------------
501da177e4SLinus Torvalds
511da177e4SLinus Torvalds- locking fixes
521da177e4SLinus Torvalds- wrong sign in __affs_hash_dentry
531da177e4SLinus Torvalds- remove unnecessary check in affs_new_inode
541da177e4SLinus Torvalds- enable international mode for dircache fs
551da177e4SLinus Torvalds
561da177e4SLinus TorvaldsVersion 3.16
571da177e4SLinus Torvalds------------
581da177e4SLinus Torvalds
591da177e4SLinus Torvalds- use mark_buffer_dirty_inode instead of mark_buffer_dirty.
601da177e4SLinus Torvalds- introduce affs_lock_{link|dir|ext}.
611da177e4SLinus Torvalds
621da177e4SLinus TorvaldsVersion 3.15
631da177e4SLinus Torvalds------------
641da177e4SLinus Torvalds
651da177e4SLinus Torvalds- disable link to directories until we can properly support them.
661da177e4SLinus Torvalds- locking fixes for link creation/removal.
671da177e4SLinus Torvalds
681da177e4SLinus TorvaldsVersion 3.14
691da177e4SLinus Torvalds------------
701da177e4SLinus Torvalds
711da177e4SLinus Torvalds- correctly cut off long file names for compares
721da177e4SLinus Torvalds- correctly initialize s_last_bmap
731da177e4SLinus Torvalds
741da177e4SLinus TorvaldsVersion 3.13
751da177e4SLinus Torvalds------------
761da177e4SLinus Torvalds
771da177e4SLinus TorvaldsMajor cleanup for 2.4 [Roman Zippel]
781da177e4SLinus Torvalds- new extended block handling
791da177e4SLinus Torvalds- new bitmap allocation functions
801da177e4SLinus Torvalds- locking should be safe for the future
811da177e4SLinus Torvalds- cleanup of some interfaces
821da177e4SLinus Torvalds
831da177e4SLinus TorvaldsVersion 3.12
841da177e4SLinus Torvalds------------
851da177e4SLinus Torvalds
861da177e4SLinus Torvaldsmore 2.4 fixes: [Roman Zippel]
871da177e4SLinus Torvalds- s_lock changes
881da177e4SLinus Torvalds- increased getblock mess
891da177e4SLinus Torvalds- clear meta blocks
901da177e4SLinus Torvalds
911da177e4SLinus TorvaldsVersion 3.11
921da177e4SLinus Torvalds------------
931da177e4SLinus Torvalds
94*dad33750SDave Jones- Converted to use 2.3.x page cache [Dave Jones]
951da177e4SLinus Torvalds- Corruption in truncate() bugfix [Ken Tyler <kent@werple.net.au>]
961da177e4SLinus Torvalds
971da177e4SLinus TorvaldsVersion 3.10
981da177e4SLinus Torvalds------------
991da177e4SLinus Torvalds
1001da177e4SLinus Torvalds- Changed partition checker to allow devices
1011da177e4SLinus Torvalds  with physical blocks != 512 bytes.
1021da177e4SLinus Torvalds
1031da177e4SLinus Torvalds- The partition checker now also ignores the
1041da177e4SLinus Torvalds  word at 0xd0 that Windows likes to write to.
1051da177e4SLinus Torvalds
1061da177e4SLinus TorvaldsVersion 3.9
1071da177e4SLinus Torvalds-----------
1081da177e4SLinus Torvalds
1091da177e4SLinus Torvalds- Moved cleanup from release_file() to put_inode().
1101da177e4SLinus Torvalds  This makes the first one obsolete.
1111da177e4SLinus Torvalds
1121da177e4SLinus Torvalds- truncate() zeroes the unused remainder of a
1131da177e4SLinus Torvalds  partially used last block when a file is truncated.
1141da177e4SLinus Torvalds  It also marks the inode dirty now (which is not
1151da177e4SLinus Torvalds  really necessary as notify_change() will do
1161da177e4SLinus Torvalds  it anyway).
1171da177e4SLinus Torvalds
1181da177e4SLinus Torvalds- Added a few comments, fixed some typos (and
1191da177e4SLinus Torvalds  introduced some new ones), made the debug messages
1201da177e4SLinus Torvalds  more consistent. Changed a bad example in the
1211da177e4SLinus Torvalds  doc file (affs.txt).
1221da177e4SLinus Torvalds
1231da177e4SLinus Torvalds- Sets the NOEXEC flag in read_super() for old file
1241da177e4SLinus Torvalds  systems, since you can't run programs on them.
1251da177e4SLinus Torvalds
1261da177e4SLinus TorvaldsVersion 3.8
1271da177e4SLinus Torvalds-----------
1281da177e4SLinus TorvaldsBill Hawes kindly reviewed the affs and sent me the
1291da177e4SLinus Torvaldspatches he did. They're marked (BH). Thanks, Bill!
1301da177e4SLinus Torvalds
1311da177e4SLinus Torvalds- Cleanup of error handling in read_super().
1321da177e4SLinus Torvalds  Didn't release all resources in case of an
1331da177e4SLinus Torvalds  error. (BH)
1341da177e4SLinus Torvalds
1351da177e4SLinus Torvalds- put_inode() releases the ext cache only if it's
1361da177e4SLinus Torvalds  no longer needed. (BH)
1371da177e4SLinus Torvalds
1381da177e4SLinus Torvalds- One set of dentry callbacks is enough. (BH)
1391da177e4SLinus Torvalds
1401da177e4SLinus Torvalds- Cleanup of error handling in namei.c. (BH)
1411da177e4SLinus Torvalds
1421da177e4SLinus Torvalds- Cleanup of error handling in file.c. (BH)
1431da177e4SLinus Torvalds
1441da177e4SLinus Torvalds- The original blocksize of the device is
1451da177e4SLinus Torvalds  restored when the fs is unmounted. (BH)
1461da177e4SLinus Torvalds
1471da177e4SLinus Torvalds- getblock() did not invalidate the key cache
1481da177e4SLinus Torvalds  when it allocated a new block.
1491da177e4SLinus Torvalds
1501da177e4SLinus Torvalds- Removed some unnecessary locks as Bill
1511da177e4SLinus Torvalds  suggested.
1521da177e4SLinus Torvalds
1531da177e4SLinus Torvalds- Simplified match_name(), changed all hashing
1541da177e4SLinus Torvalds  and case insensitive name comparisons to use
1551da177e4SLinus Torvalds  uppercase. This makes the tolower() routines
1561da177e4SLinus Torvalds  obsolete.
1571da177e4SLinus Torvalds
1581da177e4SLinus Torvalds- Added mount option 'mufs' to force muFS
1591da177e4SLinus Torvalds  uid/gid interpretation.
1601da177e4SLinus Torvalds
1611da177e4SLinus Torvalds- File mode changes were not updated on disk.
1621da177e4SLinus Torvalds  This was fixed before, but somehow got lost.
1631da177e4SLinus Torvalds
1641da177e4SLinus TorvaldsVersion 3.7
1651da177e4SLinus Torvalds-----------
1661da177e4SLinus Torvalds
1671da177e4SLinus Torvalds- Added dentry callbacks to allow the dcache to
1681da177e4SLinus Torvalds  operate case insensitive and length ignorant
1691da177e4SLinus Torvalds  like the affs itself.
1701da177e4SLinus Torvalds
1711da177e4SLinus Torvalds- getblock() didn't update the lastblock field in the
1721da177e4SLinus Torvalds  inode if the fs was not an OFS. This bug only shows
1731da177e4SLinus Torvalds  up if a file was enlarged via truncate() and there
1741da177e4SLinus Torvalds  was not enough space.
1751da177e4SLinus Torvalds
1761da177e4SLinus Torvalds- Remove some more superfluous code left over from
1771da177e4SLinus Torvalds  the old link days ...
1781da177e4SLinus Torvalds
1791da177e4SLinus Torvalds- Fixed some oversights which were in patch 2.1.78.
1801da177e4SLinus Torvalds
1811da177e4SLinus Torvalds- Fixed a few typos.
1821da177e4SLinus Torvalds
1831da177e4SLinus TorvaldsVersion 3.6
1841da177e4SLinus Torvalds-----------
1851da177e4SLinus Torvalds
1861da177e4SLinus Torvalds- dentry changes. (Thanks to Jes Sorensen for his help.)
1871da177e4SLinus Torvalds
1881da177e4SLinus Torvalds- Fixed bug in balloc(): Superblock was not set dirty after
1891da177e4SLinus Torvalds  the bitmap was changed, so the bitmap wasn't sync'd.
1901da177e4SLinus Torvalds
1911da177e4SLinus Torvalds- Fixed nasty bug in find_new_zone(): If the current
1921da177e4SLinus Torvalds  zone number was zero, the loop didn't terminate,
1931da177e4SLinus Torvalds  causing a solid lock-up.
1941da177e4SLinus Torvalds
1951da177e4SLinus Torvalds- Removed support for old-style directory reads.
1961da177e4SLinus Torvalds
1971da177e4SLinus Torvalds- Fixed bug in add_entry(): When doing a sorted insert,
1981da177e4SLinus Torvalds  the pointer to the next entry in the hash chain wasn't
1991da177e4SLinus Torvalds  correctly byte-swapped. Since most of the users of the
2001da177e4SLinus Torvalds  affs use it on a 68k, they didn't notice. But why did
2011da177e4SLinus Torvalds  I not find this during my tests?
2021da177e4SLinus Torvalds
2031da177e4SLinus Torvalds- Fixed some oversights (version wasn't updated on some
2041da177e4SLinus Torvalds  directory changes).
2051da177e4SLinus Torvalds
2061da177e4SLinus Torvalds- Handling of hard links rewritten. To the VFS
2071da177e4SLinus Torvalds  they appear now as normal Unix links. They are
2081da177e4SLinus Torvalds  now resolved only once in lookup(). The backside
2091da177e4SLinus Torvalds  is that unlink(), rename() and rmdir() have to
2101da177e4SLinus Torvalds  be smart about them, but the result is worth the
2111da177e4SLinus Torvalds  effort. This also led to some code cleanup.
2121da177e4SLinus Torvalds
2131da177e4SLinus Torvalds- Changed name type to unsigned char; the test for
2141da177e4SLinus Torvalds  invalid filenames didn't work correctly.
2151da177e4SLinus Torvalds  (Thanks to Michael Krause for pointing at this.)
2161da177e4SLinus Torvalds
2171da177e4SLinus Torvalds- Changed mapping of executable flag.
2181da177e4SLinus Torvalds
2191da177e4SLinus Torvalds- Changed all network byte-order macros to the
2201da177e4SLinus Torvalds  recommended ones.
2211da177e4SLinus Torvalds
2221da177e4SLinus Torvalds- Added a remount function, so attempts to remount
2231da177e4SLinus Torvalds  a dircache filesystem or one with errors read/write
2241da177e4SLinus Torvalds  can be trapped. Previously, ro remounts didn't
2251da177e4SLinus Torvalds  flush the super block, and rw remounts didn't
2261da177e4SLinus Torvalds  create allocation zones ...
2271da177e4SLinus Torvalds
2281da177e4SLinus Torvalds- Call shrink_dcache_parent() in rmdir().
2291da177e4SLinus Torvalds  (Thanks to Bill Hawes.)
2301da177e4SLinus Torvalds
2311da177e4SLinus Torvalds- Permission checks in unlink().
2321da177e4SLinus Torvalds
2331da177e4SLinus Torvalds- Allow mounting of volumes with superfluous
2341da177e4SLinus Torvalds  bitmap pointers read only, also allows them
2351da177e4SLinus Torvalds  to be remounted read/write.
2361da177e4SLinus Torvalds
2371da177e4SLinus Torvalds- Owner/Group defaults now to the fs user (i.e.
2381da177e4SLinus Torvalds  the one that mounted it) instead of root. This
2391da177e4SLinus Torvalds  obsoletes the mount options uid and gid.
2401da177e4SLinus Torvalds
2411da177e4SLinus Torvalds- Argument to volume option could overflow the
2421da177e4SLinus Torvalds  name buffer. It is now silently truncated to
2431da177e4SLinus Torvalds  30 characters. (Damn it! This kind of bug
2441da177e4SLinus Torvalds  is too embarrassing.)
2451da177e4SLinus Torvalds
2461da177e4SLinus Torvalds- Split inode.c into 2 files, the superblock
2471da177e4SLinus Torvalds  routines desperately wanted their own file.
2481da177e4SLinus Torvalds
2491da177e4SLinus Torvalds- truncate() didn't allocate an extension block
2501da177e4SLinus Torvalds  cache. If a file was extended by means of
2511da177e4SLinus Torvalds  truncate(), this led to an Oops.
2521da177e4SLinus Torvalds
2531da177e4SLinus Torvalds- fsuser is now checked last.
2541da177e4SLinus Torvalds
2551da177e4SLinus Torvalds- rename() will not ignore changes in filename
2561da177e4SLinus Torvalds  casing any more (though mv(1) still won't allow
2571da177e4SLinus Torvalds  you to do "mv oldname OldName").
2581da177e4SLinus Torvalds
2591da177e4SLinus TorvaldsVersion 3.5
2601da177e4SLinus Torvalds-----------
2611da177e4SLinus Torvalds
2621da177e4SLinus Torvalds- Extension block caches are now allocated on
2631da177e4SLinus Torvalds  demand instead of when a file is opened, as
2641da177e4SLinus Torvalds  files can be read and written without opening
2651da177e4SLinus Torvalds  them (e. g. the loopback device does this).
2661da177e4SLinus Torvalds
2671da177e4SLinus Torvalds- Removed an unused function.
2681da177e4SLinus Torvalds
2691da177e4SLinus TorvaldsVersion 3.4
2701da177e4SLinus Torvalds-----------
2711da177e4SLinus Torvalds
2721da177e4SLinus Torvalds- Hash chains are now sorted by block numbers.
2731da177e4SLinus Torvalds  (Thanks to Kars de Jong for finding this.)
2741da177e4SLinus Torvalds- Removed all unnecessary external symbols.
2751da177e4SLinus Torvalds
2761da177e4SLinus TorvaldsVersion 3.3
2771da177e4SLinus Torvalds-----------
2781da177e4SLinus Torvalds
2791da177e4SLinus Torvalds- Tried to make all types 'correct' and consistent.
2801da177e4SLinus Torvalds- Errors and warnings are now reported via a
2811da177e4SLinus Torvalds  function. They are all prefixed by a severity
2821da177e4SLinus Torvalds  and have the same appearance:
2831da177e4SLinus Torvalds    "AFFS: <function>: <error message>"
2841da177e4SLinus Torvalds  (There's one exception to this, as in that function
2851da177e4SLinus Torvalds  is no pointer to the super block available.)
2861da177e4SLinus Torvalds- The filesystem is remounted read-only after an
2871da177e4SLinus Torvalds  error.
2881da177e4SLinus Torvalds- The names of newly created filesystem objects are
2891da177e4SLinus Torvalds  now checked for validity.
2901da177e4SLinus Torvalds- Minor cleanups in comments.
2911da177e4SLinus Torvalds- Added this Changes file. At last!
2921da177e4SLinus Torvalds
2931da177e4SLinus TorvaldsVersion 3.2
2941da177e4SLinus Torvalds-----------
2951da177e4SLinus Torvalds
2961da177e4SLinus Torvalds- Extension block cache: Reading/writing of huge files
2971da177e4SLinus Torvalds  (several MB) is much faster (of course the added
2981da177e4SLinus Torvalds  overhead slows down opening, but this is hardly
2991da177e4SLinus Torvalds  noticeable).
3001da177e4SLinus Torvalds- The same get_block()-routine can now be used for
3011da177e4SLinus Torvalds  both OFS and FFS.
3021da177e4SLinus Torvalds- The super block is now searched in the block that
3031da177e4SLinus Torvalds  was calculated and in the one following. This
3041da177e4SLinus Torvalds  should remedy the round-off error introduced by
3051da177e4SLinus Torvalds  the 1-k blocks that Linux uses.
3061da177e4SLinus Torvalds- Minor changes to adhere to the new VFS interface.
3071da177e4SLinus Torvalds- The number of used blocks is now also calculated
3081da177e4SLinus Torvalds  if the filesystem is mounted read-only.
3091da177e4SLinus Torvalds- Prefixed some constants with AFFS_ to avoid name
3101da177e4SLinus Torvalds  clashes.
3111da177e4SLinus Torvalds- Removed 'EXPERIMENTAL' status.
3121da177e4SLinus Torvalds
3131da177e4SLinus TorvaldsVersion 3.1
3141da177e4SLinus Torvalds-----------
3151da177e4SLinus Torvalds
3161da177e4SLinus Torvalds- Fixed a nasty bug which didn't allow read-only
3171da177e4SLinus Torvalds  mounts.
3181da177e4SLinus Torvalds- Allow dir-cache filesystems to be mounted
3191da177e4SLinus Torvalds  read only.
3201da177e4SLinus Torvalds- OFS support.
3211da177e4SLinus Torvalds- Several other changes I just cannot remember
3221da177e4SLinus Torvalds  any more.
3231da177e4SLinus Torvalds
3241da177e4SLinus TorvaldsVersion 3.0
3251da177e4SLinus Torvalds-----------
3261da177e4SLinus Torvalds
3271da177e4SLinus Torvalds- Almost complete rewrite for the new VFS
3281da177e4SLinus Torvalds  interface in Linux 1.3.
3291da177e4SLinus Torvalds- Write support.
3301da177e4SLinus Torvalds- Support for hard and symbolic links.
3311da177e4SLinus Torvalds- Lots of things I remember even less ...
3321da177e4SLinus Torvalds
3331da177e4SLinus TorvaldsVersion 2.0
3341da177e4SLinus Torvalds-----------
3351da177e4SLinus Torvalds
3361da177e4SLinus Torvalds- Fixed a few things to get it compiled.
3371da177e4SLinus Torvalds- Automatic root block calculation.
3381da177e4SLinus Torvalds- Partition checker for genhd.c
3391da177e4SLinus Torvalds
3401da177e4SLinus Torvalds========================================
3411da177e4SLinus Torvalds
3421da177e4SLinus TorvaldsLet's just call Ray Burr's original affs
3431da177e4SLinus Torvalds'Version 1.0'.
344