Whamcloud - gitweb
util: change git-ver to only use a version tag to describe git version
[tools/e2fsprogs.git] / doc / RelNotes / v1.39.txt
1 E2fsprogs 1.39 (May 29, 2006) 
2 =============================
3
4 Fix 32-bit cleanliness in e2fsprogs so that we can support filesystems
5 between 2**31 and 2**32 blocks.
6
7 Change mke2fs to use /etc/mke2fs.conf as a configuration file to
8 configure the filesystem features, blocksize, and inode_ratio for
9 different filesystem types.
10
11 Mke2fs will now create filesystems hash trees and on-line resizing
12 enabled by default, based on the new /etc/mke2fs.conf file.
13
14 The e2fsprogs tools (resize2fs, e2fsck, mke2fs) will open the
15 filesystem device node in exclusive mode to prevent accidents by
16 system administrators.  In the case of resize2fs and mke2fs, it will
17 only use exclusive mode if the filesystem is not mounted.
18
19 Fixed a bug in mke2fs which caused it to to fail when creating the
20 resize inode for large filesystems.  (Addresses Debian Bug #346580)
21
22 When allocating space for the RAID filesystems with the stride
23 parameter, mke2fs will now place each portion of the group's inode
24 table right up after the superblock (if present) in order to minimize
25 fragmentation of the free space.
26
27 Speed up mke2fs and e2fsck by writing inode and block bitmaps more
28 efficiently by writing the inode and block bitmaps in one pass, thus
29 reducing the number of disk seeks required.
30
31 Add support for on-line resizing to resize2fs.
32
33 Fix blkid library so that logic to determine whether or not a device's
34 cached information in /etc/blkid.tab needs to be verified or not
35 doesn't get confused by a system clock which is insane (for example,
36 if the battery is dead on a Macintosh running PPC Linux.  (Addresses
37 Red Hat Bug: #182188)
38
39 The blkid library will now store the UUID of the external journal used
40 by ext3 filesystems, so that in the future, the userspace mount binary
41 can use this to find the location of the external journal and pass
42 this information to the kernel.
43
44 E2fsck will now consult a configuration file, /etc/e2fsck.conf to
45 control how various options should be handled.  See the e2fsck.conf
46 man page for more details.   (Addresses Debian Bug: #150295)
47
48 E2fsck now prints an explanatory message when delaying a filesystem
49 check when the system is running on battery.  (Addresses Debian Bug:
50 #350306)
51
52 E2fsck will detect if the superblock's last mount field or last write
53 field is in the future, and offer to fix if so.  (Addresses Debian Bug
54 #327580) These problems will be fixed automatically in preen mode
55 since Debian's boot sequence bogusly doesn't set the time correctly
56 until potentially very late in the bootup process, and this can cause
57 false positives which will cause users' systems to fail to boot.
58 (Addresses Debian Bugs #343662 and #343645)
59
60 E2fsck now checks to see if the superblock hint for the location of
61 the external journal is incorrect, and if so, offer to update it.
62 (Addresses Debian Bug: #355644)
63
64 Fix e2fsck from segfaulting on disconnected inodes that contain one or
65 more extended attributes.  (Addresses Debian Bug: #316736, #318463)
66
67 E2fsck will stop and print a warning if the user tries running a
68 read/write badblocks test on a read-only mounted root filesystem.
69
70 Fix a memory leak in e2fsck's error paths.  (Thanks to Michael
71 C. Thompson for pointing these out; they were originally found using
72 Coverity.)
73
74 When resizing a file containing a filesystem, resize2fs will expand or
75 truncate a file as necessary.  (Addresses Debian Bug: #271607)
76
77 Resize2fs will now automatically determine the RAID stride parameter that
78 had been used to create the filesystem, and use that for newly created
79 block groups.   The RAID stride parameter may also be manually specified
80 on the command line using the new -S option to resize2fs.
81
82 Fix mke2fs so that it correctly creates external journals on
83 big-endian machines (such as a S/390).  
84
85 Fix a bug in the e2p library which could cause dumpe2fs to (rarely)
86 fail to print out the journal or hash seed UUID.  (Thanks to Guillaume
87 Chambraud for pointing this out.)
88
89 Dumpe2fs will now print the size of the journal (if present).
90
91 Fix debugfs's set_inode_field command so it can properly set the frag,
92 fsize, uid_high, gid_high, and author fields in the inode instead of
93 silently failing, and so that setting the i_size actually sets i_size
94 correctly.
95
96 Add a new debugfs command, set_current_time, which sets fs->now so
97 that regression test suites can repeatedly modify the filesystem's
98 last_write fields.
99
100 Fix a bug in debugfs's icheck which would incorrectly report the owner
101 of an extended attribute block.
102
103 Fix the debugfs commands htree_dump, dx_hash, and list_dir so they print a
104 print a usage message when an illegal option character is given.
105
106 Fix debugfs's dump_unsued command on filesystems with a 64k blocksize
107 so it won't core dump.  (Addresses SourceForge bug #1424311)
108
109 Fix mklost+found so that it creates a full-sized directory on
110 filesystems with larger block sizes.
111
112 Fix a file descriptor leak in blkid library.
113
114 Fix a display bug in "badblocks -sv" so that the done message properly
115 clears the block number at the end of the test.  (Addresses Debian Bug
116 #322231)
117
118 Allow fractional percentages to the -m option in mke2fs and tune2fs
119 (Addresses Debian Bug: #80205)
120
121 Use fstat/fstat64 in getsize.c if the the target is a regular file,
122 instead of attempting to do a binary search.  Fix some fd leaks in
123 error cases.
124
125 Add support for device mapper library to the blkid library to ensure
126 that the "best" (i.e., leaf) device is probed by the blkid library.
127
128 Fix the blkid library so that it notices when an ext2 filesystem is
129 upgraded to ext3.
130
131 Improve the blkid's library VFAT/FAT detection; it now understands
132 labels stored in the root directory, and is more paranoid about
133 checking the FAT superblock values.
134
135 Fixed a fd leak in the uuid library which was causing problems for the
136 LVM tools.  (Addresses Debian Bug: #345832)
137
138 Add support for the reiser4 and software suspend partitions to the
139 blkid library.  Also add support for extract the label from iso9660
140 filesystems.
141
142 Fix a compile_et bug which miscount the number of error messages if
143 continuations are used in the .et file.
144
145 Add extra sanity checks to protect users from unusual circumstances
146 where /etc/mtab may not be sane, by checking to see if the device is
147 reported busy (works on Linux 2.6) kernels.  (Addresses Debian Bug
148 #319002)
149
150 Updated French, Dutch, Polish, and Swedish translations.  (Addresses Debian
151 Bug: #343149, #341911, #300871, #316604, #316782, #330789)
152
153 Fix use-after-free bug in e2fsck when finishing up the use of the
154 e2fsck context structure.
155
156 Fixed spelling mistakes, typos, and otherwise clarified man pages and
157 documentation.  (Addresses Debian Bugs: #329859, #322188, #316811,
158 #312515, #351268, #357951, #347295, #316040, #368392, #368393, #368394,
159 #368179)
160
161 Fixed various Debian packaging issues --- see debian/changelog for
162 details.  (Addresses Debian Bugs #317862, #320389, #290429, #310950,
163 #310428, #330737, #330736, #329074, #356293, #360046, #366017, #364516,
164 #362544, #362970)
165
166
167 Programmer's notes:
168 -------------------
169
170 Update config.guess and config.sub to latest version (2006-02-23) from
171 FSF.
172
173 Fix asm_types.h type conflicts on AMD 64 platforms.  (Addresses Debian
174 Bugs: #360661, #360317)
175
176 Fixed the Makefile so that they work correctly on newer versions of
177 GNU make (i.e., 3.81).
178
179 Add valgrind support to the regression test suites, and eliminate
180 false positives from valgrind.
181
182 Add a regression test suite for the blkid library.
183
184 Fix a fencepost error in resize2fs caught by valgrind.  
185
186 Fix compiler warnings about missing memcpy prototypes.
187
188 We no longer have the sparc assembly code in the header file any more,
189 so we shouldn't set _EXT2_HAVE_HAS_BITOPS_ for the sparc.  This would
190 break compiles on the sparc architectures when using gcc.
191
192 In the libext2fs library, add the new field fs->now which if non-zero
193 is used instead of the system time when setting various filesystem
194 fields (last modified time, last write time, etc.)
195
196 Fix gcc 4.01 complaints by adding a missing #include <string.h> to
197 ext2fs.h which is needed since the inline functions use memcpy().
198 (Addresses Sourceforge Bug #1251062)
199
200 Use BUILD_CFLAGS and BUILD_LDFLAGS instead of CFLAGS and LDFLAGS in
201 the build system when building files in the util directory which are
202 needed during the build process.  This avoids potential problems when
203 cross-compiling and some of the options specified in CFLAGS or LDFLAGS
204 are not recognized as valid by the host compiler.  (Addresses
205 Sourceforge Bug #1261547)
206
207 Clean up the blkid library by making the superblock and generic i/o
208 functions to be more generic.  Clean up interface to the probe
209 function, and fix memory leak.  Finally, remove an unneeded reference
210 to probe.h in the lib/blkid/resolve.c
211
212 Add an ext2fs_read_bb_FILE regression test to confirm proper detection
213 of invalid block #'s.
214
215 The x86 asm constraints for ext2fs_{set/clear}_bit have been fixed to
216 indicate that the the function read/writes the memory location.
217
218 Fix various gcc -Wall complaints.
219
220 Add a dependency to make sure that the subdirectories are created
221 before creating all of the object files, in order to address parallel
222 build problem in the library Makefiles.  (Addresses Sourceforge Bug:
223 #1261553)
224
225 Add $(LDFLAGS) to the command line argument when generating an ELF or
226 Solaris shared library, to allow cross-compile and other builds that
227 might need to specify -L paths to needed libraries.  (Addresses
228 Sourceforge Bug #1261549)
229
230 Add a new feature, EXT2_FEATURE_COMPAT_LAZY_BG, which is initially
231 intended for testing purposes.  It allows an ext2/ext3 developer to
232 create very large filesystems using sparse files where most of the
233 block groups are not initialized and so do not require much disk
234 space.  Eventually it could be used as a way of speeding up mke2fs and
235 e2fsck for large filesystem, but that would be best done by adding an
236 RO_COMPAT extension to the filesystem to allow the inode table to be
237 lazily initialized on a per-block basis, instead of being entirely
238 initialized or entirely unused on a per-blockgroup basis.
239
240 Fix backwards compatibility so e2fsprogs will better compile on Linux
241 2.0.35 systems.
242
243 Make test scripts more robust against locale-related environment variables
244
245 Fix type warning problem with sizeof() in ext2fs_open2().
246
247 Fix type warning problem with time_t in debugfs.
248