The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/fs/affs/Changes

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 (Note: I consider version numbers as cheap. That means
    2 that I do not like numbers like 0.1 and the like for
    3 things that can be used since quite some time. But
    4 then, 3.1 doesn't mean 'perfectly stable', too.)
    5 
    6 Known bugs:
    7 -----------
    8 
    9 - Doesn't work on the alpha. The only 64/32-bit
   10   problem that I'm aware of (pointer/int conversion
   11   in readdir()) gives compiler warnings but is
   12   apparently not causing the failure, as directory
   13   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 byte
   18   blocks (some very old SCSI drives). 
   19 
   20 - The feature to automatically make the fs clean
   21   might leave a trashed file system with the
   22   bitmap flag set valid.
   23 
   24 - When a file is truncated to a size that is not
   25   a multiple of the blocksize, the rest of the
   26   last allocated block is not cleared. Well,
   27   this fs never claimed to be Posix conformant.
   28 
   29 Please direct bug reports to: zippel@linux-m68k.org
   30 
   31 Version 3.19
   32 ------------
   33 
   34 - sizeof changes from Kernel Janitor Project
   35 - several bug fixes found with fsx
   36 
   37 Version 3.18
   38 ------------
   39 
   40 - change to global min macro + warning fixes
   41 - add module tags
   42 
   43 Version 3.17
   44 ------------
   45 
   46 - locking fixes
   47 - wrong sign in __affs_hash_dentry
   48 - remove unnecessary check in affs_new_inode
   49 - enable international mode for dircache fs
   50 
   51 Version 3.16
   52 ------------
   53 
   54 - use mark_buffer_dirty_inode instead of mark_buffer_dirty.
   55 - introduce affs_lock_{link|dir|ext}.
   56 
   57 Version 3.15
   58 ------------
   59 
   60 - disable link to directories until we can properly support them.
   61 - locking fixes for link creation/removal.
   62 
   63 Version 3.14
   64 ------------
   65 
   66 - correctly cut off long file names for compares
   67 - correctly initialize s_last_bmap
   68 
   69 Version 3.13
   70 ------------
   71 
   72 Major cleanup for 2.4 [Roman Zippel]
   73 - new extended block handling
   74 - new bitmap allocation functions
   75 - locking should be safe for the future
   76 - cleanup of some interfaces
   77 
   78 Version 3.12
   79 ------------
   80 
   81 more 2.4 fixes: [Roman Zippel]
   82 - s_lock changes
   83 - increased getblock mess
   84 - clear meta blocks 
   85 
   86 Version 3.11
   87 ------------
   88 
   89 - Converted to use 2.3.x page cache [Dave Jones <dave@powertweak.com>]
   90 - Corruption in truncate() bugfix [Ken Tyler <kent@werple.net.au>]
   91 
   92 Version 3.10
   93 ------------
   94 
   95 - Changed partition checker to allow devices
   96   with physical blocks != 512 bytes.
   97 
   98 - The partition checker now also ignores the
   99   word at 0xd0 that Windows likes to write to.
  100 
  101 Version 3.9
  102 -----------
  103 
  104 - Moved cleanup from release_file() to put_inode().
  105   This makes the first one obsolete.
  106 
  107 - truncate() zeroes the unused remainder of a
  108   partially used last block when a file is truncated.
  109   It also marks the inode dirty now (which is not
  110   really necessary as notify_change() will do
  111   it anyway).
  112 
  113 - Added a few comments, fixed some typos (and
  114   introduced some new ones), made the debug messages
  115   more consistent. Changed a bad example in the
  116   doc file (affs.txt).
  117 
  118 - Sets the NOEXEC flag in read_super() for old file
  119   systems, since you can't run programs on them.
  120 
  121 Version 3.8
  122 -----------
  123 Bill Hawes kindly reviewed the affs and sent me the
  124 patches he did. They're marked (BH). Thanks, Bill!
  125 
  126 - Cleanup of error handling in read_super().
  127   Didn't release all resources in case of an
  128   error. (BH)
  129 
  130 - put_inode() releases the ext cache only if it's
  131   no longer needed. (BH)
  132 
  133 - One set of dentry callbacks is enough. (BH)
  134 
  135 - Cleanup of error handling in namei.c. (BH)
  136 
  137 - Cleanup of error handling in file.c. (BH)
  138 
  139 - The original blocksize of the device is
  140   restored when the fs is unmounted. (BH)
  141 
  142 - getblock() did not invalidate the key cache
  143   when it allocated a new block.
  144 
  145 - Removed some unnecessary locks as Bill
  146   suggested.
  147 
  148 - Simplified match_name(), changed all hashing
  149   and case insensitive name comparisons to use
  150   uppercase. This makes the tolower() routines
  151   obsolete.
  152 
  153 - Added mount option 'mufs' to force muFS
  154   uid/gid interpretation.
  155 
  156 - File mode changes were not updated on disk.
  157   This was fixed before, but somehow got lost.
  158 
  159 Version 3.7
  160 -----------
  161 
  162 - Added dentry callbacks to allow the dcache to
  163   operate case insensitive and length ignorant
  164   like the affs itself.
  165 
  166 - getblock() didn't update the lastblock field in the
  167   inode if the fs was not an OFS. This bug only shows
  168   up if a file was enlarged via truncate() and there
  169   was not enough space.
  170 
  171 - Remove some more superfluous code left over from
  172   the old link days ...
  173 
  174 - Fixed some oversights which were in patch 2.1.78.
  175 
  176 - Fixed a few typos.
  177 
  178 Version 3.6
  179 -----------
  180 
  181 - dentry changes. (Thanks to Jes Sorensen for his help.)
  182 
  183 - Fixed bug in balloc(): Superblock was not set dirty after
  184   the bitmap was changed, so the bitmap wasn't sync'd.
  185 
  186 - Fixed nasty bug in find_new_zone(): If the current
  187   zone number was zero, the loop didn't terminate,
  188   causing a solid lock-up.
  189 
  190 - Removed support for old-style directory reads.
  191 
  192 - Fixed bug in add_entry(): When doing a sorted insert,
  193   the pointer to the next entry in the hash chain wasn't
  194   correctly byte-swapped. Since most of the users of the
  195   affs use it on a 68k, they didn't notice. But why did
  196   I not find this during my tests?
  197 
  198 - Fixed some oversights (version wasn't updated on some
  199   directory changes).
  200 
  201 - Handling of hard links rewritten. To the VFS
  202   they appear now as normal Unix links. They are
  203   now resolved only once in lookup(). The backside
  204   is that unlink(), rename() and rmdir() have to
  205   be smart about them, but the result is worth the
  206   effort. This also led to some code cleanup.
  207 
  208 - Changed name type to unsigned char; the test for
  209   invalid filenames didn't work correctly.
  210   (Thanks to Michael Krause for pointing at this.)
  211 
  212 - Changed mapping of executable flag.
  213 
  214 - Changed all network byte-order macros to the
  215   recommended ones.
  216 
  217 - Added a remount function, so attempts to remount
  218   a dircache filesystem or one with errors read/write
  219   can be trapped. Previously, ro remounts didn't
  220   flush the super block, and rw remounts didn't
  221   create allocation zones ...
  222 
  223 - Call shrink_dcache_parent() in rmdir().
  224   (Thanks to Bill Hawes.)
  225 
  226 - Permission checks in unlink().
  227 
  228 - Allow mounting of volumes with superfluous
  229   bitmap pointers read only, also allows them
  230   to be remounted read/write.
  231 
  232 - Owner/Group defaults now to the fs user (i.e.
  233   the one that mounted it) instead of root. This
  234   obsoletes the mount options uid and gid.
  235 
  236 - Argument to volume option could overflow the
  237   name buffer. It is now silently truncated to
  238   30 characters. (Damn it! This kind of bug
  239   is too embarrassing.)
  240 
  241 - Split inode.c into 2 files, the superblock
  242   routines desperately wanted their own file.
  243 
  244 - truncate() didn't allocate an extension block
  245   cache. If a file was extended by means of
  246   truncate(), this led to an Oops.
  247 
  248 - fsuser is now checked last.
  249 
  250 - rename() will not ignore changes in filename
  251   casing any more (though mv(1) still won't allow
  252   you to do "mv oldname OldName").
  253 
  254 Version 3.5
  255 -----------
  256 
  257 - Extension block caches are now allocated on
  258   demand instead of when a file is opened, as
  259   files can be read and written without opening
  260   them (e. g. the loopback device does this).
  261 
  262 - Removed an unused function.
  263 
  264 Version 3.4
  265 -----------
  266 
  267 - Hash chains are now sorted by block numbers.
  268   (Thanks to Kars de Jong for finding this.)
  269 - Removed all unnecessary external symbols.
  270 
  271 Version 3.3
  272 -----------
  273 
  274 - Tried to make all types 'correct' and consistent.
  275 - Errors and warnings are now reported via a
  276   function. They are all prefixed by a severity
  277   and have the same appearance:
  278     "AFFS: <function>: <error message>"
  279   (There's one exception to this, as in that function
  280   is no pointer to the super block available.)
  281 - The filesystem is remounted read-only after an
  282   error.
  283 - The names of newly created filesystem objects are
  284   now checked for validity.
  285 - Minor cleanups in comments.
  286 - Added this Changes file. At last!
  287 
  288 Version 3.2
  289 -----------
  290 
  291 - Extension block cache: Reading/writing of huge files
  292   (several MB) is much faster (of course the added
  293   overhead slows down opening, but this is hardly
  294   noticeable).
  295 - The same get_block()-routine can now be used for
  296   both OFS and FFS.
  297 - The super block is now searched in the block that
  298   was calculated and in the one following. This
  299   should remedy the round-off error introduced by
  300   the 1-k blocks that Linux uses.
  301 - Minor changes to adhere to the new VFS interface.
  302 - The number of used blocks is now also calculated
  303   if the filesystem is mounted read-only.
  304 - Prefixed some constants with AFFS_ to avoid name
  305   clashes.
  306 - Removed 'EXPERIMENTAL' status.
  307 
  308 Version 3.1
  309 -----------
  310 
  311 - Fixed a nasty bug which didn't allow read-only
  312   mounts.
  313 - Allow dir-cache filesystems to be mounted
  314   read only.
  315 - OFS support.
  316 - Several other changes I just cannot remember
  317   any more.
  318 
  319 Version 3.0
  320 -----------
  321 
  322 - Almost complete rewrite for the new VFS
  323   interface in Linux 1.3.
  324 - Write support.
  325 - Support for hard and symbolic links.
  326 - Lots of things I remember even less ...
  327 
  328 Version 2.0
  329 -----------
  330 
  331 - Fixed a few things to get it compiled.
  332 - Automatic root block calculation.
  333 - Partition checker for genhd.c
  334 
  335 ========================================
  336 
  337 Let's just call Ray Burr's original affs
  338 'Version 1.0'.

Cache object: 98c6825c81b579412ec2de65dbfad60f


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.