Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | Changes from version 0.5a to version 0.5b |
| 2 | ========================================= |
| 3 | - Now that we have sysctl(), the immutable flag cannot be changed when |
| 4 | the system is running at security level > 0. |
| 5 | - Some cleanups in the code. |
| 6 | - More consistency checks on directories. |
| 7 | - The ext2.diff patch from Tom May <ftom@netcom.com> has been |
| 8 | integrated. This patch replaces expensive "/" and "%" with |
| 9 | cheap ">>" and "&" where possible. |
| 10 | |
| 11 | Changes from version 0.5 to version 0.5a |
| 12 | ======================================== |
| 13 | - Zero the partial block following the end of the file when a file |
| 14 | is truncated. |
| 15 | - Dates updated in the copyright. |
| 16 | - More checks when the filesystem is mounted: the count of blocks, |
| 17 | fragments, and inodes per group is checked against the block size. |
| 18 | - The buffers used by the error routines are now static variables, to |
| 19 | avoid using space on the kernel stack, as requested by Linus. |
| 20 | - Some cleanups in the error messages (some versions of syslog contain |
| 21 | a bug which truncates an error message if it contains '\n'). |
| 22 | - Check that no data can be written to a file past the 2GB limit. |
| 23 | - The famous readdir() bug has been fixed by Stephen Tweedie. |
| 24 | - Added a revision level in the superblock. |
| 25 | - Full support for O_SYNC flag of the open system call. |
| 26 | - New mount options: `resuid=#uid' and `resgid=#gid'. `resuid' causes |
| 27 | ext2fs to consider user #uid like root for the reserved blocks. |
| 28 | `resgid' acts the same way with group #gid. New fields in the |
| 29 | superblock contain default values for resuid and resgid and can |
| 30 | be modified by tune2fs. |
| 31 | Idea comes from Rene Cougnenc <cougnenc@renux.frmug.fr.net>. |
| 32 | - New mount options: `bsddf' and `minixdf'. `bsddf' causes ext2fs |
| 33 | to remove the blocks used for FS structures from the total block |
| 34 | count in statfs. With `minixdf', ext2fs mimics Minix behavior |
| 35 | in statfs (i.e. it returns the total number of blocks on the |
| 36 | partition). This is intended to make bde happy :-) |
| 37 | - New file attributes: |
| 38 | - Immutable files cannot be modified. Data cannot be written to |
| 39 | these files. They cannot be removed, renamed and new links cannot |
| 40 | be created. Even root cannot modify the files. He has to remove |
| 41 | the immutable attribute first. |
| 42 | - Append-only files: can only be written in append-mode when writing. |
| 43 | They cannot be removed, renamed and new links cannot be created. |
| 44 | Note: files may only be added to an append-only directory. |
| 45 | - No-dump files: the attribute is not used by the kernel. My port |
| 46 | of dump uses it to avoid backing up files which are not important. |
| 47 | - New check in ext2_check_dir_entry: the inode number is checked. |
| 48 | - Support for big file systems: the copy of the FS descriptor is now |
| 49 | dynamically allocated (previous versions used a fixed size array). |
| 50 | This allows to mount 2GB+ FS. |
| 51 | - Reorganization of the ext2_inode structure to allow other operating |
| 52 | systems to create specific fields if they use ext2fs as their native |
| 53 | file system. Currently, ext2fs is only implemented in Linux but |
| 54 | will soon be part of Gnu Hurd and of Masix. |
| 55 | |
| 56 | Changes from version 0.4b to version 0.5 |
| 57 | ======================================== |
| 58 | - New superblock fields: s_lastcheck and s_checkinterval added |
| 59 | by Uwe Ohse <uwe@tirka.gun.de> to implement timedependent checks |
| 60 | of the file system |
| 61 | - Real random numbers for secure rm added by Pierre del Perugia |
| 62 | <delperug@gla.ecoledoc.ibp.fr> |
| 63 | - The mount warnings related to the state of a fs are not printed |
| 64 | if the fs is mounted read-only, idea by Nick Holloway |
| 65 | <alfie@dcs.warwick.ac.uk> |
| 66 | |
| 67 | Changes from version 0.4a to version 0.4b |
| 68 | ========================================= |
| 69 | - Copyrights changed to include the name of my laboratory. |
| 70 | - Clean up of balloc.c and ialloc.c. |
| 71 | - More consistency checks. |
| 72 | - Block preallocation added by Stephen Tweedie. |
| 73 | - Direct reads of directories disallowed. |
| 74 | - Readahead implemented in readdir by Stephen Tweedie. |
| 75 | - Bugs in block and inodes allocation fixed. |
| 76 | - Readahead implemented in ext2_find_entry by Chip Salzenberg. |
| 77 | - New mount options: |
| 78 | `check=none|normal|strict' |
| 79 | `debug' |
| 80 | `errors=continue|remount-ro|panic' |
| 81 | `grpid', `bsdgroups' |
| 82 | `nocheck' |
| 83 | `nogrpid', `sysvgroups' |
| 84 | - truncate() now tries to deallocate contiguous blocks in a single call |
| 85 | to ext2_free_blocks(). |
| 86 | - lots of cosmetic changes. |
| 87 | |
| 88 | Changes from version 0.4 to version 0.4a |
| 89 | ======================================== |
| 90 | - the `sync' option support is now complete. Version 0.4 was not |
| 91 | supporting it when truncating a file. I have tested the synchronous |
| 92 | writes and they work but they make the system very slow :-( I have |
| 93 | to work again on this to make it faster. |
| 94 | - when detecting an error on a mounted filesystem, version 0.4 used |
| 95 | to try to write a flag in the super block even if the filesystem had |
| 96 | been mounted read-only. This is fixed. |
| 97 | - the `sb=#' option now causes the kernel code to use the filesystem |
| 98 | descriptors located at block #+1. Version 0.4 used the superblock |
| 99 | backup located at block # but used the main copy of the descriptors. |
| 100 | - a new file attribute `S' is supported. This attribute causes |
| 101 | synchronous writes but is applied to a file not to the entire file |
| 102 | system (thanks to Michael Kraehe <kraehe@bakunin.north.de> for |
| 103 | suggesting it). |
| 104 | - the directory cache is inhibited by default. The cache management |
| 105 | code seems to be buggy and I have to look at it carefully before |
| 106 | using it again. |
| 107 | - deleting a file with the `s' attribute (secure deletion) causes its |
| 108 | blocks to be overwritten with random values not with zeros (thanks to |
| 109 | Michael A. Griffith <grif@cs.ucr.edu> for suggesting it). |
| 110 | - lots of cosmetic changes have been made. |
| 111 | |
| 112 | Changes from version 0.3 to version 0.4 |
| 113 | ======================================= |
| 114 | - Three new mount options are supported: `check', `sync' and `sb=#'. |
| 115 | `check' tells the kernel code to make more consistency checks |
| 116 | when the file system is mounted. Currently, the kernel code checks |
| 117 | that the blocks and inodes bitmaps are consistent with the free |
| 118 | blocks and inodes counts. More checks will be added in future |
| 119 | releases. |
| 120 | `sync' tells the kernel code to use synchronous writes when updating |
| 121 | an inode, a bitmap, a directory entry or an indirect block. This |
| 122 | can make the file system much slower but can be a big win for files |
| 123 | recovery in case of a crash (and we can now say to the BSD folks |
| 124 | that Linux also supports synchronous updates :-). |
| 125 | `sb=#' tells the kernel code to use an alternate super block instead |
| 126 | of its master copy. `#' is the number of the block (counted in |
| 127 | 1024 bytes blocks) which contains the alternate super block. |
| 128 | An ext2 file system typically contains backups of the super block |
| 129 | at blocks 8193, 16385, and so on. |
| 130 | - I have change the meaning of the valid flag used by e2fsck. it |
| 131 | now contains the state of the file system. If the kernel code |
| 132 | detects an inconsistency while the file system is mounted, it flags |
| 133 | it as erroneous and e2fsck will detect that on next run. |
| 134 | - The super block now contains a mount counter. This counter is |
| 135 | incremented each time the file system is mounted read/write. When |
| 136 | this counter becomes bigger than a maximal mount counts (also stored |
| 137 | in the super block), e2fsck checks the file system, even if it had |
| 138 | been unmounted cleanly, and resets this counter to 0. |
| 139 | - File attributes are now supported. One can associate a set of |
| 140 | attributes to a file. Three attributes are defined: |
| 141 | `c': the file is marked for automatic compression, |
| 142 | `s': the file is marked for secure deletion: when the file is |
| 143 | deleted, its blocks are zeroed and written back to the disk, |
| 144 | `u': the file is marked for undeletion: when the file is deleted, |
| 145 | its contents are saved to allow a future undeletion. |
| 146 | Currently, only the `s' attribute is implemented in the kernel |
| 147 | code. Support for the other attributes will be added in a future |
| 148 | release. |
| 149 | - a few bugs related to times updates have been fixed by Bruce |
| 150 | Evans and me. |
| 151 | - a bug related to the links count of deleted inodes has been fixed. |
| 152 | Previous versions used to keep the links count set to 1 when a file |
| 153 | was deleted. The new version now sets links_count to 0 when deleting |
| 154 | the last link. |
| 155 | - a race condition when deallocating an inode has been fixed by |
| 156 | Stephen Tweedie. |
| 157 | |