cleanup
[linux-2.4.git] / fs / affs / Changes
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'.