xref: /aosp_15_r20/external/e2fsprogs/doc/RelNotes/v1.12.txt (revision 6a54128f25917bfc36a8a6e9d722c04a0b4641b6)
1*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.12 (July 9, 1998)
2*6a54128fSAndroid Build Coastguard Worker==================================
3*6a54128fSAndroid Build Coastguard Worker
4*6a54128fSAndroid Build Coastguard WorkerE2fsprogs now works with glibc (at least with the version shipped with
5*6a54128fSAndroid Build Coastguard WorkerRedHat 5.0).  The ext2fs_llseek() function should now work even with
6*6a54128fSAndroid Build Coastguard Workeri386 ELF shared libraries and if llseek() is not present.  We also
7*6a54128fSAndroid Build Coastguard Workerexplicitly do a configure test to see if (a) llseek is in libc, and
8*6a54128fSAndroid Build Coastguard Worker(b) if llseek is declared in the system header files.  (See standard
9*6a54128fSAndroid Build Coastguard Workercomplaints about libc developers don't understand the concept of
10*6a54128fSAndroid Build Coastguard Workercompatibility with previous versions of libc.)
11*6a54128fSAndroid Build Coastguard Worker
12*6a54128fSAndroid Build Coastguard WorkerThe ext2fs library now writes out the block group number in each of
13*6a54128fSAndroid Build Coastguard Workerthe superblock copies.  This makes it easier to automatically
14*6a54128fSAndroid Build Coastguard Workerdetermine the starting block group of the filesystem when the block
15*6a54128fSAndroid Build Coastguard Workergroup information is trashed.
16*6a54128fSAndroid Build Coastguard Worker
17*6a54128fSAndroid Build Coastguard WorkerAdded support for the EXT2_FEATURE_INCOMPAT_FILETYPE feature,
18*6a54128fSAndroid Build Coastguard Workerwhich means that e2fsprogs will ignore the high 8 bits of the
19*6a54128fSAndroid Build Coastguard Workerdirectory entry's name_len field, so that it can be used for other
20*6a54128fSAndroid Build Coastguard Workerpurposes.
21*6a54128fSAndroid Build Coastguard Worker
22*6a54128fSAndroid Build Coastguard WorkerAdded support for the EXT2_FEATURE_RO_COMPAT_LARGE_FILE feature.
23*6a54128fSAndroid Build Coastguard WorkerE2fsprogs will now support filesystems with 64-bit sized files.
24*6a54128fSAndroid Build Coastguard Worker
25*6a54128fSAndroid Build Coastguard WorkerAdded support for the EXT2_FEATURE_COMPAT_DIR_PREALLOC feature.
26*6a54128fSAndroid Build Coastguard Worker
27*6a54128fSAndroid Build Coastguard WorkerAdded new program "e2label", contributed by Andries Brouwer.  E2label
28*6a54128fSAndroid Build Coastguard Workerprovides an easy-to-use interface to modify the filesystem label.
29*6a54128fSAndroid Build Coastguard Worker
30*6a54128fSAndroid Build Coastguard WorkerFixed bug so that lsattr -v works instead of producing a core dump.
31*6a54128fSAndroid Build Coastguard Worker
32*6a54128fSAndroid Build Coastguard WorkerFixed a minor bug in mke2fs so that all groups with bad superblock
33*6a54128fSAndroid Build Coastguard Workerbackup blocks are printed (not just the first one).
34*6a54128fSAndroid Build Coastguard Worker
35*6a54128fSAndroid Build Coastguard WorkerMke2fs will check the size of the device, and if the user specifies a
36*6a54128fSAndroid Build Coastguard Workerfilesystem size larger than the apparent size of the device it will
37*6a54128fSAndroid Build Coastguard Workerprint a warning message and ask if the user wants to proceed.
38*6a54128fSAndroid Build Coastguard Worker
39*6a54128fSAndroid Build Coastguard WorkerE2fsck has a new option -C, which sends completion information to the
40*6a54128fSAndroid Build Coastguard Workerspecified file descriptor.  For the most part, this is intended for
41*6a54128fSAndroid Build Coastguard Workerprograms to use, although -C 0 will print a spinning character to the
42*6a54128fSAndroid Build Coastguard Workerstdout device, which may be useful for users who want to see something
43*6a54128fSAndroid Build Coastguard Workerhappening while e2fsck goes about its business.
44*6a54128fSAndroid Build Coastguard Worker
45*6a54128fSAndroid Build Coastguard WorkerFixed a bug in e2fsck which could cause a core dump when it needs to
46*6a54128fSAndroid Build Coastguard Workerexpand the /lost+found directory, and sometimes the bitmaps haven't
47*6a54128fSAndroid Build Coastguard Workerbeen merged in.  Also fixed a related bug where ext2fs_write_dir_block
48*6a54128fSAndroid Build Coastguard Workerwas used to write out a non-directory block.  (Which would be bad on a
49*6a54128fSAndroid Build Coastguard Workernon-Intel platform with byte swapping going on.)
50*6a54128fSAndroid Build Coastguard Worker
51*6a54128fSAndroid Build Coastguard WorkerFixed bug in e2fsck where it would print a "programming error" message
52*6a54128fSAndroid Build Coastguard Workerinstead of correctly identifying where a bad block was in used when
53*6a54128fSAndroid Build Coastguard Workerthe bad block was in a non-primary superblock or block group
54*6a54128fSAndroid Build Coastguard Workerdescriptor.  Also fixed a related bug when sparse superblocks are in
55*6a54128fSAndroid Build Coastguard Workeruse and there is a bad block where a superblock or block group
56*6a54128fSAndroid Build Coastguard Workerdescriptor would have been in a group that doesn't include a
57*6a54128fSAndroid Build Coastguard Workersuperblock.
58*6a54128fSAndroid Build Coastguard Worker
59*6a54128fSAndroid Build Coastguard WorkerFixed a bug in e2fsck (really in libext2fs's dblist function) where if
60*6a54128fSAndroid Build Coastguard Workerthe block group descriptor table is corrupt, it was possible to try to
61*6a54128fSAndroid Build Coastguard Workerallocate a huge array, fail, and then abort e2fsck.
62*6a54128fSAndroid Build Coastguard Workerext2fs_get_num_dirs() now sanity checks the block group descriptor,
63*6a54128fSAndroid Build Coastguard Workerand substitutes reasonable values if the descriptors are obviously bogus.
64*6a54128fSAndroid Build Coastguard Worker
65*6a54128fSAndroid Build Coastguard WorkerIf e2fsck finds a device file which has the immutable flag set and the
66*6a54128fSAndroid Build Coastguard Workeri_blocks beyond the normal device number are non-zero, e2fsck will
67*6a54128fSAndroid Build Coastguard Workeroffer to remove it, since it's probably caused by garbage in the inode
68*6a54128fSAndroid Build Coastguard Workertable.
69*6a54128fSAndroid Build Coastguard Worker
70*6a54128fSAndroid Build Coastguard WorkerWhen opening a filesystem, e2fsck specially checks for the EROFS error
71*6a54128fSAndroid Build Coastguard Workercode, and prints a specific error message to the user which is more
72*6a54128fSAndroid Build Coastguard Workeruser friendly.
73*6a54128fSAndroid Build Coastguard Worker
74*6a54128fSAndroid Build Coastguard WorkerIf the filesystem revision is too high, change the e2fsck to print
75*6a54128fSAndroid Build Coastguard Workerthat this is either because e2fsck is out of date, or because the
76*6a54128fSAndroid Build Coastguard Workersuperblock is corrupt.
77*6a54128fSAndroid Build Coastguard Worker
78*6a54128fSAndroid Build Coastguard WorkerE2fsck now checks for directories that have duplicate '.' and '..'
79*6a54128fSAndroid Build Coastguard Workerentries, and fixes this corruption.
80*6a54128fSAndroid Build Coastguard Worker
81*6a54128fSAndroid Build Coastguard WorkerE2fsck no longer forces a sync of the filesystem (with attendant sleep
82*6a54128fSAndroid Build Coastguard Workercalls) at all times.  The ext2fs_flush() function now performs a sync
83*6a54128fSAndroid Build Coastguard Workeronly if it needed to write data blocks to disk.
84*6a54128fSAndroid Build Coastguard Worker
85*6a54128fSAndroid Build Coastguard WorkerFixed a minor bug in e2fsck's pass1b's file cloning function, where
86*6a54128fSAndroid Build Coastguard Workercertain errors would not be properly reported.
87*6a54128fSAndroid Build Coastguard Worker
88*6a54128fSAndroid Build Coastguard WorkerUpdated and expanded a few points in the man pages which users
89*6a54128fSAndroid Build Coastguard Workercomplained weren't explicit enough.
90*6a54128fSAndroid Build Coastguard Worker
91*6a54128fSAndroid Build Coastguard WorkerAdded special case byte-swapping code if compiling on the PowerPC, to
92*6a54128fSAndroid Build Coastguard Workeraccommodate the strange big-endian variant of the ext2 filesystem that
93*6a54128fSAndroid Build Coastguard Workerwas previously used on the PowerPC port.
94*6a54128fSAndroid Build Coastguard Worker
95*6a54128fSAndroid Build Coastguard Worker
96*6a54128fSAndroid Build Coastguard WorkerProgrammer's notes:
97*6a54128fSAndroid Build Coastguard Worker-------------------
98*6a54128fSAndroid Build Coastguard Worker
99*6a54128fSAndroid Build Coastguard WorkerRemoved C++ keywords from the ext2fs libraries so that it could be
100*6a54128fSAndroid Build Coastguard Workercompiled with C++.
101*6a54128fSAndroid Build Coastguard Worker
102*6a54128fSAndroid Build Coastguard WorkerE2fsck's internal organization has now been massively reorganized so
103*6a54128fSAndroid Build Coastguard Workerthat pass*.c don't have any printf statements.  Instead, all problems
104*6a54128fSAndroid Build Coastguard Workerare reported through the fix_problem() abstraction interface.  E2fsck
105*6a54128fSAndroid Build Coastguard Workerhas also been revamped so that it can be called as a library from a
106*6a54128fSAndroid Build Coastguard Workerapplication.
107*6a54128fSAndroid Build Coastguard Worker
108*6a54128fSAndroid Build Coastguard WorkerAdded new fileio primitives in libext2fs for reading and writing
109*6a54128fSAndroid Build Coastguard Workerfiles on an unmounted ext2 filesystem.  This interface is now used by
110*6a54128fSAndroid Build Coastguard Workerdebugfs.
111*6a54128fSAndroid Build Coastguard Worker
112*6a54128fSAndroid Build Coastguard WorkerAdded a new libext2fs function for mapping logical block numbers of
113*6a54128fSAndroid Build Coastguard Workera file to a physical block number.
114*6a54128fSAndroid Build Coastguard Worker
115*6a54128fSAndroid Build Coastguard WorkerAdded a new libext2fs function, ext2fs_alloc_block(), which allocates
116*6a54128fSAndroid Build Coastguard Workera block, zeros it, and updates the filesystem accounting records
117*6a54128fSAndroid Build Coastguard Workerappropriately.
118*6a54128fSAndroid Build Coastguard Worker
119*6a54128fSAndroid Build Coastguard WorkerAdded a new libext2fs function, ext2fs_set_bitmap_padding(), which
120*6a54128fSAndroid Build Coastguard Workersets the padding of the bitmap to be all one's.  Used by e2fsck pass 5.
121*6a54128fSAndroid Build Coastguard Worker
122*6a54128fSAndroid Build Coastguard WorkerThe libext2fs functions now use a set of memory allocation wrapper
123*6a54128fSAndroid Build Coastguard Workerfunctions: ext2fs_get_mem, ext2fs_free_mem, and ext2fs_resize_mem,
124*6a54128fSAndroid Build Coastguard Workerinstead of malloc, free, and resize.  This makes it easier for us to
125*6a54128fSAndroid Build Coastguard Workerbe ported to strange environments where malloc, et. al. aren't
126*6a54128fSAndroid Build Coastguard Workernecessarily available.
127*6a54128fSAndroid Build Coastguard Worker
128*6a54128fSAndroid Build Coastguard WorkerChange the libext2fs function to return ext2-specific error codes
129*6a54128fSAndroid Build Coastguard Worker(EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND, for example) instead of using
130*6a54128fSAndroid Build Coastguard Workerand depending on the existence of system error codes (such as EEXIST
131*6a54128fSAndroid Build Coastguard Workerand ENOENT).
132*6a54128fSAndroid Build Coastguard Worker
133*6a54128fSAndroid Build Coastguard WorkerRenamed io.h to ext2_io.h to avoid collision with other OS's header
134*6a54128fSAndroid Build Coastguard Workerfiles.
135*6a54128fSAndroid Build Coastguard Worker
136*6a54128fSAndroid Build Coastguard WorkerAdd protection against ext2_io.h and ext2fs.h being included multiple
137*6a54128fSAndroid Build Coastguard Workertimes.
138*6a54128fSAndroid Build Coastguard Worker
139*6a54128fSAndroid Build Coastguard WorkerThe types used for memory lengths, etc. have been made more portable.
140*6a54128fSAndroid Build Coastguard WorkerIn general, the code has been made 16-bit safe.  Added Mark
141*6a54128fSAndroid Build Coastguard WorkerHabersack's contributed DOS disk i/o routines.
142*6a54128fSAndroid Build Coastguard Worker
143*6a54128fSAndroid Build Coastguard WorkerMiscellaneous portability fixes, including not depending on char's
144*6a54128fSAndroid Build Coastguard Workerbeing signed.
145*6a54128fSAndroid Build Coastguard Worker
146*6a54128fSAndroid Build Coastguard WorkerThe io_channel structure has a new element, app_data, which is
147*6a54128fSAndroid Build Coastguard Workerinitialized by the ext2fs routines to contain a copy of the filesystem
148*6a54128fSAndroid Build Coastguard Workerhandle.
149*6a54128fSAndroid Build Coastguard Worker
150*6a54128fSAndroid Build Coastguard Workerext2fs_check_directory()'s callback function may now return the error
151*6a54128fSAndroid Build Coastguard WorkerEXT2_ET_CALLBACK_NOTHANDLED if it wishes ext2fs_check_directory() to
152*6a54128fSAndroid Build Coastguard Workerreally do the checking, despite the presence of the callback function.
153*6a54128fSAndroid Build Coastguard Worker
154