• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1E2fsprogs 1.07 (March 9, 1997)
2==============================
3
4E2fsck is now uses much less memory when checking really large
5filesystems (or rather, filesystems with a large number of inodes).
6Previously a filesystem with 1 million inodes required 4 megabytes of
7memory to store inode count statistics; that storage requirement has
8now been reduced to roughly half a megabyte.
9
10E2fsck can now properly deal with bad blocks appearing inside the
11inode table.  Instead of trying to relocate the inode table (which
12often failed because there wasn't enough space), the inodes in the bad
13block are marked as in use.
14
15E2fsck will automatically try to use the backup superblocks if the
16primary superblocks have a bad magic number or have missing meta-data
17blocks (or meta-data blocks which are out of range).
18
19E2fsck's pass 3 has been made more efficient; most noticeable on
20filesystems with a very large number of directories.
21
22Completely revamped e2fsck's system of printing problem reports.  It
23is now table driven, to make them more easily customizable and
24extendable.  Error messages which can be printed out during preen mode
25are now one line long.
26
27Fixed e2fsck's filesystem swapping code so that it won't try to swap
28fast symbolic links or deleted files.
29
30Fixed e2fsck core dumping when fixing a filesystem which has no
31directories (not even a root directory).
32
33Added a check to e2fsck to make sure that the length of every
34directory entry is a multiple of 4 (since the kernel complains if it
35isn't).
36
37Added a check to e2fsck to make sure that a directory entry isn't a
38link to the root directory, since that isn't allowed.
39
40Added a check to e2fsck to now make sure the '.' and '..' directory
41entries are null terminated, since the 2.0 kernel requires it.
42
43Added check to write_bitmaps() to make sure the superblock doesn't get
44trashed if the inode or block bitmap is marked as being block zero.
45
46Added checking of the new feature set fields in the superblock, to
47avoid dealing with new filesystem features that this package wasn't
48set up to handle.
49
50Fixed a fencepost error in ext2fs_new_block() which would occasionally
51try to allocate a block beyond the end of a filesystem.
52
53When the UUID library picks a random IEEE 802 address (because it
54can't find one from a network card), it sets the multicast bit, to
55avoid conflicting with a legitimate IEEE 802 address.
56
57Mke2fs now sets the root directory's owner to be the real uid of the
58user running mke2fs.  If the real uid is non-zero, it also sets
59the group ownership of the root directory to be the real group-id of
60the user running mke2fs.
61
62Mke2fs now has more intelligent error checking when it is given a
63non-existent device.
64
65When badblocks is given the -vv option, it now updates the block that
66it is currently testing on every block.
67
68Fixed a bug in fsck where it wouldn't modify the PATH environment
69currently correctly if PATH wasn't already set.
70
71Shared libraries now built with dependencies.  This allows the shared
72library files to be used with dlopen(); it also makes the transition
73to libc 6 easier, since ld.so can tell which libc a particular shared
74library expects to use.
75
76Programmer's notes:
77-------------------
78
79Added new abstraction (defined in dblist.c) for maintaining a list of
80blocks which belongs to directories.  This is used in e2fsck and other
81programs which need to iterate over all directories.
82
83Added new functions which test to see if a contiguous range of blocks
84(or inodes) are available.  (ext2fs_*_bitmap_range).
85
86Added new function (ext2_inode_has_valid_blocks) which returns true if
87an inode has valid blocks.  (moved from e2fsck code).
88
89Added new function (ext2fs_allocate_tables) which allocates the
90meta-data blocks as part of initializing a filesystem.  (moved from
91mke2fs code).
92
93Added a new I/O manager for testing purposes.  It will either allow a
94program to intercept I/O requests, or print debugging messages to
95trace the activity of a program using the I/O manager.
96
97The badblocks_list functions now store the bad blocks in a sorted
98order, and use a binary search to speed up badblocks_list_test.
99
100The inode scan function ext2fs_get_next_inode() may now return a soft
101error returns: MISSING_INODE_TABLE and BAD_BLOCK_IN_INODE_TABLE in
102those cases where part of an inode table is missing or there is a bad
103block in the inode table.
104
105Added a new function (ext2fs_block_iterate2) which adds new arguments to
106the callback function to return a pointer (block and offset) to the
107reference of the block.
108
109Added new function (ext2fs_inode_scan_goto_blockgroup) which allows an
110application to jump to a particular block group while doing an inode
111scan.
112
113The badblocks list functions were renamed from badblocks_* to
114ext2fs_badblocks_*.  Backwards compatibility functions are available
115for now, but programs should be modified to use the new interface.
116
117Some of the library functions were reorganized into separate files to
118reduce the size of some programs which statically link against the
119ext2 library.
120
121Put in some miscellaneous fixes for the Alpha platform.
122
123