• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1E2fsprogs 1.12 (July 9, 1998)
2==================================
3
4E2fsprogs now works with glibc (at least with the version shipped with
5RedHat 5.0).  The ext2fs_llseek() function should now work even with
6i386 ELF shared libraries and if llseek() is not present.  We also
7explicitly do a configure test to see if (a) llseek is in libc, and
8(b) if llseek is declared in the system header files.  (See standard
9complaints about libc developers don't understand the concept of
10compatibility with previous versions of libc.)
11
12The ext2fs library now writes out the block group number in each of
13the superblock copies.  This makes it easier to automatically
14determine the starting block group of the filesystem when the block
15group information is trashed.
16
17Added support for the EXT2_FEATURE_INCOMPAT_FILETYPE feature,
18which means that e2fsprogs will ignore the high 8 bits of the
19directory entry's name_len field, so that it can be used for other
20purposes.
21
22Added support for the EXT2_FEATURE_RO_COMPAT_LARGE_FILE feature.
23E2fsprogs will now support filesystems with 64-bit sized files.
24
25Added support for the EXT2_FEATURE_COMPAT_DIR_PREALLOC feature.
26
27Added new program "e2label", contributed by Andries Brouwer.  E2label
28provides an easy-to-use interface to modify the filesystem label.
29
30Fixed bug so that lsattr -v works instead of producing a core dump.
31
32Fixed a minor bug in mke2fs so that all groups with bad superblock
33backup blocks are printed (not just the first one).
34
35Mke2fs will check the size of the device, and if the user specifies a
36filesystem size larger than the apparent size of the device it will
37print a warning message and ask if the user wants to proceed.
38
39E2fsck has a new option -C, which sends completion information to the
40specified file descriptor.  For the most part, this is intended for
41programs to use, although -C 0 will print a spinning character to the
42stdout device, which may be useful for users who want to see something
43happening while e2fsck goes about its business.
44
45Fixed a bug in e2fsck which could cause a core dump when it needs to
46expand the /lost+found directory, and sometimes the bitmaps haven't
47been merged in.  Also fixed a related bug where ext2fs_write_dir_block
48was used to write out a non-directory block.  (Which would be bad on a
49non-Intel platform with byte swapping going on.)
50
51Fixed bug in e2fsck where it would print a "programming error" message
52instead of correctly identifying where a bad block was in used when
53the bad block was in a non-primary superblock or block group
54descriptor.  Also fixed a related bug when sparse superblocks are in
55use and there is a bad block where a superblock or block group
56descriptor would have been in a group that doesn't include a
57superblock.
58
59Fixed a bug in e2fsck (really in libext2fs's dblist function) where if
60the block group descriptor table is corrupt, it was possible to try to
61allocate a huge array, fail, and then abort e2fsck.
62ext2fs_get_num_dirs() now sanity checks the block group descriptor,
63and substitutes reasonable values if the descriptors are obviously bogus.
64
65If e2fsck finds a device file which has the immutable flag set and the
66i_blocks beyond the normal device number are non-zero, e2fsck will
67offer to remove it, since it's probably caused by garbage in the inode
68table.
69
70When opening a filesystem, e2fsck specially checks for the EROFS error
71code, and prints a specific error message to the user which is more
72user friendly.
73
74If the filesystem revision is too high, change the e2fsck to print
75that this is either because e2fsck is out of date, or because the
76superblock is corrupt.
77
78E2fsck now checks for directories that have duplicate '.' and '..'
79entries, and fixes this corruption.
80
81E2fsck no longer forces a sync of the filesystem (with attendant sleep
82calls) at all times.  The ext2fs_flush() function now performs a sync
83only if it needed to write data blocks to disk.
84
85Fixed a minor bug in e2fsck's pass1b's file cloning function, where
86certain errors would not be properly reported.
87
88Updated and expanded a few points in the man pages which users
89complained weren't explicit enough.
90
91Added special case byte-swapping code if compiling on the PowerPC, to
92accommodate the strange big-endian variant of the ext2 filesystem that
93was previously used on the PowerPC port.
94
95
96Programmer's notes:
97-------------------
98
99Removed C++ keywords from the ext2fs libraries so that it could be
100compiled with C++.
101
102E2fsck's internal organization has now been massively reorganized so
103that pass*.c don't have any printf statements.  Instead, all problems
104are reported through the fix_problem() abstraction interface.  E2fsck
105has also been revamped so that it can be called as a library from a
106application.
107
108Added new fileio primitives in libext2fs for reading and writing
109files on an unmounted ext2 filesystem.  This interface is now used by
110debugfs.
111
112Added a new libext2fs function for mapping logical block numbers of
113a file to a physical block number.
114
115Added a new libext2fs function, ext2fs_alloc_block(), which allocates
116a block, zeros it, and updates the filesystem accounting records
117appropriately.
118
119Added a new libext2fs function, ext2fs_set_bitmap_padding(), which
120sets the padding of the bitmap to be all one's.  Used by e2fsck pass 5.
121
122The libext2fs functions now use a set of memory allocation wrapper
123functions: ext2fs_get_mem, ext2fs_free_mem, and ext2fs_resize_mem,
124instead of malloc, free, and resize.  This makes it easier for us to
125be ported to strange environments where malloc, et. al. aren't
126necessarily available.
127
128Change the libext2fs function to return ext2-specific error codes
129(EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND, for example) instead of using
130and depending on the existence of system error codes (such as EEXIST
131and ENOENT).
132
133Renamed io.h to ext2_io.h to avoid collision with other OS's header
134files.
135
136Add protection against ext2_io.h and ext2fs.h being included multiple
137times.
138
139The types used for memory lengths, etc. have been made more portable.
140In general, the code has been made 16-bit safe.  Added Mark
141Habersack's contributed DOS disk i/o routines.
142
143Miscellaneous portability fixes, including not depending on char's
144being signed.
145
146The io_channel structure has a new element, app_data, which is
147initialized by the ext2fs routines to contain a copy of the filesystem
148handle.
149
150ext2fs_check_directory()'s callback function may now return the error
151EXT2_ET_CALLBACK_NOTHANDLED if it wishes ext2fs_check_directory() to
152really do the checking, despite the presence of the callback function.
153
154