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