Whamcloud - gitweb
misc: fix typos in chattr's man page
[tools/e2fsprogs.git] / doc / RelNotes / v1.12.txt
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