Changes from version 0.4b to version 0.5 ======================================== - New superblock fields: s_lastcheck and s_checkinterval added by Uwe Ohse <uwe@tirka.gun.de> to implement timedependent checks of the file system - Real random numbers for secure rm added by Pierre del Perugia <delperug@gla.ecoledoc.ibp.fr> - The mount warnings related to the state of a fs are not printed if the fs is mounted read-only, idea by Nick Holloway <alfie@dcs.warwick.ac.uk> Changes from version 0.4a to version 0.4b ========================================= - Copyrights changed to include the name of my laboratory. - Clean up of balloc.c and ialloc.c. - More consistency checks. - Block preallocation added by Stephen Tweedie. - Direct reads of directories disallowed. - Readahead implemented in readdir by Stephen Tweedie. - Bugs in block and inodes allocation fixed. - Readahead implemented in ext2_find_entry by Chip Salzenberg. - New mount options: `check=none|normal|strict' `debug' `errors=continue|remount-ro|panic' `grpid', `bsdgroups' `nocheck' `nogrpid', `sysvgroups' - truncate() now tries to deallocate contigous blocks in a single call to ext2_free_blocks(). - lots of cosmetic changes. Changes from version 0.4 to version 0.4a ======================================== - the `sync' option support is now complete. Version 0.4 was not supporting it when truncating a file. I have tested the synchronous writes and they work but they make the system very slow :-( I have to work again on this to make it faster. - when detecting an error on a mounted filesystem, version 0.4 used to try to write a flag in the super block even if the filesystem had been mounted read-only. This is fixed. - the `sb=#' option now causes the kernel code to use the filesystem descriptors located at block #+1. Version 0.4 used the superblock backup located at block # but used the main copy of the descriptors. - a new file attribute `S' is supported. This attribute causes synchronous writes but is applied to a file not to the entire file system (thanks to Michael Kraehe <kraehe@bakunin.north.de> for suggesting it). - the directory cache is inhibited by default. The cache management code seems to be buggy and I have to look at it carefully before using it again. - deleting a file with the `s' attribute (secure deletion) causes its blocks to be overwritten with random values not with zeros (thanks to Michael A. Griffith <grif@cs.ucr.edu> for suggesting it). - lots of cosmetic changes have been made. Changes from version 0.3 to version 0.4 ======================================= - Three new mount options are supported: `check', `sync' and `sb=#'. `check' tells the kernel code to make more consistency checks when the file system is mounted. Currently, the kernel code checks that the blocks and inodes bitmaps are consistent with the free blocks and inodes counts. More checks will be added in future releases. `sync' tells the kernel code to use synchronous writes when updating an inode, a bitmap, a directory entry or an indirect block. This can make the file system much slower but can be a big win for files recovery in case of a crash (and we can now say to the BSD folks that Linux also supports synchronous updates :-). `sb=#' tells the kernel code to use an alternate super block instead of its master copy. `#' is the number of the block (counted in 1024 bytes blocks) which contains the alternate super block. An ext2 file system typically contains backups of the super block at blocks 8193, 16385, and so on. - I have change the meaning of the valid flag used by e2fsck. it now contains the state of the file system. If the kernel code detects an inconsistency while the file system is mounted, it flags it as erroneous and e2fsck will detect that on next run. - The super block now contains a mount counter. This counter is incremented each time the file system is mounted read/write. When this counter becomes bigger than a maximal mount counts (also stored in the super block), e2fsck checks the file system, even if it had been unmounted cleany, and resets this counter to 0. - File attributes are now supported. One can associate a set of attributes to a file. Three attributes are defined: `c': the file is marked for automatic compression, `s': the file is marked for secure deletion: when the file is deleted, its blocks are zeroed and written back to the disk, `u': the file is marked for undeletion: when the file is deleted, its contents are saved to allow a future undeletion. Currently, only the `s' attribute is implemented in the kernel code. Support for the other attributes will be added in a future release. - a few bugs related to times updates have been fixed by Bruce Evans and me. - a bug related to the links count of deleted inodes has been fixed. Previous versions used to keep the links count set to 1 when a file was deleted. The new version now sets links_count to 0 when deleting the last link. - a race condition when deallocating an inode has been fixed by Stephen Tweedie.