CHANGES 8.59 KB
Newer Older
Linus Torvalds's avatar
Linus Torvalds committed
1 2
Changes from version 0.5a to version 0.5b
=========================================
Linus Torvalds's avatar
Linus Torvalds committed
3 4
	- Now that we have sysctl(), the immutable flag cannot be changed when
	  the system is running at security level > 0.
Linus Torvalds's avatar
Linus Torvalds committed
5
	- Some cleanups in the code.
Linus Torvalds's avatar
Linus Torvalds committed
6 7 8 9 10
	- More consistency checks on directories.
	- The ext2.diff patch from Tom May <ftom@netcom.com> has been
	  integrated.  This patch replaces expensive "/" and "%" with
	  cheap ">>" and "&" where possible.

Linus Torvalds's avatar
Linus Torvalds committed
11 12
Changes from version 0.5 to version 0.5a
========================================
Linus Torvalds's avatar
Linus Torvalds committed
13 14
	- Zero the partial block following the end of the file when a file
	  is truncated.
Linus Torvalds's avatar
Linus Torvalds committed
15
	- Dates updated in the copyright.
Linus Torvalds's avatar
Linus Torvalds committed
16 17 18 19
	- More checks when the filesystem is mounted: the count of blocks,
	  fragments, and inodes per group is checked against the block size.
	- The buffers used by the error routines are now static variables, to
	  avoid using space on the kernel stack, as requested by Linus.
Linus Torvalds's avatar
Linus Torvalds committed
20 21 22 23
	- Some cleanups in the error messages (some versions of syslog contain
	  a bug which truncates an error message if it contains '\n').
	- Check that no data can be written to a file past the 2GB limit.
	- The famous readdir() bug has been fixed by Stephen Tweedie.
Linus Torvalds's avatar
Linus Torvalds committed
24 25
	- Added a revision level in the superblock.
	- Full support for O_SYNC flag of the open system call.
Linus Torvalds's avatar
Linus Torvalds committed
26 27 28 29 30 31
	- New mount options: `resuid=#uid' and `resgid=#gid'.  `resuid' causes
	  ext2fs to consider user #uid like root for the reserved blocks.
	  `resgid' acts the same way with group #gid.  New fields in the
	  superblock contain default values for resuid and resgid and can
	  be modified by tune2fs.
	  Idea comes from Rene Cougnenc <cougnenc@renux.frmug.fr.net>.
Linus Torvalds's avatar
Linus Torvalds committed
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
	- New mount options: `bsddf' and `minixdf'.  `bsddf' causes ext2fs
	  to remove the blocks used for FS structures from the total block
	  count in statfs.  With `minixdf', ext2fs mimics Minix behavior
	  in statfs (i.e. it returns the total number of blocks on the
	  partition).  This is intended to make bde happy :-)
	- New file attributes:
	  - Immutable files cannot be modified.  Data cannot be written to
	    these files.  They cannot be removed, renamed and new links cannot
	    be created.  Even root cannot modify the files.  He has to remove
	    the immutable attribute first.
	  - Append-only files: can only be written in append-mode when writing.
	    They cannot be removed, renamed and new links cannot be created.
	    Note: files may only be added to an append-only directory.
	  - No-dump files: the attribute is not used by the kernel.  My port
	    of dump uses it to avoid backing up files which are not important.
	- New check in ext2_check_dir_entry: the inode number is checked.
	- Support for big file systems: the copy of the FS descriptor is now
	  dynamically allocated (previous versions used a fixed size array).
	  This allows to mount 2GB+ FS.
	- Reorganization of the ext2_inode structure to allow other operating
	  systems to create specific fields if they use ext2fs as their native
	  file system.  Currently, ext2fs is only implemented in Linux but
	  will soon be part of Gnu Hurd and of Masix.

Linus Torvalds's avatar
Linus Torvalds committed
56 57 58 59 60 61 62 63 64 65 66
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>

Linus Torvalds's avatar
Linus Torvalds committed
67 68 69 70 71 72
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.
Linus Torvalds's avatar
Linus Torvalds committed
73
	- Direct reads of directories disallowed.
Linus Torvalds's avatar
Linus Torvalds committed
74 75 76 77 78 79 80 81 82 83
	- 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'
Linus Torvalds's avatar
Linus Torvalds committed
84
	- truncate() now tries to deallocate contiguous blocks in a single call
Linus Torvalds's avatar
Linus Torvalds committed
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
	  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
Linus Torvalds's avatar
Linus Torvalds committed
138
          been unmounted cleanly, and resets this counter to 0.
Linus Torvalds's avatar
Linus Torvalds committed
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
        - 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.