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.)
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. :-(
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).
20 - The feature to automatically make the fs clean
21 might leave a trashed file system with the
22 bitmap flag set valid.
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.
29 Please direct bug reports to: zippel@linux-m68k.org
34 - sizeof changes from Kernel Janitor Project
35 - several bug fixes found with fsx
40 - change to global min macro + warning fixes
47 - wrong sign in __affs_hash_dentry
48 - remove unnecessary check in affs_new_inode
49 - enable international mode for dircache fs
54 - use mark_buffer_dirty_inode instead of mark_buffer_dirty.
55 - introduce affs_lock_{link|dir|ext}.
60 - disable link to directories until we can properly support them.
61 - locking fixes for link creation/removal.
66 - correctly cut off long file names for compares
67 - correctly initialize s_last_bmap
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
81 more 2.4 fixes: [Roman Zippel]
83 - increased getblock mess
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>]
95 - Changed partition checker to allow devices
96 with physical blocks != 512 bytes.
98 - The partition checker now also ignores the
99 word at 0xd0 that Windows likes to write to.
104 - Moved cleanup from release_file() to put_inode().
105 This makes the first one obsolete.
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
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
118 - Sets the NOEXEC flag in read_super() for old file
119 systems, since you can't run programs on them.
123 Bill Hawes kindly reviewed the affs and sent me the
124 patches he did. They're marked (BH). Thanks, Bill!
126 - Cleanup of error handling in read_super().
127 Didn't release all resources in case of an
130 - put_inode() releases the ext cache only if it's
131 no longer needed. (BH)
133 - One set of dentry callbacks is enough. (BH)
135 - Cleanup of error handling in namei.c. (BH)
137 - Cleanup of error handling in file.c. (BH)
139 - The original blocksize of the device is
140 restored when the fs is unmounted. (BH)
142 - getblock() did not invalidate the key cache
143 when it allocated a new block.
145 - Removed some unnecessary locks as Bill
148 - Simplified match_name(), changed all hashing
149 and case insensitive name comparisons to use
150 uppercase. This makes the tolower() routines
153 - Added mount option 'mufs' to force muFS
154 uid/gid interpretation.
156 - File mode changes were not updated on disk.
157 This was fixed before, but somehow got lost.
162 - Added dentry callbacks to allow the dcache to
163 operate case insensitive and length ignorant
164 like the affs itself.
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.
171 - Remove some more superfluous code left over from
172 the old link days ...
174 - Fixed some oversights which were in patch 2.1.78.
181 - dentry changes. (Thanks to Jes Sorensen for his help.)
183 - Fixed bug in balloc(): Superblock was not set dirty after
184 the bitmap was changed, so the bitmap wasn't sync'd.
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.
190 - Removed support for old-style directory reads.
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?
198 - Fixed some oversights (version wasn't updated on some
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.
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.)
212 - Changed mapping of executable flag.
214 - Changed all network byte-order macros to the
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 ...
223 - Call shrink_dcache_parent() in rmdir().
224 (Thanks to Bill Hawes.)
226 - Permission checks in unlink().
228 - Allow mounting of volumes with superfluous
229 bitmap pointers read only, also allows them
230 to be remounted read/write.
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.
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.)
241 - Split inode.c into 2 files, the superblock
242 routines desperately wanted their own file.
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.
248 - fsuser is now checked last.
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").
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).
262 - Removed an unused function.
267 - Hash chains are now sorted by block numbers.
268 (Thanks to Kars de Jong for finding this.)
269 - Removed all unnecessary external symbols.
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
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!
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
295 - The same get_block()-routine can now be used for
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
306 - Removed 'EXPERIMENTAL' status.
311 - Fixed a nasty bug which didn't allow read-only
313 - Allow dir-cache filesystems to be mounted
316 - Several other changes I just cannot remember
322 - Almost complete rewrite for the new VFS
323 interface in Linux 1.3.
325 - Support for hard and symbolic links.
326 - Lots of things I remember even less ...
331 - Fixed a few things to get it compiled.
332 - Automatic root block calculation.
333 - Partition checker for genhd.c
335 ========================================
337 Let's just call Ray Burr's original affs