Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame^] | 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.20 |
| 32 | ------------ |
| 33 | - kill kernel lock |
| 34 | - fix for a possible bitmap corruption |
| 35 | |
| 36 | Version 3.19 |
| 37 | ------------ |
| 38 | |
| 39 | - sizeof changes from Kernel Janitor Project |
| 40 | - several bug fixes found with fsx |
| 41 | |
| 42 | Version 3.18 |
| 43 | ------------ |
| 44 | |
| 45 | - change to global min macro + warning fixes |
| 46 | - add module tags |
| 47 | |
| 48 | Version 3.17 |
| 49 | ------------ |
| 50 | |
| 51 | - locking fixes |
| 52 | - wrong sign in __affs_hash_dentry |
| 53 | - remove unnecessary check in affs_new_inode |
| 54 | - enable international mode for dircache fs |
| 55 | |
| 56 | Version 3.16 |
| 57 | ------------ |
| 58 | |
| 59 | - use mark_buffer_dirty_inode instead of mark_buffer_dirty. |
| 60 | - introduce affs_lock_{link|dir|ext}. |
| 61 | |
| 62 | Version 3.15 |
| 63 | ------------ |
| 64 | |
| 65 | - disable link to directories until we can properly support them. |
| 66 | - locking fixes for link creation/removal. |
| 67 | |
| 68 | Version 3.14 |
| 69 | ------------ |
| 70 | |
| 71 | - correctly cut off long file names for compares |
| 72 | - correctly initialize s_last_bmap |
| 73 | |
| 74 | Version 3.13 |
| 75 | ------------ |
| 76 | |
| 77 | Major cleanup for 2.4 [Roman Zippel] |
| 78 | - new extended block handling |
| 79 | - new bitmap allocation functions |
| 80 | - locking should be safe for the future |
| 81 | - cleanup of some interfaces |
| 82 | |
| 83 | Version 3.12 |
| 84 | ------------ |
| 85 | |
| 86 | more 2.4 fixes: [Roman Zippel] |
| 87 | - s_lock changes |
| 88 | - increased getblock mess |
| 89 | - clear meta blocks |
| 90 | |
| 91 | Version 3.11 |
| 92 | ------------ |
| 93 | |
| 94 | - Converted to use 2.3.x page cache [Dave Jones <dave@powertweak.com>] |
| 95 | - Corruption in truncate() bugfix [Ken Tyler <kent@werple.net.au>] |
| 96 | |
| 97 | Version 3.10 |
| 98 | ------------ |
| 99 | |
| 100 | - Changed partition checker to allow devices |
| 101 | with physical blocks != 512 bytes. |
| 102 | |
| 103 | - The partition checker now also ignores the |
| 104 | word at 0xd0 that Windows likes to write to. |
| 105 | |
| 106 | Version 3.9 |
| 107 | ----------- |
| 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 a |
| 113 | partially used last block when a file is truncated. |
| 114 | It also marks the inode dirty now (which is not |
| 115 | really necessary as notify_change() will do |
| 116 | it anyway). |
| 117 | |
| 118 | - Added a few comments, fixed some typos (and |
| 119 | introduced some new ones), made the debug messages |
| 120 | more consistent. Changed a bad example in the |
| 121 | doc file (affs.txt). |
| 122 | |
| 123 | - Sets the NOEXEC flag in read_super() for old file |
| 124 | systems, since you can't run programs on them. |
| 125 | |
| 126 | Version 3.8 |
| 127 | ----------- |
| 128 | Bill Hawes kindly reviewed the affs and sent me the |
| 129 | patches 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 an |
| 133 | error. (BH) |
| 134 | |
| 135 | - put_inode() releases the ext cache only if it's |
| 136 | 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 is |
| 145 | restored when the fs is unmounted. (BH) |
| 146 | |
| 147 | - getblock() did not invalidate the key cache |
| 148 | when it allocated a new block. |
| 149 | |
| 150 | - Removed some unnecessary locks as Bill |
| 151 | suggested. |
| 152 | |
| 153 | - Simplified match_name(), changed all hashing |
| 154 | and case insensitive name comparisons to use |
| 155 | uppercase. This makes the tolower() routines |
| 156 | obsolete. |
| 157 | |
| 158 | - Added mount option 'mufs' to force muFS |
| 159 | uid/gid interpretation. |
| 160 | |
| 161 | - File mode changes were not updated on disk. |
| 162 | This was fixed before, but somehow got lost. |
| 163 | |
| 164 | Version 3.7 |
| 165 | ----------- |
| 166 | |
| 167 | - Added dentry callbacks to allow the dcache to |
| 168 | operate case insensitive and length ignorant |
| 169 | like the affs itself. |
| 170 | |
| 171 | - getblock() didn't update the lastblock field in the |
| 172 | inode if the fs was not an OFS. This bug only shows |
| 173 | up if a file was enlarged via truncate() and there |
| 174 | was not enough space. |
| 175 | |
| 176 | - Remove some more superfluous code left over from |
| 177 | the old link days ... |
| 178 | |
| 179 | - Fixed some oversights which were in patch 2.1.78. |
| 180 | |
| 181 | - Fixed a few typos. |
| 182 | |
| 183 | Version 3.6 |
| 184 | ----------- |
| 185 | |
| 186 | - dentry changes. (Thanks to Jes Sorensen for his help.) |
| 187 | |
| 188 | - Fixed bug in balloc(): Superblock was not set dirty after |
| 189 | the bitmap was changed, so the bitmap wasn't sync'd. |
| 190 | |
| 191 | - Fixed nasty bug in find_new_zone(): If the current |
| 192 | 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't |
| 199 | correctly byte-swapped. Since most of the users of the |
| 200 | affs use it on a 68k, they didn't notice. But why did |
| 201 | I not find this during my tests? |
| 202 | |
| 203 | - Fixed some oversights (version wasn't updated on some |
| 204 | directory changes). |
| 205 | |
| 206 | - Handling of hard links rewritten. To the VFS |
| 207 | they appear now as normal Unix links. They are |
| 208 | now resolved only once in lookup(). The backside |
| 209 | is that unlink(), rename() and rmdir() have to |
| 210 | be smart about them, but the result is worth the |
| 211 | effort. This also led to some code cleanup. |
| 212 | |
| 213 | - Changed name type to unsigned char; the test for |
| 214 | 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 the |
| 220 | recommended ones. |
| 221 | |
| 222 | - Added a remount function, so attempts to remount |
| 223 | a dircache filesystem or one with errors read/write |
| 224 | can be trapped. Previously, ro remounts didn't |
| 225 | flush the super block, and rw remounts didn't |
| 226 | 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 superfluous |
| 234 | bitmap pointers read only, also allows them |
| 235 | 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. This |
| 239 | obsoletes the mount options uid and gid. |
| 240 | |
| 241 | - Argument to volume option could overflow the |
| 242 | name buffer. It is now silently truncated to |
| 243 | 30 characters. (Damn it! This kind of bug |
| 244 | is too embarrassing.) |
| 245 | |
| 246 | - Split inode.c into 2 files, the superblock |
| 247 | routines desperately wanted their own file. |
| 248 | |
| 249 | - truncate() didn't allocate an extension block |
| 250 | cache. If a file was extended by means of |
| 251 | truncate(), this led to an Oops. |
| 252 | |
| 253 | - fsuser is now checked last. |
| 254 | |
| 255 | - rename() will not ignore changes in filename |
| 256 | casing any more (though mv(1) still won't allow |
| 257 | you to do "mv oldname OldName"). |
| 258 | |
| 259 | Version 3.5 |
| 260 | ----------- |
| 261 | |
| 262 | - Extension block caches are now allocated on |
| 263 | demand instead of when a file is opened, as |
| 264 | files can be read and written without opening |
| 265 | them (e. g. the loopback device does this). |
| 266 | |
| 267 | - Removed an unused function. |
| 268 | |
| 269 | Version 3.4 |
| 270 | ----------- |
| 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 | |
| 276 | Version 3.3 |
| 277 | ----------- |
| 278 | |
| 279 | - Tried to make all types 'correct' and consistent. |
| 280 | - Errors and warnings are now reported via a |
| 281 | function. They are all prefixed by a severity |
| 282 | and have the same appearance: |
| 283 | "AFFS: <function>: <error message>" |
| 284 | (There's one exception to this, as in that function |
| 285 | is no pointer to the super block available.) |
| 286 | - The filesystem is remounted read-only after an |
| 287 | error. |
| 288 | - The names of newly created filesystem objects are |
| 289 | now checked for validity. |
| 290 | - Minor cleanups in comments. |
| 291 | - Added this Changes file. At last! |
| 292 | |
| 293 | Version 3.2 |
| 294 | ----------- |
| 295 | |
| 296 | - Extension block cache: Reading/writing of huge files |
| 297 | (several MB) is much faster (of course the added |
| 298 | overhead slows down opening, but this is hardly |
| 299 | noticeable). |
| 300 | - The same get_block()-routine can now be used for |
| 301 | both OFS and FFS. |
| 302 | - The super block is now searched in the block that |
| 303 | was calculated and in the one following. This |
| 304 | should remedy the round-off error introduced by |
| 305 | 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 calculated |
| 308 | if the filesystem is mounted read-only. |
| 309 | - Prefixed some constants with AFFS_ to avoid name |
| 310 | clashes. |
| 311 | - Removed 'EXPERIMENTAL' status. |
| 312 | |
| 313 | Version 3.1 |
| 314 | ----------- |
| 315 | |
| 316 | - Fixed a nasty bug which didn't allow read-only |
| 317 | mounts. |
| 318 | - Allow dir-cache filesystems to be mounted |
| 319 | read only. |
| 320 | - OFS support. |
| 321 | - Several other changes I just cannot remember |
| 322 | any more. |
| 323 | |
| 324 | Version 3.0 |
| 325 | ----------- |
| 326 | |
| 327 | - Almost complete rewrite for the new VFS |
| 328 | interface in Linux 1.3. |
| 329 | - Write support. |
| 330 | - Support for hard and symbolic links. |
| 331 | - Lots of things I remember even less ... |
| 332 | |
| 333 | Version 2.0 |
| 334 | ----------- |
| 335 | |
| 336 | - Fixed a few things to get it compiled. |
| 337 | - Automatic root block calculation. |
| 338 | - Partition checker for genhd.c |
| 339 | |
| 340 | ======================================== |
| 341 | |
| 342 | Let's just call Ray Burr's original affs |
| 343 | 'Version 1.0'. |