xref: /aosp_15_r20/external/e2fsprogs/doc/RelNotes/v1.41.txt (revision 6a54128f25917bfc36a8a6e9d722c04a0b4641b6)
1*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.14 (December 22, 2010)
2*6a54128fSAndroid Build Coastguard Worker=====================================
3*6a54128fSAndroid Build Coastguard Worker
4*6a54128fSAndroid Build Coastguard WorkerFix spurious complaint in mke2fs where it would complain if the file
5*6a54128fSAndroid Build Coastguard Workersystem type "default" is not defined in mke2fs.conf.
6*6a54128fSAndroid Build Coastguard Worker
7*6a54128fSAndroid Build Coastguard WorkerThe resize2fs program will no longer clear the resize_inode feature
8*6a54128fSAndroid Build Coastguard Workerwhen the number reserved group descriptor blocks reaches zero.  This
9*6a54128fSAndroid Build Coastguard Workerallows for subsequent shrinks of the file system to work cleanly for
10*6a54128fSAndroid Build Coastguard Workerflex_bg file systems.
11*6a54128fSAndroid Build Coastguard Worker
12*6a54128fSAndroid Build Coastguard WorkerThe resize2fs program now handles devices which are exactly 16T;
13*6a54128fSAndroid Build Coastguard Workerpreviously it would give an error saying that the file system was too
14*6a54128fSAndroid Build Coastguard Workerbig.
15*6a54128fSAndroid Build Coastguard Worker
16*6a54128fSAndroid Build Coastguard WorkerE2fsck (and the libext2fs library) will not use the extended rec_len
17*6a54128fSAndroid Build Coastguard Workerencoding for file systems whose block size is less than 64k, for
18*6a54128fSAndroid Build Coastguard Workerconsistency with the kernel.
19*6a54128fSAndroid Build Coastguard Worker
20*6a54128fSAndroid Build Coastguard WorkerProgramming notes
21*6a54128fSAndroid Build Coastguard Worker-----------------
22*6a54128fSAndroid Build Coastguard Worker
23*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.13 would not compile on big-endian systems.  This has
24*6a54128fSAndroid Build Coastguard Workerbeen fixed.  (Addresses Sourceforge Bug: #3138115)
25*6a54128fSAndroid Build Coastguard Worker
26*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_block_iterator2() function passed an incorrect ref_offset
27*6a54128fSAndroid Build Coastguard Workerto its callback function in the case of sparse files.  (Addresses
28*6a54128fSAndroid Build Coastguard WorkerSourceforge Bug: #3081087)
29*6a54128fSAndroid Build Coastguard Worker
30*6a54128fSAndroid Build Coastguard WorkerFix some type-punning warnings generated by newer versions of gcc.
31*6a54128fSAndroid Build Coastguard Worker
32*6a54128fSAndroid Build Coastguard Worker
33*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.13 (December 13, 2010)
34*6a54128fSAndroid Build Coastguard Worker=====================================
35*6a54128fSAndroid Build Coastguard Worker
36*6a54128fSAndroid Build Coastguard WorkerE2fsck now supports the extended option "-E journal_only", which
37*6a54128fSAndroid Build Coastguard Workercauses it to only do a journal replay.  This is useful for scripts
38*6a54128fSAndroid Build Coastguard Workerthat want to first replay the journal and then check to see if it
39*6a54128fSAndroid Build Coastguard Workercontains errors.
40*6a54128fSAndroid Build Coastguard Worker
41*6a54128fSAndroid Build Coastguard WorkerE2fsck will now support UUID= and LABEL= specifiers for the -j option
42*6a54128fSAndroid Build Coastguard Worker(which specifies where to find the external journal).  (Addresses
43*6a54128fSAndroid Build Coastguard WorkerDebian Bug #559315)
44*6a54128fSAndroid Build Coastguard Worker
45*6a54128fSAndroid Build Coastguard WorkerE2fsck now has support for the problems/<problem code>/force_no
46*6a54128fSAndroid Build Coastguard Workerconfiguration option in e2fsck.conf, which forces a problem to not be
47*6a54128fSAndroid Build Coastguard Workerfixed.
48*6a54128fSAndroid Build Coastguard Worker
49*6a54128fSAndroid Build Coastguard WorkerDumpe2fs will now avoid printing large negative offsets for the bitmap
50*6a54128fSAndroid Build Coastguard Workerblocks and instead print a message which is a bit more helpful for
51*6a54128fSAndroid Build Coastguard Workerflex_bg file systems.
52*6a54128fSAndroid Build Coastguard Worker
53*6a54128fSAndroid Build Coastguard WorkerMke2fs will now check the file system type (specified with the -t
54*6a54128fSAndroid Build Coastguard Workeroption) to make sure it is defined in the mke2fs.conf file; if it is
55*6a54128fSAndroid Build Coastguard Workernot, it will print an error and abort.  If the usage type (specified
56*6a54128fSAndroid Build Coastguard Workerwith the -T option) is not defined in mke2fs.conf, mke2fs will print a
57*6a54128fSAndroid Build Coastguard Workerwarning but will continue.  (Addresses Debian Bug #594609)
58*6a54128fSAndroid Build Coastguard Worker
59*6a54128fSAndroid Build Coastguard WorkerClarified error message from resize2fs clarifying that on-line
60*6a54128fSAndroid Build Coastguard Workershrinking is not supported at all.  (Addresses Debian Bug #599786)
61*6a54128fSAndroid Build Coastguard Worker
62*6a54128fSAndroid Build Coastguard WorkerFix an e2fsck bug that could cause a PROGRAMMING BUG error to be
63*6a54128fSAndroid Build Coastguard Workerdisplayed.  (Addresses Debian Bug #555456)
64*6a54128fSAndroid Build Coastguard Worker
65*6a54128fSAndroid Build Coastguard WorkerE2fsck will open the external journal in exclusive mode, to prevent
66*6a54128fSAndroid Build Coastguard Workerthe journal from getting truncated while it is in use due to a user
67*6a54128fSAndroid Build Coastguard Workeraccidentally trying to run e2fsck on a snapshotted file system volume.
68*6a54128fSAndroid Build Coastguard Worker(Addresses Debian Bug #587531)
69*6a54128fSAndroid Build Coastguard Worker
70*6a54128fSAndroid Build Coastguard WorkerFix a bug in e2fsck so it has the correct test for the EOFBLOCKS_FL
71*6a54128fSAndroid Build Coastguard Workerflag.
72*6a54128fSAndroid Build Coastguard Worker
73*6a54128fSAndroid Build Coastguard WorkerThe tune2fs program can now set the uninit_bg feature without
74*6a54128fSAndroid Build Coastguard Workerrequiring an fsck.
75*6a54128fSAndroid Build Coastguard Worker
76*6a54128fSAndroid Build Coastguard WorkerThe tune2fs, dumpe2fs, and debugfs programs now support the new ext4
77*6a54128fSAndroid Build Coastguard Workerdefault mount options settings which were added in 2.6.35.
78*6a54128fSAndroid Build Coastguard Worker
79*6a54128fSAndroid Build Coastguard WorkerThe e2fsck and dumpe2fs programs now support the new ext4 superblock
80*6a54128fSAndroid Build Coastguard Workerfields which track where and when the first and most recent file
81*6a54128fSAndroid Build Coastguard Workersystem errors occurred.  These fields are displayed by dumpe2fs and
82*6a54128fSAndroid Build Coastguard Workercleared by e2fsck.  These new superblock fields were added in 2.6.36.
83*6a54128fSAndroid Build Coastguard Worker
84*6a54128fSAndroid Build Coastguard WorkerDebugfs now uses a more concise format for listing extents in its
85*6a54128fSAndroid Build Coastguard Workerstat command.  This format also includes the interior extent tree
86*6a54128fSAndroid Build Coastguard Workerblocks, which previously was missing from stat's output for
87*6a54128fSAndroid Build Coastguard Workerextent-based files.
88*6a54128fSAndroid Build Coastguard Worker
89*6a54128fSAndroid Build Coastguard WorkerDebugfs has a new option, -D, which will request Direct I/O access of
90*6a54128fSAndroid Build Coastguard Workerthe file system.
91*6a54128fSAndroid Build Coastguard Worker
92*6a54128fSAndroid Build Coastguard WorkerMke2fs will skip initializing the inode table if a device supports
93*6a54128fSAndroid Build Coastguard Workerdiscard and the discard operation will result in zero'ed blocks.
94*6a54128fSAndroid Build Coastguard Worker
95*6a54128fSAndroid Build Coastguard WorkerBadblocks will now correctly backspace over UTF-8 characters when
96*6a54128fSAndroid Build Coastguard Workerdisplaying its progress bar.  (Addresses Gentoo Bug #309909; Addresses
97*6a54128fSAndroid Build Coastguard WorkerDebian Bugs #583782 and #587834)
98*6a54128fSAndroid Build Coastguard Worker
99*6a54128fSAndroid Build Coastguard WorkerE2freefrag will now display the total number of free extents.
100*6a54128fSAndroid Build Coastguard Worker
101*6a54128fSAndroid Build Coastguard WorkerResize2fs -P no longer requires a freshly checked filesystem before
102*6a54128fSAndroid Build Coastguard Workerprinting the minimum resize size.
103*6a54128fSAndroid Build Coastguard Worker
104*6a54128fSAndroid Build Coastguard WorkerFixed a floating point precision error in a binary tree search routine
105*6a54128fSAndroid Build Coastguard Workerthat can lead to seg fault in e2fsck and resize2fs.
106*6a54128fSAndroid Build Coastguard Worker
107*6a54128fSAndroid Build Coastguard WorkerFixed a bug in e2fsck where if both the original and backup superblock
108*6a54128fSAndroid Build Coastguard Workerare invalid in some way, e2fsck will fail going back to the original
109*6a54128fSAndroid Build Coastguard Workersuperblock because it didn't close the backup superblock first, and
110*6a54128fSAndroid Build Coastguard Workerthe exclusive open prevented the file system from being reopened.
111*6a54128fSAndroid Build Coastguard Worker
112*6a54128fSAndroid Build Coastguard WorkerFixed a big in e2freefrag which caused getopt parsing to fail on
113*6a54128fSAndroid Build Coastguard Workerarchitectures with unsigned chars.  (Addresses Gentoo Bug: #299386)
114*6a54128fSAndroid Build Coastguard Worker
115*6a54128fSAndroid Build Coastguard WorkerClarified an mke2fs error message so a missed common in an -E option
116*6a54128fSAndroid Build Coastguard Worker(i.e., mke2fs -t ext4 -E stride=128 stripe-width=512 /dev/sda1")
117*6a54128fSAndroid Build Coastguard Workerresults in a more understandable explanation to the user.
118*6a54128fSAndroid Build Coastguard Worker
119*6a54128fSAndroid Build Coastguard WorkerMke2fs now displays the correct valid inode ratio range when
120*6a54128fSAndroid Build Coastguard Workercomplaining about an invalid inode ratio specified by the user.
121*6a54128fSAndroid Build Coastguard Worker
122*6a54128fSAndroid Build Coastguard WorkerMke2fs now understands the extended option "discard" and "nodiscard",
123*6a54128fSAndroid Build Coastguard Workerand the older option -K is deprecated.  The default of whether
124*6a54128fSAndroid Build Coastguard Workerdiscards are enabled by default can be controlled by the mke2fs.conf
125*6a54128fSAndroid Build Coastguard Workerfile.
126*6a54128fSAndroid Build Coastguard Worker
127*6a54128fSAndroid Build Coastguard WorkerMke2fs's handling of logical and physical sector sizes has been
128*6a54128fSAndroid Build Coastguard Workerimproved to reflect the fact that there will be some SSD's with 8k and
129*6a54128fSAndroid Build Coastguard Worker16k physical sectors arriving soon.  Mke2fs will no longer force block
130*6a54128fSAndroid Build Coastguard Workersize to be the physical sector size, since there will be devices where
131*6a54128fSAndroid Build Coastguard Workerthe physical sector size is larger than the system's page size, and
132*6a54128fSAndroid Build Coastguard Workerhence larger than the maximal supported block size.  In addition, if
133*6a54128fSAndroid Build Coastguard Workerthe minimal and optimal io size are not exported by the device, and
134*6a54128fSAndroid Build Coastguard Workerthe physical sector size is larger than the block size, the physical
135*6a54128fSAndroid Build Coastguard Workersector size will be used to set the Raid I/O optimization hints in the
136*6a54128fSAndroid Build Coastguard Workersuperblock.
137*6a54128fSAndroid Build Coastguard Worker
138*6a54128fSAndroid Build Coastguard WorkerE2fsck will now display a better, more specific error message when the
139*6a54128fSAndroid Build Coastguard Workeruser enters a typo'ed device name, instead of blathering on about
140*6a54128fSAndroid Build Coastguard Workeralternate superblocks.
141*6a54128fSAndroid Build Coastguard Worker
142*6a54128fSAndroid Build Coastguard WorkerFixed various Debian Packaging Issues
143*6a54128fSAndroid Build Coastguard Worker
144*6a54128fSAndroid Build Coastguard WorkerUpdated/clarified man pages (Addresses Debian Bugs: #580236, #594004,
145*6a54128fSAndroid Build Coastguard Worker#589345, #591083; Addresses Launchpad Bug: #505719)
146*6a54128fSAndroid Build Coastguard Worker
147*6a54128fSAndroid Build Coastguard WorkerUpdate the Chinese, Chzech, Dutch, French, Germany, Indonesian,
148*6a54128fSAndroid Build Coastguard WorkerPolish, Swedish, and Vietnamese translations.
149*6a54128fSAndroid Build Coastguard Worker
150*6a54128fSAndroid Build Coastguard Worker
151*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
152*6a54128fSAndroid Build Coastguard Worker------------------
153*6a54128fSAndroid Build Coastguard Worker
154*6a54128fSAndroid Build Coastguard WorkerFix a dependency definition for the static and profiled blkid
155*6a54128fSAndroid Build Coastguard Workerlibraries which could cause compile failures in some configurations.
156*6a54128fSAndroid Build Coastguard Worker(Addresses Debian Bug: #604629)
157*6a54128fSAndroid Build Coastguard Worker
158*6a54128fSAndroid Build Coastguard WorkerAdd support for Direct I/O in the Unix I/O access layer.
159*6a54128fSAndroid Build Coastguard Worker
160*6a54128fSAndroid Build Coastguard WorkerFixed a memory leak in the Unix I/O layer when changing block sizes.
161*6a54128fSAndroid Build Coastguard Worker
162*6a54128fSAndroid Build Coastguard WorkerFixed minor memory leaks in mke2fs.
163*6a54128fSAndroid Build Coastguard Worker
164*6a54128fSAndroid Build Coastguard WorkerAdded a new function to the ext2fs library, ext2fs_get_memalign().
165*6a54128fSAndroid Build Coastguard Worker
166*6a54128fSAndroid Build Coastguard WorkerThe tst_super_size test program will check to make sure the superblock
167*6a54128fSAndroid Build Coastguard Workerfields are correctly aligned and will print them out so they can be
168*6a54128fSAndroid Build Coastguard Workermanually checked for correctness.
169*6a54128fSAndroid Build Coastguard Worker
170*6a54128fSAndroid Build Coastguard WorkerFixed some makefile dependencies for test programs in lib/ext2fs.
171*6a54128fSAndroid Build Coastguard Worker
172*6a54128fSAndroid Build Coastguard WorkerReserved the feature flags and superblock fields needed for the Next3
173*6a54128fSAndroid Build Coastguard Workersnapshot feature.
174*6a54128fSAndroid Build Coastguard Worker
175*6a54128fSAndroid Build Coastguard WorkerReserved the feature flags for EXT4_FEATURE_INCOMPAT_DIRDATA and
176*6a54128fSAndroid Build Coastguard WorkerEXT4_INCOMPAT_EA_INODE.
177*6a54128fSAndroid Build Coastguard Worker
178*6a54128fSAndroid Build Coastguard Worker
179*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.12 (May 17, 2010)
180*6a54128fSAndroid Build Coastguard Worker================================
181*6a54128fSAndroid Build Coastguard Worker
182*6a54128fSAndroid Build Coastguard WorkerMke2fs now gives a correct error message if the external journal
183*6a54128fSAndroid Build Coastguard Workerdevice is not found.  (Addresses Red Hat Bug #572935)
184*6a54128fSAndroid Build Coastguard Worker
185*6a54128fSAndroid Build Coastguard WorkerResize2fs -P will now refuse to print a minimum size if the file
186*6a54128fSAndroid Build Coastguard Workersystem is not clean.  Previously it would go ahead and print a minimum
187*6a54128fSAndroid Build Coastguard Workersize anyway, which might not be correct, leading to user confusion.
188*6a54128fSAndroid Build Coastguard Worker
189*6a54128fSAndroid Build Coastguard WorkerE2fsck now tests for extents that begin at physical block 0 and
190*6a54128fSAndroid Build Coastguard Workerrejects them as invalid.  (Addresses Google Bug: #2573806)
191*6a54128fSAndroid Build Coastguard Worker
192*6a54128fSAndroid Build Coastguard WorkerFixed a bug in e2fsck which could cause it to crash when trying to
193*6a54128fSAndroid Build Coastguard Workerremove an invalid extent and the block bitmaps hadn't yet been loaded.
194*6a54128fSAndroid Build Coastguard Worker(Addresses SourceForge Bug: #2971800)
195*6a54128fSAndroid Build Coastguard Worker
196*6a54128fSAndroid Build Coastguard WorkerE2fsck now will completely skip time-based checks if the system clock
197*6a54128fSAndroid Build Coastguard Workerlooks insane or the option broken_system_clock is set in
198*6a54128fSAndroid Build Coastguard Worker/etc/e2fsck.conf.
199*6a54128fSAndroid Build Coastguard Worker
200*6a54128fSAndroid Build Coastguard WorkerE2fsck would previously report an i_blocks corruption for a 4T file
201*6a54128fSAndroid Build Coastguard Workercreated using posix_fallocate; this bug has been fixed.
202*6a54128fSAndroid Build Coastguard Worker
203*6a54128fSAndroid Build Coastguard WorkerE2fsck will now correctly mark a sparse journal as invalid and will
204*6a54128fSAndroid Build Coastguard Workerdelete and recreate the journal to address the problem.
205*6a54128fSAndroid Build Coastguard Worker
206*6a54128fSAndroid Build Coastguard WorkerE2fsck would previously incorrectly ask the user whether she would
207*6a54128fSAndroid Build Coastguard Workerlike to abort the file system check after finding a problem --- and
208*6a54128fSAndroid Build Coastguard Workerthen abort regardless of the user's answer.  This is annoying, and
209*6a54128fSAndroid Build Coastguard Workerhas been fixed.
210*6a54128fSAndroid Build Coastguard Worker
211*6a54128fSAndroid Build Coastguard WorkerE2fsck can now continue even if it fails to recreate the resize
212*6a54128fSAndroid Build Coastguard Workerinode; previously it would just abort the file system check
213*6a54128fSAndroid Build Coastguard Workeraltogether.
214*6a54128fSAndroid Build Coastguard Worker
215*6a54128fSAndroid Build Coastguard WorkerE2fsck could potentially remove directory entries for inodes found in
216*6a54128fSAndroid Build Coastguard Workerthe unused region of the inode table; this would generally happen on
217*6a54128fSAndroid Build Coastguard Workerext4 file systems that do not use journalling.  This bug has been fixed
218*6a54128fSAndroid Build Coastguard Workerby not clearing these directory entries once it has been established
219*6a54128fSAndroid Build Coastguard Workerthat bg_unused_inodes may not be trustworthy; once pass #2 has been
220*6a54128fSAndroid Build Coastguard Workercompleted, e2fsck will restart the file system check from the
221*6a54128fSAndroid Build Coastguard Workerbeginning, and then it will be safe to delete any directory entries
222*6a54128fSAndroid Build Coastguard Workerpointing to inodes that appear to be deleted.  (Addresses Google Bug:
223*6a54128fSAndroid Build Coastguard Worker#2642165)
224*6a54128fSAndroid Build Coastguard Worker
225*6a54128fSAndroid Build Coastguard WorkerE2fsck will not try to set the block group checksums if the user
226*6a54128fSAndroid Build Coastguard Workercancels the fsck with a control-C.  It's a bad idea to set the
227*6a54128fSAndroid Build Coastguard Workerchecksums if e2fsck hasn't been completed, and it often results an the
228*6a54128fSAndroid Build Coastguard Workererror message, "Inode bitmap not loaded while setting block group
229*6a54128fSAndroid Build Coastguard Workerchecksum info".  (Addresses Launchpad Bug: #582035)
230*6a54128fSAndroid Build Coastguard Worker
231*6a54128fSAndroid Build Coastguard WorkerThe mke2fs program now queries the kernel for the physical as well as
232*6a54128fSAndroid Build Coastguard Workerthe logical sector size, and will not allow a blocksize below the
233*6a54128fSAndroid Build Coastguard Workerlogical, and will strongly encourage a blocksize at least as big as
234*6a54128fSAndroid Build Coastguard Workerthe physical blocksize.  This is needed for 4k sector drives that
235*6a54128fSAndroid Build Coastguard Workeremulate 512 byte sector sizes.
236*6a54128fSAndroid Build Coastguard Worker
237*6a54128fSAndroid Build Coastguard WorkerMke2fs will now allow a flex_bg size of 1.  This is unusual, and
238*6a54128fSAndroid Build Coastguard Workerrarely needed, but it is a legal value.
239*6a54128fSAndroid Build Coastguard Worker
240*6a54128fSAndroid Build Coastguard WorkerE2fsck will check for cases where the EOFBLOCKS_FL is set when it is
241*6a54128fSAndroid Build Coastguard Workernot needed, and offer to clear it; this is a sign of a kernel bug, but
242*6a54128fSAndroid Build Coastguard Workermore importantly, some released kernels may crash when this situation
243*6a54128fSAndroid Build Coastguard Workeris encountered on ext4 file systems.  (Addresses Google Bug: #2604224)
244*6a54128fSAndroid Build Coastguard Worker
245*6a54128fSAndroid Build Coastguard WorkerE2fsck will use the EOFBLOCKS_FL flag exclusively to check whether
246*6a54128fSAndroid Build Coastguard Workeri_size is correct.  (Kernels starting with 2.6.34 will set
247*6a54128fSAndroid Build Coastguard WorkerEOFBLOCKS_FL.)
248*6a54128fSAndroid Build Coastguard Worker
249*6a54128fSAndroid Build Coastguard WorkerThe com_err library will now only output ^M (a CR character) when the
250*6a54128fSAndroid Build Coastguard Workertty is in raw mode.
251*6a54128fSAndroid Build Coastguard Worker
252*6a54128fSAndroid Build Coastguard WorkerUpdate the Czech, Chinese, Dutch, French, Germany, Indonesian, Polish,
253*6a54128fSAndroid Build Coastguard Workerand Vietnamese translations.
254*6a54128fSAndroid Build Coastguard Worker
255*6a54128fSAndroid Build Coastguard WorkerFixed various Debian packaging issues --- see debian/changelog for
256*6a54128fSAndroid Build Coastguard Workerdetails.  (Addresses Debian Bugs: #571247, #563487)
257*6a54128fSAndroid Build Coastguard Worker
258*6a54128fSAndroid Build Coastguard Worker
259*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
260*6a54128fSAndroid Build Coastguard Worker------------------
261*6a54128fSAndroid Build Coastguard Worker
262*6a54128fSAndroid Build Coastguard WorkerThe regression test suite now uses its own mke2fs.conf file, so that
263*6a54128fSAndroid Build Coastguard Workerdownstream distributions want change the mke2fs.conf file which is
264*6a54128fSAndroid Build Coastguard Workerdistributed in the RPM or dpkg file, without worrying about screwing
265*6a54128fSAndroid Build Coastguard Workerup the regression test results.
266*6a54128fSAndroid Build Coastguard Worker
267*6a54128fSAndroid Build Coastguard WorkerAlways build namei.o so that building with configure --disable-debugfs
268*6a54128fSAndroid Build Coastguard Workerworks correctly.  Long-term, if we care about reduced e2fsprogs
269*6a54128fSAndroid Build Coastguard Workerbuilds, we need a more general solution for deciding what .o files are
270*6a54128fSAndroid Build Coastguard Workerneeded for a particular build.  Given that install floppies are going
271*6a54128fSAndroid Build Coastguard Worker(gone?) the way the dodo bird, we probably don't care, though.
272*6a54128fSAndroid Build Coastguard Worker(Addresses Sourceforge Bug: #2911433)
273*6a54128fSAndroid Build Coastguard Worker
274*6a54128fSAndroid Build Coastguard WorkerAdd configure options --enable-symlink-build and
275*6a54128fSAndroid Build Coastguard Worker--enable-symlink-install, which allow e2fsprogs be built using
276*6a54128fSAndroid Build Coastguard Workersymlinks instead of hard links, and to be installed using symlinks
277*6a54128fSAndroid Build Coastguard Workerinstead of hard links, respectively.  It is useful when the file
278*6a54128fSAndroid Build Coastguard Workersystem where the build is taking place, or the file system where
279*6a54128fSAndroid Build Coastguard Workere2fsprogs is installed, can't handle hard links for some reason.
280*6a54128fSAndroid Build Coastguard Worker(Addresses Sourceforge Bug: #1436294)
281*6a54128fSAndroid Build Coastguard Worker
282*6a54128fSAndroid Build Coastguard WorkerFixed compile warning in mke2fs.c.
283*6a54128fSAndroid Build Coastguard Worker
284*6a54128fSAndroid Build Coastguard Worker
285*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.11 (March 14, 2010)
286*6a54128fSAndroid Build Coastguard Worker==================================
287*6a54128fSAndroid Build Coastguard Worker
288*6a54128fSAndroid Build Coastguard WorkerE2fsck will no longer give a fatal error and abort if the physical
289*6a54128fSAndroid Build Coastguard Workerdevice has been resized beyond 2**32 blocks.  (Addresses Launchpad
290*6a54128fSAndroid Build Coastguard WorkerBug: #521648)
291*6a54128fSAndroid Build Coastguard Worker
292*6a54128fSAndroid Build Coastguard WorkerDebugfs has a bug fixed so that "logdump -b <blk>" now properly shows
293*6a54128fSAndroid Build Coastguard Workerthe allocation status of the block <blk>.  (Addresses Debian Bug:
294*6a54128fSAndroid Build Coastguard Worker#564084)
295*6a54128fSAndroid Build Coastguard Worker
296*6a54128fSAndroid Build Coastguard WorkerE2fsck now prints a much more emphatic and hopefully scary message
297*6a54128fSAndroid Build Coastguard Workerwhen a file system is detected as mounted while doing a read/write
298*6a54128fSAndroid Build Coastguard Workercheck of the filesystem.  Hopefully this will dissuade users from
299*6a54128fSAndroid Build Coastguard Workerthinking, "surely that message doesn't apply to *me*" :-(
300*6a54128fSAndroid Build Coastguard Worker
301*6a54128fSAndroid Build Coastguard WorkerE2fsck -n will now always open the file system read-only.  We now
302*6a54128fSAndroid Build Coastguard Workerdisallow certain combination of options which previously were manual
303*6a54128fSAndroid Build Coastguard Workerexceptions; this is bad because it causes users to think they are
304*6a54128fSAndroid Build Coastguard Workersmarter than they really are.  So "-n -c", "-n -l", "-n -L", and "-n
305*6a54128fSAndroid Build Coastguard Worker-D" are no longer supported.  (Addresses Launchpad Bug: #537483)
306*6a54128fSAndroid Build Coastguard Worker
307*6a54128fSAndroid Build Coastguard WorkerIn e2fsprogs 1.41.10, mke2fs would ask for confirmation to proceed if
308*6a54128fSAndroid Build Coastguard Workerit detected a badly aligned partition.  Unfortunately, this broke some
309*6a54128fSAndroid Build Coastguard Workerdistribution installation scripts, so it now just prints the warning
310*6a54128fSAndroid Build Coastguard Workermessage and proceeds.  (Addresses Red Hat Bug: #569021. Addresses
311*6a54128fSAndroid Build Coastguard WorkerLaunchpad Bug: #530071)
312*6a54128fSAndroid Build Coastguard Worker
313*6a54128fSAndroid Build Coastguard WorkerMke2fs would take a long time to create very large journal files for
314*6a54128fSAndroid Build Coastguard Workerext4.  This was caused by a bug in ext2fs_block_iterate2(), which is
315*6a54128fSAndroid Build Coastguard Workernow fixed.
316*6a54128fSAndroid Build Coastguard Worker
317*6a54128fSAndroid Build Coastguard WorkerE2fsck now understands the EOFBLOCKS_FL flag which will be used in
318*6a54128fSAndroid Build Coastguard Worker2.6.34 kernels to make e2fsck not complain about blocks deliberately
319*6a54128fSAndroid Build Coastguard Workerfallocated() beyond an inode's i_size.
320*6a54128fSAndroid Build Coastguard Worker
321*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.10 introduced a regression (in commit b71e018) where
322*6a54128fSAndroid Build Coastguard Workere2fsck -fD can corrupt non-indexed directories when are exists one or
323*6a54128fSAndroid Build Coastguard Workermore file names which alphabetically sort before ".".  This can happen
324*6a54128fSAndroid Build Coastguard Workerwith ext2 filesystems or for small directories (take less than a lock)
325*6a54128fSAndroid Build Coastguard Workerwhich contain filenames that begin with a space or some other
326*6a54128fSAndroid Build Coastguard Workerpunctuation mark.  (Addresses Debian Bug: #573923, Addresses Launchpad
327*6a54128fSAndroid Build Coastguard WorkerBug: #525114)
328*6a54128fSAndroid Build Coastguard Worker
329*6a54128fSAndroid Build Coastguard Worker
330*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
331*6a54128fSAndroid Build Coastguard Worker------------------
332*6a54128fSAndroid Build Coastguard Worker
333*6a54128fSAndroid Build Coastguard WorkerAdd new test, f_rehash_dir, which checks to make sure e2fsck -D works
334*6a54128fSAndroid Build Coastguard Workercorrectly.
335*6a54128fSAndroid Build Coastguard Worker
336*6a54128fSAndroid Build Coastguard WorkerThe libcom_err function now has support for Heimdal's com_right_r
337*6a54128fSAndroid Build Coastguard Workerfunction().  (Addresses Sourceforge Bug: #2963865, Addresses Debian
338*6a54128fSAndroid Build Coastguard WorkerBug: #558910)
339*6a54128fSAndroid Build Coastguard Worker
340*6a54128fSAndroid Build Coastguard Worker
341*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.10 (February 7, 2010)
342*6a54128fSAndroid Build Coastguard Worker====================================
343*6a54128fSAndroid Build Coastguard Worker
344*6a54128fSAndroid Build Coastguard WorkerFix resize2fs bug which causes it to access invalid memory.
345*6a54128fSAndroid Build Coastguard Worker
346*6a54128fSAndroid Build Coastguard WorkerAdd libss support for libreadline.so.6.
347*6a54128fSAndroid Build Coastguard Worker
348*6a54128fSAndroid Build Coastguard WorkerFix e2fsck's check for extent-mapped directory with an incorrect file
349*6a54128fSAndroid Build Coastguard Workertype.
350*6a54128fSAndroid Build Coastguard Worker
351*6a54128fSAndroid Build Coastguard WorkerAdd new e2fsck.conf configuration option, default/broken_system_clock
352*6a54128fSAndroid Build Coastguard Workerto support systems with broken CMOS hardware clocks.  Also, since too
353*6a54128fSAndroid Build Coastguard Workermany distributions seem to have broken virtualization scripts now,
354*6a54128fSAndroid Build Coastguard Workere2fsck will by default accept dates which are off by up to 24 hours by
355*6a54128fSAndroid Build Coastguard Workerdefault.  (Addresses Debian Bugs: #559776, #557636)
356*6a54128fSAndroid Build Coastguard Worker
357*6a54128fSAndroid Build Coastguard WorkerFix a bug where mke2fs may not use the best placement of the inode
358*6a54128fSAndroid Build Coastguard Workertable when there is only room for a single block group in the last
359*6a54128fSAndroid Build Coastguard Workerflex_bg.
360*6a54128fSAndroid Build Coastguard Worker
361*6a54128fSAndroid Build Coastguard WorkerE2fsck is now smarter when it needs to allocate blocks in the course
362*6a54128fSAndroid Build Coastguard Workerof fixing file system problems.  This reduces the number of spurious
363*6a54128fSAndroid Build Coastguard Workerdifferences found in pass #5.
364*6a54128fSAndroid Build Coastguard Worker
365*6a54128fSAndroid Build Coastguard WorkerE2fsck will no longer rehash directories which fit in a single
366*6a54128fSAndroid Build Coastguard Workerdirectory block.
367*6a54128fSAndroid Build Coastguard Worker
368*6a54128fSAndroid Build Coastguard WorkerE2fsck now correctly handles holes in extent-mapped directories (i.e.,
369*6a54128fSAndroid Build Coastguard Workersparse directories which use extents).
370*6a54128fSAndroid Build Coastguard Worker
371*6a54128fSAndroid Build Coastguard WorkerFix big-endian problems with ext2fs_bmap() and ext2fs_bmap2().
372*6a54128fSAndroid Build Coastguard Worker
373*6a54128fSAndroid Build Coastguard WorkerFix a bug in filefrag where on platforms which can allow file systems
374*6a54128fSAndroid Build Coastguard Workerwith 8k blocks, that it doesn't core dump when it sees a file system
375*6a54128fSAndroid Build Coastguard Workerwith 8k block sizes.  (Thanks to Mikulas Patocka for pointing this
376*6a54128fSAndroid Build Coastguard Workerout.)
377*6a54128fSAndroid Build Coastguard Worker
378*6a54128fSAndroid Build Coastguard WorkerE2fsck will correctly fix directories that are have an inaccurate
379*6a54128fSAndroid Build Coastguard Workeri_size as well as other problems in a single pass, instead of
380*6a54128fSAndroid Build Coastguard Workerrequiring two e2fsck runs before the file system is fully fixed.
381*6a54128fSAndroid Build Coastguard Worker
382*6a54128fSAndroid Build Coastguard WorkerFix e2fsck so it will correctly find and detect duplicate directory
383*6a54128fSAndroid Build Coastguard Workerentries for non-indexed directories.  ( Addresses Sourceforge Bug:
384*6a54128fSAndroid Build Coastguard Worker#2862551)
385*6a54128fSAndroid Build Coastguard Worker
386*6a54128fSAndroid Build Coastguard WorkerMke2fs will use BLKDISCARD to pre-discard all blocks on an SSD or
387*6a54128fSAndroid Build Coastguard Workerthinly-provisioned storage device.  This can be disabled using the -K
388*6a54128fSAndroid Build Coastguard Workeroption.
389*6a54128fSAndroid Build Coastguard Worker
390*6a54128fSAndroid Build Coastguard WorkerEnhance libext2fs so it works around bug in Linux version 2.6.19
391*6a54128fSAndroid Build Coastguard Workerand earlier where the /proc/swaps file was missing the header on
392*6a54128fSAndroid Build Coastguard Workerthe first line.
393*6a54128fSAndroid Build Coastguard Worker
394*6a54128fSAndroid Build Coastguard WorkerFix bug in Linux version 2.6.19 and earlier where the /proc/swaps file
395*6a54128fSAndroid Build Coastguard Workerwas missing the header on the first line.
396*6a54128fSAndroid Build Coastguard Worker
397*6a54128fSAndroid Build Coastguard WorkerFix some big-endian bugs in e2fsck and libext2fs.
398*6a54128fSAndroid Build Coastguard Worker
399*6a54128fSAndroid Build Coastguard WorkerFix resize2fs so it works correctly on file systems with external
400*6a54128fSAndroid Build Coastguard Workerjournals instead of failing early with the error "Illegal inode
401*6a54128fSAndroid Build Coastguard Workernumber".
402*6a54128fSAndroid Build Coastguard Worker
403*6a54128fSAndroid Build Coastguard WorkerFix libss so that it does not seg fault when using a readline library
404*6a54128fSAndroid Build Coastguard Workerwhich does not supply a readline_shutdown() function.
405*6a54128fSAndroid Build Coastguard Worker
406*6a54128fSAndroid Build Coastguard WorkerUpdated dumpe2fs's usage message so it correctly gives the right
407*6a54128fSAndroid Build Coastguard Workerarguments summary for "-o superblock=<num>" and "-o blocksize=<num>".
408*6a54128fSAndroid Build Coastguard Worker(Addresses Launchpad Bug: #448099)
409*6a54128fSAndroid Build Coastguard Worker
410*6a54128fSAndroid Build Coastguard WorkerTeach libext2fs to ignore the high 32 bits of the i_blocks field
411*6a54128fSAndroid Build Coastguard Workerwhen huge_file file system feature is set, but the inode does not
412*6a54128fSAndroid Build Coastguard Workerhave the HUGE_FILE_FL flag set.
413*6a54128fSAndroid Build Coastguard Worker
414*6a54128fSAndroid Build Coastguard WorkerFix e2fsck's handling of 64-bit i_blocks fields.
415*6a54128fSAndroid Build Coastguard Worker
416*6a54128fSAndroid Build Coastguard WorkerE2fsck will now print "Illegal indirect block", "Illegal
417*6a54128fSAndroid Build Coastguard Workerdouble-indirect block", etc., instead of "Illegal block #-1" or
418*6a54128fSAndroid Build Coastguard Worker"Illegal block #-2", etc.  This makes it easier for users to
419*6a54128fSAndroid Build Coastguard Workerunderstand what has gone wrong.  (Addresses SourceForge Bug: #2871782)
420*6a54128fSAndroid Build Coastguard Worker
421*6a54128fSAndroid Build Coastguard WorkerMke2fs now will obtain get device topology information from blkid and
422*6a54128fSAndroid Build Coastguard Workeruse it to populate the superblock stride and stripe sizes.  It will
423*6a54128fSAndroid Build Coastguard Workeralso warn if the block device is misaligned
424*6a54128fSAndroid Build Coastguard Worker
425*6a54128fSAndroid Build Coastguard WorkerFix file descriptor leaks in fsck and debugfs.  (Addresses Novell Bug:
426*6a54128fSAndroid Build Coastguard Worker##524526)
427*6a54128fSAndroid Build Coastguard Worker
428*6a54128fSAndroid Build Coastguard WorkerFix the libext2fs library code to round up the bitmap size to a 4-byte
429*6a54128fSAndroid Build Coastguard Workerboundary, to prevent spurious seg faults caused by the x86
430*6a54128fSAndroid Build Coastguard Workerarchitecture.  This doesn't affect Linux systems, but was a major
431*6a54128fSAndroid Build Coastguard Workerproblem on a number of *BSD systems.  (Addresses Sourceforge Bug:
432*6a54128fSAndroid Build Coastguard Worker#2328708)
433*6a54128fSAndroid Build Coastguard Worker
434*6a54128fSAndroid Build Coastguard WorkerFix resize2fs's minimum size required for a file system so it doesn't
435*6a54128fSAndroid Build Coastguard Workerfail when "resize2fs -M" is run.  (Addresses RedHat Bugzilla: #519131)
436*6a54128fSAndroid Build Coastguard Worker
437*6a54128fSAndroid Build Coastguard WorkerDumpe2fs now prints summary information about the contents of the
438*6a54128fSAndroid Build Coastguard Workerjournal.
439*6a54128fSAndroid Build Coastguard Worker
440*6a54128fSAndroid Build Coastguard WorkerAvoid printing scary error messages when e2fsck starts running
441*6a54128fSAndroid Build Coastguard Workerproblems on low-memory systems, as it tends to panic and mislead the
442*6a54128fSAndroid Build Coastguard Workeruser.  (Addresses Debian Bug: #509529)
443*6a54128fSAndroid Build Coastguard Worker
444*6a54128fSAndroid Build Coastguard WorkerFix blkid's modules.dep parser so it handles compressed (.ko.gz)
445*6a54128fSAndroid Build Coastguard Workermodules files.  (Address Red Hat Bug: #518572)
446*6a54128fSAndroid Build Coastguard Worker
447*6a54128fSAndroid Build Coastguard WorkerFix tune2fs so it can add a journal when an extent-enabled file system
448*6a54128fSAndroid Build Coastguard Workeris mounted.  (Addresses Launchpad bug: #416648)
449*6a54128fSAndroid Build Coastguard Worker
450*6a54128fSAndroid Build Coastguard WorkerUpdate Czech, Indonesian, Polish and Vietnamese translations (from the
451*6a54128fSAndroid Build Coastguard WorkerTranslation Project).
452*6a54128fSAndroid Build Coastguard Worker
453*6a54128fSAndroid Build Coastguard WorkerUpdate/clarify man pages.  (Addresses Sourceforge Bug: #2822186)
454*6a54128fSAndroid Build Coastguard Worker
455*6a54128fSAndroid Build Coastguard WorkerFixed various Debian packaging issues --- see debian/changelog for
456*6a54128fSAndroid Build Coastguard Workerdetails.  (Addresses Debian Bugs: #540111)
457*6a54128fSAndroid Build Coastguard Worker
458*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
459*6a54128fSAndroid Build Coastguard Worker------------------
460*6a54128fSAndroid Build Coastguard Worker
461*6a54128fSAndroid Build Coastguard WorkerThe configure script supports the --with-cc, --with-ccopts, and
462*6a54128fSAndroid Build Coastguard Worker--with-ldopts options.  Instead, the more standard use of CC=,
463*6a54128fSAndroid Build Coastguard WorkerCCFLAGS=, and LDFLAGS= in the configure command line is used instead.
464*6a54128fSAndroid Build Coastguard WorkerAlso, --with-ld, which never worked, was also removed.
465*6a54128fSAndroid Build Coastguard Worker(Addresses Sourceforge Bug: #2843248)
466*6a54128fSAndroid Build Coastguard Worker
467*6a54128fSAndroid Build Coastguard WorkerThe in-tree header files are only used if the in-tree uuid or blkid
468*6a54128fSAndroid Build Coastguard Workerlibraries are used.  Otherwise, use the system-provided uuid or blkid
469*6a54128fSAndroid Build Coastguard Workerheader files if using the system-provided libraries.
470*6a54128fSAndroid Build Coastguard Worker
471*6a54128fSAndroid Build Coastguard WorkerFix some build failures caused by --disable-* configure options.
472*6a54128fSAndroid Build Coastguard Worker
473*6a54128fSAndroid Build Coastguard WorkerWork around a bug in autoconf 2.64.
474*6a54128fSAndroid Build Coastguard Worker
475*6a54128fSAndroid Build Coastguard Worker
476*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.9 (August 22, 2009)
477*6a54128fSAndroid Build Coastguard Worker==================================
478*6a54128fSAndroid Build Coastguard Worker
479*6a54128fSAndroid Build Coastguard WorkerFix a bug in e2fsck routines for reallocating an inode table which
480*6a54128fSAndroid Build Coastguard Workercould cause it to loop forever on an ext4 filesystem with the FLEX_BG
481*6a54128fSAndroid Build Coastguard Workerfilesystem feature with a relatively rare (and specific) filesystem
482*6a54128fSAndroid Build Coastguard Workercorruption.  This fix causes e2fsck to try to find space for a new
483*6a54128fSAndroid Build Coastguard Workerportion of the inode table in the containing flex_bg, and if that
484*6a54128fSAndroid Build Coastguard Workerfails, the new portion of the inode table will be allocated in any
485*6a54128fSAndroid Build Coastguard Workerfree space available in the filesystem.
486*6a54128fSAndroid Build Coastguard Worker
487*6a54128fSAndroid Build Coastguard WorkerMake e2fsck less annoying by only asking for permission to relocate a
488*6a54128fSAndroid Build Coastguard Workerblock group's inode table once, instead of for every overlapping
489*6a54128fSAndroid Build Coastguard Workerblock.  Similarly, only ask once to recompute the block group
490*6a54128fSAndroid Build Coastguard Workerchecksums, instead of once for each corrupted block group's checksum.
491*6a54128fSAndroid Build Coastguard Worker
492*6a54128fSAndroid Build Coastguard WorkerFix filefrag to avoid print the extent header if the FIEMAP ioctl is
493*6a54128fSAndroid Build Coastguard Workernot present, and it needs to fall back to using the FIBMAP ioctl.
494*6a54128fSAndroid Build Coastguard Worker
495*6a54128fSAndroid Build Coastguard WorkerFix filefrag to correctly print the number of extents for zero-length
496*6a54128fSAndroid Build Coastguard Workerfiles.  (Addresses Debian Bug: #540376)
497*6a54128fSAndroid Build Coastguard Worker
498*6a54128fSAndroid Build Coastguard WorkerFilefrag now has a -B option which forces the use of the FIBMAP ioctl
499*6a54128fSAndroid Build Coastguard Workerto more easily debug the FIBMAP code.
500*6a54128fSAndroid Build Coastguard Worker
501*6a54128fSAndroid Build Coastguard WorkerFixed filefrag for non-extent based files.
502*6a54128fSAndroid Build Coastguard Worker
503*6a54128fSAndroid Build Coastguard WorkerAdd a new program, e2freefrag, which displays information about the
504*6a54128fSAndroid Build Coastguard Workerfree space fragmentation in an ext2/3/4 filesystem.
505*6a54128fSAndroid Build Coastguard Worker
506*6a54128fSAndroid Build Coastguard WorkerFix inode resizing via tune2fs -I so that it works correctly in the
507*6a54128fSAndroid Build Coastguard Workerface of non-empty bad blocks inodes, and if the filesystem was
508*6a54128fSAndroid Build Coastguard Workerformatted using the "mke2fs -E stride=N" option for RAID arrays.
509*6a54128fSAndroid Build Coastguard Worker
510*6a54128fSAndroid Build Coastguard WorkerFix regression in ext2fs_extent_set_bmap() caused e2fsck -fD to fail
511*6a54128fSAndroid Build Coastguard Workerand corrupt large directories if the directory needs to shrink by more
512*6a54128fSAndroid Build Coastguard Workerthan one block.  (Addresses Debian Bug: #537510)
513*6a54128fSAndroid Build Coastguard Worker
514*6a54128fSAndroid Build Coastguard WorkerFix e2fsck's buggy_init_scritps=1 so that the if the last write and/or
515*6a54128fSAndroid Build Coastguard Workerlast mount times are in the future, they are corrected even if
516*6a54128fSAndroid Build Coastguard Workerbuggy_init_scripts is set.  This is needed because otherwise resize2fs
517*6a54128fSAndroid Build Coastguard Workerwill refuse to resize the filesystem, even after running "e2fsck -f".
518*6a54128fSAndroid Build Coastguard Worker(Addresses Launchpad bug: #373409)
519*6a54128fSAndroid Build Coastguard Worker
520*6a54128fSAndroid Build Coastguard WorkerE2fsck will now print much fuller information when the last mount time
521*6a54128fSAndroid Build Coastguard Workeror last written time is in the future, since most people can't seem to
522*6a54128fSAndroid Build Coastguard Workerbelieve their distribution has buggy init scripts, or they have a
523*6a54128fSAndroid Build Coastguard Workerfailed CMOS/RTS clock battery.
524*6a54128fSAndroid Build Coastguard Worker
525*6a54128fSAndroid Build Coastguard WorkerEnhance dumpe2fs to dump the extent information via the 'stat'
526*6a54128fSAndroid Build Coastguard Workercommand, and more detailed extent information via the new command
527*6a54128fSAndroid Build Coastguard Worker'dump_extents'.
528*6a54128fSAndroid Build Coastguard Worker
529*6a54128fSAndroid Build Coastguard WorkerUpdate French, Polish, Czech, and Swedish translations from the
530*6a54128fSAndroid Build Coastguard WorkerTranslation Project.
531*6a54128fSAndroid Build Coastguard Worker
532*6a54128fSAndroid Build Coastguard WorkerFixed various Debian packaging issues --- see debian/changelog for
533*6a54128fSAndroid Build Coastguard Workerdetails.
534*6a54128fSAndroid Build Coastguard Worker
535*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
536*6a54128fSAndroid Build Coastguard Worker------------------
537*6a54128fSAndroid Build Coastguard Worker
538*6a54128fSAndroid Build Coastguard WorkerFixed miscellaneous gcc -Wall warnings.
539*6a54128fSAndroid Build Coastguard Worker
540*6a54128fSAndroid Build Coastguard WorkerFixed memory leak in error path in ext2fs_block_iterate2()
541*6a54128fSAndroid Build Coastguard Worker
542*6a54128fSAndroid Build Coastguard WorkerFixed non-Linux build of the intl directory by adding support for the
543*6a54128fSAndroid Build Coastguard WorkerE/Q/V macros.
544*6a54128fSAndroid Build Coastguard Worker
545*6a54128fSAndroid Build Coastguard WorkerThe bitmap read/write functions now treat uninitialized bitmaps as
546*6a54128fSAndroid Build Coastguard Workerunallocated; this fixes a number of problems in all e2fsprogs for ext4
547*6a54128fSAndroid Build Coastguard Workerfilesystems when there is a need to allocate new blocks or inodes, and
548*6a54128fSAndroid Build Coastguard Workerthere aren't any free blocks or inodes in the already-used block
549*6a54128fSAndroid Build Coastguard Workergroups.
550*6a54128fSAndroid Build Coastguard Worker
551*6a54128fSAndroid Build Coastguard WorkerImprove ext2fs_extent_set_bmap() to avoid creating new extents which
552*6a54128fSAndroid Build Coastguard Workerget inserted into the extent tree when they are not needed.
553*6a54128fSAndroid Build Coastguard Worker
554*6a54128fSAndroid Build Coastguard Worker
555*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.8 (July 11, 2009)
556*6a54128fSAndroid Build Coastguard Worker================================
557*6a54128fSAndroid Build Coastguard Worker
558*6a54128fSAndroid Build Coastguard WorkerFix resize2fs's online resizing, fixing a regression which in
559*6a54128fSAndroid Build Coastguard Workere2fpsrogs 1.41.7.   (Addresses Debian Bug: #535452)
560*6a54128fSAndroid Build Coastguard Worker
561*6a54128fSAndroid Build Coastguard WorkerFix potential filesystem corruptions caused by using resize2fs to
562*6a54128fSAndroid Build Coastguard Workershrinking ext4 filesystems with extents enabled.  (Addresses Red Hat
563*6a54128fSAndroid Build Coastguard WorkerBug: #510379)
564*6a54128fSAndroid Build Coastguard Worker
565*6a54128fSAndroid Build Coastguard WorkerOptimize uuid_generate() to avoid running uuidd if it is not setuid or
566*6a54128fSAndroid Build Coastguard Workersetgid and the currently running program doesn't have write access to
567*6a54128fSAndroid Build Coastguard Workerthe uuidd work directory.
568*6a54128fSAndroid Build Coastguard Worker
569*6a54128fSAndroid Build Coastguard WorkerAdd safety checks (for non-Linux systems) so that uuidd isn't run with
570*6a54128fSAndroid Build Coastguard Workerfile descriptors 0, 1, and 2 closed; and if they are closed, uuidd
571*6a54128fSAndroid Build Coastguard Workerwill be careful not to close the file descriptor for its unix domain
572*6a54128fSAndroid Build Coastguard Workersocket when it detaches itself from the controlling tty.  Also add
573*6a54128fSAndroid Build Coastguard Workersafety checks so that if the unix domain socket between the uuid
574*6a54128fSAndroid Build Coastguard Workerlibrary and uuidd program is closed for any reason, both the library
575*6a54128fSAndroid Build Coastguard Workerand the uuidd will return an appropriate error code instead of looping
576*6a54128fSAndroid Build Coastguard Workerin an infinite loop.
577*6a54128fSAndroid Build Coastguard Worker
578*6a54128fSAndroid Build Coastguard WorkerThe e2croncheck script, which creates an LVM snapshot and then checks
579*6a54128fSAndroid Build Coastguard Workerthe ext3/4 filesystem via the LVM snapshot, has been added to the
580*6a54128fSAndroid Build Coastguard Workercontrib directory.
581*6a54128fSAndroid Build Coastguard Worker
582*6a54128fSAndroid Build Coastguard WorkerFix the filefrag program for files that have more than 144 extents.
583*6a54128fSAndroid Build Coastguard Worker
584*6a54128fSAndroid Build Coastguard WorkerUpdate French, Polish, Czech, Indonesian, and Swedish translations from
585*6a54128fSAndroid Build Coastguard Workerthe Translation Project.
586*6a54128fSAndroid Build Coastguard Worker
587*6a54128fSAndroid Build Coastguard WorkerFixed various Debian packaging issues --- see debian/changelog for
588*6a54128fSAndroid Build Coastguard Workerdetails.  (Addresses Debian Bug #535530)
589*6a54128fSAndroid Build Coastguard Worker
590*6a54128fSAndroid Build Coastguard WorkerUpdate/clarify man pages.
591*6a54128fSAndroid Build Coastguard Worker
592*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
593*6a54128fSAndroid Build Coastguard Worker------------------
594*6a54128fSAndroid Build Coastguard Worker
595*6a54128fSAndroid Build Coastguard WorkerFix compilation problem when configured with --disable-uuid.
596*6a54128fSAndroid Build Coastguard Worker
597*6a54128fSAndroid Build Coastguard WorkerDon't build uuidgen if configured with --disable-uuid.
598*6a54128fSAndroid Build Coastguard Worker
599*6a54128fSAndroid Build Coastguard WorkerAdd the new library function ext2fs_test_inode_bitmap_range(), and
600*6a54128fSAndroid Build Coastguard Workeroptimized ext2fs_test_block_bitmap_range(), which will be needed for
601*6a54128fSAndroid Build Coastguard Workerfuture optimizations for e2fsck.
602*6a54128fSAndroid Build Coastguard Worker
603*6a54128fSAndroid Build Coastguard WorkerFix makefile dependencies for libcom_err so that the Makefiles work
604*6a54128fSAndroid Build Coastguard Workerwell on non-GNU make program.  (Addresses Sourceforge Patches: #2813809)
605*6a54128fSAndroid Build Coastguard Worker
606*6a54128fSAndroid Build Coastguard WorkerEnhance the build system so that the full set of commands executed by
607*6a54128fSAndroid Build Coastguard Workerthe Makefiles are displayed, instead of the Linux kernel summary
608*6a54128fSAndroid Build Coastguard Workeroutput, if the build was configured with --enable-verbose-makecmds, or
609*6a54128fSAndroid Build Coastguard Workerif GNU make is in use and the V variable is non-null, i.e., via "make
610*6a54128fSAndroid Build Coastguard WorkerV=1".
611*6a54128fSAndroid Build Coastguard Worker
612*6a54128fSAndroid Build Coastguard Worker
613*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.7 (June 29, 2009)
614*6a54128fSAndroid Build Coastguard Worker================================
615*6a54128fSAndroid Build Coastguard Worker
616*6a54128fSAndroid Build Coastguard WorkerFix a bug in libext2fs which can cause e2fsck and resize2fs to write
617*6a54128fSAndroid Build Coastguard Workeruninitialized data into the portion of the inode beyond the first 128
618*6a54128fSAndroid Build Coastguard Workerbytes when operating on inodes mapped via extents; potentially
619*6a54128fSAndroid Build Coastguard Workercorrupting filesystems.
620*6a54128fSAndroid Build Coastguard Worker
621*6a54128fSAndroid Build Coastguard WorkerFix memory leaks in e2fsprogs, including a very large memory leak
622*6a54128fSAndroid Build Coastguard Workerwhich can cause e2fsck to run out of memory when checking very large
623*6a54128fSAndroid Build Coastguard Workerfilesystems using extents.
624*6a54128fSAndroid Build Coastguard Worker
625*6a54128fSAndroid Build Coastguard WorkerThe logsave program will now filter out the ^A and ^B characters when
626*6a54128fSAndroid Build Coastguard Workerwriting to the console.
627*6a54128fSAndroid Build Coastguard Worker
628*6a54128fSAndroid Build Coastguard WorkerHarden ext2fs_validate_entry() so that lsdel will not read beyond the
629*6a54128fSAndroid Build Coastguard Workerend of the block even if the directory block is corrupted.
630*6a54128fSAndroid Build Coastguard Worker
631*6a54128fSAndroid Build Coastguard WorkerFix debugfs from core dumping if the logdump command fails to open the
632*6a54128fSAndroid Build Coastguard Workeroutput file.
633*6a54128fSAndroid Build Coastguard Worker
634*6a54128fSAndroid Build Coastguard WorkerEnhance badblocks to print the currently tested block number when
635*6a54128fSAndroid Build Coastguard Workerinterrupted with ^C.
636*6a54128fSAndroid Build Coastguard Worker
637*6a54128fSAndroid Build Coastguard WorkerFix lsattr to exit with a non-zero status when it encounters errors.
638*6a54128fSAndroid Build Coastguard Worker(Addresses RedHat Bugzilla #489841)
639*6a54128fSAndroid Build Coastguard Worker
640*6a54128fSAndroid Build Coastguard WorkerFix e2fsprogs to use the same encoding for rec_len in 64k (and larger)
641*6a54128fSAndroid Build Coastguard Workerfilesystems as the kernel when encoding rec_len >= 64k.  For 64k
642*6a54128fSAndroid Build Coastguard Workerfilesystems (currently all that is supported by e2fsprogs, this is
643*6a54128fSAndroid Build Coastguard Workeronly a minor corner case).
644*6a54128fSAndroid Build Coastguard Worker
645*6a54128fSAndroid Build Coastguard WorkerResize2fs will now update the journal backup fields in the superblock
646*6a54128fSAndroid Build Coastguard Workerif the journal is moved; this avoids an unnecessary full fsck after
647*6a54128fSAndroid Build Coastguard Workerresizing the filesystem.  (Addresses RedHat Bugzilla: #505339)
648*6a54128fSAndroid Build Coastguard Worker
649*6a54128fSAndroid Build Coastguard WorkerFix libext2fs to properly initialize i_extra_size when creating the
650*6a54128fSAndroid Build Coastguard Workerjournal and resize inodes.
651*6a54128fSAndroid Build Coastguard Worker
652*6a54128fSAndroid Build Coastguard WorkerChange badblocks to allow block sizes larger than 4k.
653*6a54128fSAndroid Build Coastguard Worker
654*6a54128fSAndroid Build Coastguard WorkerFix the filefrag program so it correctly checks for errors from the
655*6a54128fSAndroid Build Coastguard Workerfiemap ioctl.
656*6a54128fSAndroid Build Coastguard Worker
657*6a54128fSAndroid Build Coastguard WorkerUpdate Chinese and Czech translation from the Translation Project.
658*6a54128fSAndroid Build Coastguard Worker
659*6a54128fSAndroid Build Coastguard WorkerClean up various man pages.  (Addresses Debian Bug #531385 and #523063)
660*6a54128fSAndroid Build Coastguard Worker
661*6a54128fSAndroid Build Coastguard Worker
662*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
663*6a54128fSAndroid Build Coastguard Worker------------------
664*6a54128fSAndroid Build Coastguard Worker
665*6a54128fSAndroid Build Coastguard WorkerAdd --disable-libuuid option to configure which uses an in-system
666*6a54128fSAndroid Build Coastguard Workerinstalled version of libuuid; the private version is enabled by
667*6a54128fSAndroid Build Coastguard Workerdefault.
668*6a54128fSAndroid Build Coastguard Worker
669*6a54128fSAndroid Build Coastguard WorkerAdd --valgrind-leakcheck option to the test_script program which runs
670*6a54128fSAndroid Build Coastguard Workervalgrind with the appropriate options to find memory leaks.
671*6a54128fSAndroid Build Coastguard Worker
672*6a54128fSAndroid Build Coastguard Worker
673*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.6 (May 30, 2009)
674*6a54128fSAndroid Build Coastguard Worker===============================
675*6a54128fSAndroid Build Coastguard Worker
676*6a54128fSAndroid Build Coastguard WorkerFix a critical regression in e2fsck introduced version 1.41.5 which
677*6a54128fSAndroid Build Coastguard Workercan undo updates to the block group descriptors after a journal replay.
678*6a54128fSAndroid Build Coastguard Worker
679*6a54128fSAndroid Build Coastguard WorkerIf e2fsck receives an I/O error while replaying the journal, prompt
680*6a54128fSAndroid Build Coastguard Workerthe user whether they want to ignore the error or not; if e2fsck is
681*6a54128fSAndroid Build Coastguard Workerrun in preen mode, force fsck to abort the preen pass.
682*6a54128fSAndroid Build Coastguard Worker
683*6a54128fSAndroid Build Coastguard WorkerFix a bug which would cause e2fsck to core dump if the filesystem
684*6a54128fSAndroid Build Coastguard Workercontains a corrupt extent header, and the user declines to clear the
685*6a54128fSAndroid Build Coastguard Workerinode.  (Addresses Sourceforge Bug: #2791794)
686*6a54128fSAndroid Build Coastguard Worker
687*6a54128fSAndroid Build Coastguard WorkerFix e2fsck to restart only once in the case of multiple block groups
688*6a54128fSAndroid Build Coastguard Workerwhich inodes in use that are in the uninitialized part of the block
689*6a54128fSAndroid Build Coastguard Workergroup's inode table.
690*6a54128fSAndroid Build Coastguard Worker
691*6a54128fSAndroid Build Coastguard WorkerTo reduce user confusion, if the /etc/mtab file is missing
692*6a54128fSAndroid Build Coastguard Workerext2fs_check_mount_point and ext2fs_check_if_mounted will return a
693*6a54128fSAndroid Build Coastguard Workernew, explicit error code to indicate this case.  This will cause
694*6a54128fSAndroid Build Coastguard Workere2fsck to give a clearer error message when the user is using buggy
695*6a54128fSAndroid Build Coastguard Workerrescue CD's that don't properly set up /etc/mtab.  (Addresses Debian
696*6a54128fSAndroid Build Coastguard WorkerBug: #527859)
697*6a54128fSAndroid Build Coastguard Worker
698*6a54128fSAndroid Build Coastguard WorkerFix e2fsck so that if the primary group descriptors are corrupted, but
699*6a54128fSAndroid Build Coastguard Workerthe backup superblock is entirely invalid, to go back to using (and
700*6a54128fSAndroid Build Coastguard Workerfixing) the primary group descriptors instead of completely giving up
701*6a54128fSAndroid Build Coastguard Workeron the filesystem.  (Addresses Debian Bug: #516820)
702*6a54128fSAndroid Build Coastguard Worker
703*6a54128fSAndroid Build Coastguard WorkerChange e2fsck to not abort a preen pass if an inode is found to have
704*6a54128fSAndroid Build Coastguard Workeri_file_acl_hi non-zero.  Ext3 filesystems don't care, and newer
705*6a54128fSAndroid Build Coastguard Workerkernels (post 2.6.29) will ignore this field.  So let's fix it
706*6a54128fSAndroid Build Coastguard Workerautomatically during the preen pass instead of forcing the user to fix
707*6a54128fSAndroid Build Coastguard Workerthis up manually.  (Addresses Debian Bug: #526524)
708*6a54128fSAndroid Build Coastguard Worker
709*6a54128fSAndroid Build Coastguard WorkerAdd resource tracking for e2fsck passes 1b through 1d.
710*6a54128fSAndroid Build Coastguard Worker
711*6a54128fSAndroid Build Coastguard WorkerSpeed up e2fsck by eliminating unnecessary journal checks if the
712*6a54128fSAndroid Build Coastguard Workerfilesystem is already mounted and doesn't need recovery (since the
713*6a54128fSAndroid Build Coastguard Workerkernel would have run the journal when the filesystem was mounted.)
714*6a54128fSAndroid Build Coastguard WorkerAlso speed up e2fsck by avoiding unnecessary block group descriptor
715*6a54128fSAndroid Build Coastguard Workerupdates in ext2fs_close().
716*6a54128fSAndroid Build Coastguard Worker
717*6a54128fSAndroid Build Coastguard WorkerAdd support to chattr to migrate inodes from using direct/indirect
718*6a54128fSAndroid Build Coastguard Workerblocks to extents.
719*6a54128fSAndroid Build Coastguard Worker
720*6a54128fSAndroid Build Coastguard WorkerAvoid corrupting the filesystem if there is an attempt to shrink a
721*6a54128fSAndroid Build Coastguard Workerfilesystem using resize2fs smaller than possible by making
722*6a54128fSAndroid Build Coastguard Workerext2fs_set_bmap() more careful not to delete the old block until the
723*6a54128fSAndroid Build Coastguard Workernew block can be inserted.  In addition, fix a bug in how the minimum
724*6a54128fSAndroid Build Coastguard Workersize of the filesystem (plus a safety margin) is calculated, and
725*6a54128fSAndroid Build Coastguard Workermodify resize2fs to refuse to shrink the filesystem below that minimum
726*6a54128fSAndroid Build Coastguard Workersize without the force flag.
727*6a54128fSAndroid Build Coastguard Worker
728*6a54128fSAndroid Build Coastguard WorkerTeach blkid to try to figure out DM device names using take advantage
729*6a54128fSAndroid Build Coastguard Workerof information in sysfs when running on kernels (2.6.29 and later)
730*6a54128fSAndroid Build Coastguard Workerwhich provide this information in /sys/block/dm-<N>/dm/name; this is
731*6a54128fSAndroid Build Coastguard Workermuch faster than scanning for the device number in /dev/mapper.
732*6a54128fSAndroid Build Coastguard Worker
733*6a54128fSAndroid Build Coastguard WorkerFix blkid to prefer /dev/mapper/<name> device names instead of the
734*6a54128fSAndroid Build Coastguard Workerprivate /dev/dm-X names.
735*6a54128fSAndroid Build Coastguard Worker
736*6a54128fSAndroid Build Coastguard WorkerAdd an -a option to debugfs's close_filesys command which writes any
737*6a54128fSAndroid Build Coastguard Workerchanges to the superblock or block group descriptors to all of the
738*6a54128fSAndroid Build Coastguard Workerbackup superblock locations.
739*6a54128fSAndroid Build Coastguard Worker
740*6a54128fSAndroid Build Coastguard WorkerAdd support to the filefrag program to use the FIEMAP ioctl.
741*6a54128fSAndroid Build Coastguard Worker
742*6a54128fSAndroid Build Coastguard WorkerUpdate Chinese translation from the Translation Project.
743*6a54128fSAndroid Build Coastguard Worker
744*6a54128fSAndroid Build Coastguard WorkerClean up various man pages.  (Addresses Red Hat Bugzilla: #502971 and
745*6a54128fSAndroid Build Coastguard WorkerLaunchpad Bug: #381854)
746*6a54128fSAndroid Build Coastguard Worker
747*6a54128fSAndroid Build Coastguard WorkerFixed various Debian packaging issues --- see debian/changelog for
748*6a54128fSAndroid Build Coastguard Workerdetails.  (Addresses Debian Bug #506064)
749*6a54128fSAndroid Build Coastguard Worker
750*6a54128fSAndroid Build Coastguard Worker
751*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
752*6a54128fSAndroid Build Coastguard Worker------------------
753*6a54128fSAndroid Build Coastguard Worker
754*6a54128fSAndroid Build Coastguard WorkerAdd test code to make sure e2fsck's problem.c doesn't have two problem
755*6a54128fSAndroid Build Coastguard Workercodes assigned to duplicate values.
756*6a54128fSAndroid Build Coastguard Worker
757*6a54128fSAndroid Build Coastguard WorkerAvoid using a hard-coded path for /bin/rm in block's test_probe.in.
758*6a54128fSAndroid Build Coastguard Worker(Addresses Sourceforge Bug: #2780205)
759*6a54128fSAndroid Build Coastguard Worker
760*6a54128fSAndroid Build Coastguard WorkerClean up e2fsck by removing #ifdef RESOURCE_TRACK by adding an empty
761*6a54128fSAndroid Build Coastguard Workerfunction declaration for init_resource_track() and
762*6a54128fSAndroid Build Coastguard Workerprint_resource_track() when RESOURCE_TRACK is not defined.
763*6a54128fSAndroid Build Coastguard Worker
764*6a54128fSAndroid Build Coastguard WorkerThe test code which is used to build the tst_csum program has been
765*6a54128fSAndroid Build Coastguard Workermoved from from tst_csum.c into csum.c under an #ifdef DEBUG to to
766*6a54128fSAndroid Build Coastguard Workeravoid compile problems caused by not having a prototype for
767*6a54128fSAndroid Build Coastguard Workerext2fs_group_desc_csum().  (Addresses Sourceforge Bug #2484331)
768*6a54128fSAndroid Build Coastguard Worker
769*6a54128fSAndroid Build Coastguard WorkerUpdate the config.guess and config.sub file to the latest from the
770*6a54128fSAndroid Build Coastguard WorkerFSF, to allow e2fsprogs to build on the avr32 platform.  (Addresses
771*6a54128fSAndroid Build Coastguard WorkerDebian Bug: #528330)
772*6a54128fSAndroid Build Coastguard Worker
773*6a54128fSAndroid Build Coastguard WorkerAdd a new function, ext2fs_extent_open2(), which behaves like
774*6a54128fSAndroid Build Coastguard Workerpext2fs_extent_open(), but uses the user-supplied inode structure
775*6a54128fSAndroid Build Coastguard Workerwhen opening an extent instead of reading the inode from disk.
776*6a54128fSAndroid Build Coastguard Worker
777*6a54128fSAndroid Build Coastguard Worker
778*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.5 (April 23, 2009)
779*6a54128fSAndroid Build Coastguard Worker=================================
780*6a54128fSAndroid Build Coastguard Worker
781*6a54128fSAndroid Build Coastguard WorkerFix a number of filesystem corruption bugs in resize2fs when growing
782*6a54128fSAndroid Build Coastguard Workeror shrinking ext4 filesystems off-line (i.e., when the ext4 filesystem
783*6a54128fSAndroid Build Coastguard Workeris not mounted).
784*6a54128fSAndroid Build Coastguard Worker
785*6a54128fSAndroid Build Coastguard WorkerDebugfs can now set i_file_acl_high via the set_inodes_field command,
786*6a54128fSAndroid Build Coastguard Workerand print a 64-bit file acl.  This is useful for debugging filesystem
787*6a54128fSAndroid Build Coastguard Workercorruptions where the high bits of i_file_acl_high are set.  E2fsck
788*6a54128fSAndroid Build Coastguard Workerwill detect and fix non-zero i_file_acl_high on 32-bit filesystems
789*6a54128fSAndroid Build Coastguard Workersince some Linux kernel versions pay attention to this field even when
790*6a54128fSAndroid Build Coastguard Workerthey shouldn't.
791*6a54128fSAndroid Build Coastguard Worker
792*6a54128fSAndroid Build Coastguard WorkerSpeed up e2fsck when checking clean filesystems by avoiding
793*6a54128fSAndroid Build Coastguard Workerunnecessary block reads, and coalescing the block group descriptor
794*6a54128fSAndroid Build Coastguard Workerblocks so they are read using a single read operation.
795*6a54128fSAndroid Build Coastguard Worker
796*6a54128fSAndroid Build Coastguard WorkerThe libuuid library will now close all file descriptors before running
797*6a54128fSAndroid Build Coastguard Workeruuidd.  This avoids problems when the calling program has open sockets
798*6a54128fSAndroid Build Coastguard Workerwhich then never get closed because uuidd is a long-running helper
799*6a54128fSAndroid Build Coastguard Workerdaemon.  (Addresses Launchpad bug: #305057)
800*6a54128fSAndroid Build Coastguard Worker
801*6a54128fSAndroid Build Coastguard WorkerIn order to avoid unnecessary full filesystem checks by e2fsck after
802*6a54128fSAndroid Build Coastguard Workeran on-line resize, e2fsck will ignore the NEEDS_RECOVERY flag set on
803*6a54128fSAndroid Build Coastguard Workerthe backup superblocks.  (Addresses Red Hat Bugzilla: #471925)
804*6a54128fSAndroid Build Coastguard Worker
805*6a54128fSAndroid Build Coastguard WorkerMke2fs will avoid trying to create the journal when run in
806*6a54128fSAndroid Build Coastguard Workersuperblock-only mode (mke2fs -S), since the left-over journal in the
807*6a54128fSAndroid Build Coastguard Workerinode table will cause mke2fs to fail.
808*6a54128fSAndroid Build Coastguard Worker
809*6a54128fSAndroid Build Coastguard WorkerFix a bug in libext2fs functions that check to see if a particular
810*6a54128fSAndroid Build Coastguard Workerdevice or filesystem image is mounted, which would cause these
811*6a54128fSAndroid Build Coastguard Workerfunctions to report that a file identical to the (relative) pathname
812*6a54128fSAndroid Build Coastguard Workerused by a pseudo-filesystem was mounted when in fact it was not.
813*6a54128fSAndroid Build Coastguard Worker
814*6a54128fSAndroid Build Coastguard WorkerUpdate Czech translation from the Translation Project.
815*6a54128fSAndroid Build Coastguard Worker
816*6a54128fSAndroid Build Coastguard WorkerAdd Chinese (simplified) translation from the Translation Project.
817*6a54128fSAndroid Build Coastguard Worker
818*6a54128fSAndroid Build Coastguard WorkerFix support for external journals (which was broken in e2fsprogs
819*6a54128fSAndroid Build Coastguard Worker1.41.4).
820*6a54128fSAndroid Build Coastguard Worker
821*6a54128fSAndroid Build Coastguard WorkerFix a regression in debugfs where the "stat" command when no
822*6a54128fSAndroid Build Coastguard Workerfilesystem was open would cause debugfs to crash with a segmentation
823*6a54128fSAndroid Build Coastguard Workerviolation.
824*6a54128fSAndroid Build Coastguard Worker
825*6a54128fSAndroid Build Coastguard WorkerStarting in the 2.6.29 linux kernel, the ext4 filesystem driver can be
826*6a54128fSAndroid Build Coastguard Workerused to support filesystems without a journal.  Update the blkid
827*6a54128fSAndroid Build Coastguard Workerlibrary so it understands this.
828*6a54128fSAndroid Build Coastguard Worker
829*6a54128fSAndroid Build Coastguard WorkerThe blkid library will remove an entry from the blkid cache
830*6a54128fSAndroid Build Coastguard Workerrepresenting the entire disk if partitions are found, since presumably
831*6a54128fSAndroid Build Coastguard Workerthe device previously had no partition table, but has now transitioned
832*6a54128fSAndroid Build Coastguard Workerto using a partition table.
833*6a54128fSAndroid Build Coastguard Worker
834*6a54128fSAndroid Build Coastguard WorkerAdd a check to mke2fs and tune2fs that the argument to the -m option
835*6a54128fSAndroid Build Coastguard Worker(which specifies the reserved ratio) must be greater than zero.
836*6a54128fSAndroid Build Coastguard Worker(Addresses Debian Bug: #517015)
837*6a54128fSAndroid Build Coastguard Worker
838*6a54128fSAndroid Build Coastguard WorkerAdd support for tracking the number kilobytes written to the
839*6a54128fSAndroid Build Coastguard Workerfilesystem via the superblock field s_kbytes_written.  It will be
840*6a54128fSAndroid Build Coastguard Workerupdated by the kernel as well as by e2fsprogs programs which write to
841*6a54128fSAndroid Build Coastguard Workerthe filesystem.  This is useful for tracking the wear to filesystems
842*6a54128fSAndroid Build Coastguard Workeron Solid State Drives.
843*6a54128fSAndroid Build Coastguard Worker
844*6a54128fSAndroid Build Coastguard WorkerFix compatibility issue in the libext2fs info file and makeinfo
845*6a54128fSAndroid Build Coastguard Workerversion 4.12.  (Addresses Red Hat Bugzilla: #481620)
846*6a54128fSAndroid Build Coastguard Worker
847*6a54128fSAndroid Build Coastguard WorkerUpdate/clarify man pages.  (Addresses Debian Bug: #515693, #365619)
848*6a54128fSAndroid Build Coastguard Worker
849*6a54128fSAndroid Build Coastguard WorkerFixed various Debian packaging issues --- see debian/changelog for
850*6a54128fSAndroid Build Coastguard Workerdetails. (Addresses Debian Bug: #506279)
851*6a54128fSAndroid Build Coastguard Worker
852*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
853*6a54128fSAndroid Build Coastguard Worker------------------
854*6a54128fSAndroid Build Coastguard Worker
855*6a54128fSAndroid Build Coastguard WorkerFix Hurd compilation problem in e2fsck and tune2fs (Addresses Debian
856*6a54128fSAndroid Build Coastguard WorkerBug: #521602)
857*6a54128fSAndroid Build Coastguard Worker
858*6a54128fSAndroid Build Coastguard WorkerFix various gcc compilation warnings and other programming cleanups.
859*6a54128fSAndroid Build Coastguard Worker(Addresses Red Hat Bugzilla: #486997)
860*6a54128fSAndroid Build Coastguard Worker
861*6a54128fSAndroid Build Coastguard WorkerAdd support for building the blkid command statically.
862*6a54128fSAndroid Build Coastguard Worker
863*6a54128fSAndroid Build Coastguard WorkerAdd support for disabling the built-in blkid library in favor of a
864*6a54128fSAndroid Build Coastguard Workersystem-installed blkid implementation via the configure option
865*6a54128fSAndroid Build Coastguard Worker--disable-libblkid.
866*6a54128fSAndroid Build Coastguard Worker
867*6a54128fSAndroid Build Coastguard Worker
868*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.4 (January 27, 2009)
869*6a54128fSAndroid Build Coastguard Worker===================================
870*6a54128fSAndroid Build Coastguard Worker
871*6a54128fSAndroid Build Coastguard WorkerFixed a bug which could sometimes cause blkid to return an exit value
872*6a54128fSAndroid Build Coastguard Workerof zero for a non-existent device (Addresses Debian Bug: #502541)
873*6a54128fSAndroid Build Coastguard Worker
874*6a54128fSAndroid Build Coastguard WorkerBlkid will now recognize ext3 filesystems that have the test_fs flag
875*6a54128fSAndroid Build Coastguard Workerset as ext3 filesystems.
876*6a54128fSAndroid Build Coastguard Worker
877*6a54128fSAndroid Build Coastguard WorkerThe blkid library will now recognize btrfs filesystems and swap
878*6a54128fSAndroid Build Coastguard Workerdevices currently used by user-level software suspend.
879*6a54128fSAndroid Build Coastguard Worker
880*6a54128fSAndroid Build Coastguard WorkerTune2fs now updates the block group checksums when changing the UUID
881*6a54128fSAndroid Build Coastguard Workerto avoid causing e2fsck to complain vociferously at the next reboot.
882*6a54128fSAndroid Build Coastguard Worker
883*6a54128fSAndroid Build Coastguard WorkerTune2fs's inode size resizing algorithms have been fixed so it is not
884*6a54128fSAndroid Build Coastguard Workervastly inefficient for moderate-to-large filesystems, due to some
885*6a54128fSAndroid Build Coastguard WorkerO(n**2) and O(n*m) algorithms that didn't scale well at all.
886*6a54128fSAndroid Build Coastguard Worker
887*6a54128fSAndroid Build Coastguard WorkerFix tune2fs's inode resizing algorithm so it will not corrupt
888*6a54128fSAndroid Build Coastguard Workerfilesystems laid out for RAID filesystems; in addition, tune2fs will
889*6a54128fSAndroid Build Coastguard Workerrefuse to change the inode size for filesystems that have the flex_bg
890*6a54128fSAndroid Build Coastguard Workerfeature enabled.  (This is a limitation in the current implementation
891*6a54128fSAndroid Build Coastguard Workerof tune2fs -I.)
892*6a54128fSAndroid Build Coastguard Worker
893*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41 broke debugfs's logdump command for normal ext3/4
894*6a54128fSAndroid Build Coastguard Workerfilesystems with 32-bit block numbers, when the headers for 64-bit
895*6a54128fSAndroid Build Coastguard Workerblock numbers was added.  This regression has been fixed.
896*6a54128fSAndroid Build Coastguard Worker
897*6a54128fSAndroid Build Coastguard WorkerDebugfs's ncheck command has been fixed to avoid printing garbage
898*6a54128fSAndroid Build Coastguard Workercharacters at the end of file names.
899*6a54128fSAndroid Build Coastguard Worker
900*6a54128fSAndroid Build Coastguard WorkerFix resize2fs for ext4 filesystems.  Some blocks that that need moving
901*6a54128fSAndroid Build Coastguard Workerwhen shrinking filesystems with uninit_bg feature would not be moved.
902*6a54128fSAndroid Build Coastguard WorkerIn addition, blocks and inode table blocks were not being correctly
903*6a54128fSAndroid Build Coastguard Workerfreed when shrinking filesystems with the flex_bg feable, which caused
904*6a54128fSAndroid Build Coastguard Workerresize2fs -M to fail.  Finally, when blocks are moved, make sure the
905*6a54128fSAndroid Build Coastguard Workeruninitialized flag in extents is preserved.
906*6a54128fSAndroid Build Coastguard Worker
907*6a54128fSAndroid Build Coastguard WorkerFix bug which caused dumpe2fs to abort with an error if run on a
908*6a54128fSAndroid Build Coastguard Workerfilesystem that contained an external journal.
909*6a54128fSAndroid Build Coastguard Worker
910*6a54128fSAndroid Build Coastguard WorkerSome distributions used "mke3fs" as an alias for "mkfs.ext3"; check
911*6a54128fSAndroid Build Coastguard Workerfor this in argv[0] to provide better legacy support for these
912*6a54128fSAndroid Build Coastguard Workerdistributions.  This is a practice that should NOT be continued,
913*6a54128fSAndroid Build Coastguard Workerhowever.
914*6a54128fSAndroid Build Coastguard Worker
915*6a54128fSAndroid Build Coastguard WorkerMke2fs now has a new option -U, which allows the user to specify the
916*6a54128fSAndroid Build Coastguard WorkerUUID that should be used for the new filesystem.
917*6a54128fSAndroid Build Coastguard Worker
918*6a54128fSAndroid Build Coastguard WorkerMke2fs will treat devices that are exactly 16TB as if they were 16TB
919*6a54128fSAndroid Build Coastguard Workerminus one block.  This allows users who have read that ext3 supports
920*6a54128fSAndroid Build Coastguard Workerup to 16TB filesystems and who create a 16TB LVM to not get confused,
921*6a54128fSAndroid Build Coastguard Workersince the true limit is really 16TB minus one block.
922*6a54128fSAndroid Build Coastguard Worker
923*6a54128fSAndroid Build Coastguard WorkerE2fsck will no longer abort an fsck run if block group has an errant
924*6a54128fSAndroid Build Coastguard WorkerINODE_UNINIT flag.
925*6a54128fSAndroid Build Coastguard Worker
926*6a54128fSAndroid Build Coastguard WorkerE2fsck now distinguishes between fragmented directories and fragmented
927*6a54128fSAndroid Build Coastguard Workerfiles in verbose mode statistics and in the fragcheck report.
928*6a54128fSAndroid Build Coastguard Worker
929*6a54128fSAndroid Build Coastguard WorkerFix a bug in e2fsck which caused it double count non-contiguous
930*6a54128fSAndroid Build Coastguard Workerextent-based inodes.
931*6a54128fSAndroid Build Coastguard Worker
932*6a54128fSAndroid Build Coastguard WorkerE2fsck will leave some slack space when repacking directories to allow
933*6a54128fSAndroid Build Coastguard Workerroom for a few directory entries to be added without causing leaf
934*6a54128fSAndroid Build Coastguard Workernodes to be split right away.
935*6a54128fSAndroid Build Coastguard Worker
936*6a54128fSAndroid Build Coastguard WorkerFix a bug which caused e2fsck to crash when it comes across a
937*6a54128fSAndroid Build Coastguard Workercorrupted interior node in an extent tree with the error message:
938*6a54128fSAndroid Build Coastguard Worker"Error1: Corrupt extent header on inode XXXXXX"
939*6a54128fSAndroid Build Coastguard Worker
940*6a54128fSAndroid Build Coastguard WorkerE2fsck problem descriptions involving the journal are no longer
941*6a54128fSAndroid Build Coastguard Workerreferred to as "ext3" problems, since ext4 filesystems also have
942*6a54128fSAndroid Build Coastguard Workerjournals.
943*6a54128fSAndroid Build Coastguard Worker
944*6a54128fSAndroid Build Coastguard WorkerFix a long-standing bug in e2fsck which would cause it to crash when
945*6a54128fSAndroid Build Coastguard Workerreplying journals for filesystems with block sizes greater than 8k.
946*6a54128fSAndroid Build Coastguard Worker
947*6a54128fSAndroid Build Coastguard WorkerUpdate Catalan translation from the Translation Project.
948*6a54128fSAndroid Build Coastguard Worker
949*6a54128fSAndroid Build Coastguard WorkerFixed various Debian packaging issues --- see debian/changelog for
950*6a54128fSAndroid Build Coastguard Workerdetails. (Addresses Debian Bugs: #503057, #502323, #511207)
951*6a54128fSAndroid Build Coastguard Worker
952*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
953*6a54128fSAndroid Build Coastguard Worker------------------
954*6a54128fSAndroid Build Coastguard Worker
955*6a54128fSAndroid Build Coastguard WorkerFix build of e2fsck.profiled, and add support for building profiled
956*6a54128fSAndroid Build Coastguard Workerbinaries in the misc directory if configured with --enable-profile.
957*6a54128fSAndroid Build Coastguard Worker
958*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_open() function now performs more sanity checks on the
959*6a54128fSAndroid Build Coastguard Workersuperblock to avoid potential divide by zero errors by other parts of
960*6a54128fSAndroid Build Coastguard Workerlibrary.
961*6a54128fSAndroid Build Coastguard Worker
962*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_read_inode_full() function now has a safety check to avoid
963*6a54128fSAndroid Build Coastguard Workera segmentation fault on corrupted filesystems.
964*6a54128fSAndroid Build Coastguard Worker
965*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_new_inode() function now has a sanity check so that if the
966*6a54128fSAndroid Build Coastguard Workers_first_inode field in the superblock is insane, it will return
967*6a54128fSAndroid Build Coastguard WorkerEXT2_ET_INODE_ALLOC_FAIL instead of returning an invalid inode number.
968*6a54128fSAndroid Build Coastguard Worker
969*6a54128fSAndroid Build Coastguard WorkerTo avoid segmentation faults, ext2fs_block_alloc_stats() and
970*6a54128fSAndroid Build Coastguard Workerext2fs_inode_alloc_stats() now validates the passed inode or block
971*6a54128fSAndroid Build Coastguard Workernumber to avoid overrunning an array boundary.
972*6a54128fSAndroid Build Coastguard Worker
973*6a54128fSAndroid Build Coastguard WorkerVarious signed/unsigned errors for variables containing block numbers
974*6a54128fSAndroid Build Coastguard Workerhave been fixed.
975*6a54128fSAndroid Build Coastguard Worker
976*6a54128fSAndroid Build Coastguard WorkerAccommodations for gcc's stupidity in not realizing that constant
977*6a54128fSAndroid Build Coastguard Workerstrings that do not contain a '%' character are safe to use in format
978*6a54128fSAndroid Build Coastguard Workerstrings have been made so that distributions that want to compile
979*6a54128fSAndroid Build Coastguard Workere2fsprogs with -Werror=format-security have an easier time doing so.
980*6a54128fSAndroid Build Coastguard Worker
981*6a54128fSAndroid Build Coastguard WorkerAdded a new 64-bit getsize interface, ext2fs_get_device_size2().
982*6a54128fSAndroid Build Coastguard Worker
983*6a54128fSAndroid Build Coastguard WorkerAdded the utility make-sparse.c to the contrib directory.
984*6a54128fSAndroid Build Coastguard Worker
985*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_block_iterate2() function now reflects errors from
986*6a54128fSAndroid Build Coastguard Workerext2fs_extent_set_bmap() to the caller, if the callback tries to
987*6a54128fSAndroid Build Coastguard Workerchange a block on an extent-based file, and ext2fs_extent_set_bmap()
988*6a54128fSAndroid Build Coastguard Workerfails for some reason (for example, there isn't enough disk space to
989*6a54128fSAndroid Build Coastguard Workersplit a node and expand the extent tree.
990*6a54128fSAndroid Build Coastguard Worker
991*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_block_iterate2() function will preserve the uninit flag in
992*6a54128fSAndroid Build Coastguard Workerextents when the callback function modifies a block in an extent-based
993*6a54128fSAndroid Build Coastguard Workerfile.
994*6a54128fSAndroid Build Coastguard Worker
995*6a54128fSAndroid Build Coastguard WorkerE2fsck will now flag filesystems that have an insane s_first_ino field
996*6a54128fSAndroid Build Coastguard Workerin their superblock, and attempt to use a backup superblock to repair
997*6a54128fSAndroid Build Coastguard Workerthe filesystem.
998*6a54128fSAndroid Build Coastguard Worker
999*6a54128fSAndroid Build Coastguard Worker
1000*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.3 (October 12, 2008)
1001*6a54128fSAndroid Build Coastguard Worker===================================
1002*6a54128fSAndroid Build Coastguard Worker
1003*6a54128fSAndroid Build Coastguard WorkerE2fsck has been fixed so it prints the correct inode number for
1004*6a54128fSAndroid Build Coastguard Workeruinit_bg related problems.
1005*6a54128fSAndroid Build Coastguard Worker
1006*6a54128fSAndroid Build Coastguard WorkerE2fsck will now offer to clear the test_fs flag if the ext4 filesystem
1007*6a54128fSAndroid Build Coastguard Workeris available on linux.  This can be disabled via a configuration
1008*6a54128fSAndroid Build Coastguard Workeroption in /etc/e2fsck.conf.
1009*6a54128fSAndroid Build Coastguard Worker
1010*6a54128fSAndroid Build Coastguard WorkerFix a file descriptor leak in libblkid when checking to see if an ext4
1011*6a54128fSAndroid Build Coastguard Workeror ext4dev module exists.
1012*6a54128fSAndroid Build Coastguard Worker
1013*6a54128fSAndroid Build Coastguard WorkerFix a bug in e2fsck where in preen mode, if there are disk I/O errors
1014*6a54128fSAndroid Build Coastguard Workerwhile trying to close a filesystem can lead to infinite loops.
1015*6a54128fSAndroid Build Coastguard Worker(Addresses Red Hat Bugzilla #465679)
1016*6a54128fSAndroid Build Coastguard Worker
1017*6a54128fSAndroid Build Coastguard WorkerFix a bug in resize2fs where passing in a bogus new size of 0 blocks
1018*6a54128fSAndroid Build Coastguard Workerwill cause resize2fs to drop into an infinite loop.  (Addresses Red
1019*6a54128fSAndroid Build Coastguard WorkerHat Bugzilla: #465984)
1020*6a54128fSAndroid Build Coastguard Worker
1021*6a54128fSAndroid Build Coastguard WorkerAdd a check in the Unix I/O functions in libext2fs so that when a
1022*6a54128fSAndroid Build Coastguard Workerdevice is opened read/write, return an error if the device is
1023*6a54128fSAndroid Build Coastguard Workerread-only using the BLKROGET ioctl.
1024*6a54128fSAndroid Build Coastguard Worker
1025*6a54128fSAndroid Build Coastguard WorkerFix debugfs's ncheck command so that it prints all of the names of
1026*6a54128fSAndroid Build Coastguard Workerhardlinks in the same directory.
1027*6a54128fSAndroid Build Coastguard Worker
1028*6a54128fSAndroid Build Coastguard WorkerFix a bug in libblkid so it correctly detects whether the ext4 and
1029*6a54128fSAndroid Build Coastguard Workerext4dev filesystems are available, so that the ext4dev->ext4
1030*6a54128fSAndroid Build Coastguard Workerfallback code works correctly.
1031*6a54128fSAndroid Build Coastguard Worker
1032*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
1033*6a54128fSAndroid Build Coastguard Worker------------------
1034*6a54128fSAndroid Build Coastguard Worker
1035*6a54128fSAndroid Build Coastguard WorkerFix a parallel build problem by making sure util/subst is built before
1036*6a54128fSAndroid Build Coastguard Workertrying to build the lib/et directory.  (Addresses Sourceforge Bug:
1037*6a54128fSAndroid Build Coastguard Worker#2143281)
1038*6a54128fSAndroid Build Coastguard Worker
1039*6a54128fSAndroid Build Coastguard WorkerUpdated "make depend" information for crc16.o
1040*6a54128fSAndroid Build Coastguard Worker
1041*6a54128fSAndroid Build Coastguard Worker
1042*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.2 (October 2, 2008)
1043*6a54128fSAndroid Build Coastguard Worker==================================
1044*6a54128fSAndroid Build Coastguard Worker
1045*6a54128fSAndroid Build Coastguard WorkerFix e2fsck's automatic blocksize detection.  This fixes a regression
1046*6a54128fSAndroid Build Coastguard Workerfrom e2fsprogs 1.40.7 which caused e2fsck to fail if the user
1047*6a54128fSAndroid Build Coastguard Workerspecifies a block number using the -b option if the blocksize option
1048*6a54128fSAndroid Build Coastguard Workerisn't also specified using -B.  Unfortunately, users very commonly
1049*6a54128fSAndroid Build Coastguard Workerinvoke e2fsck using "e2fsck -b 32768 /dev/hdXXX" to use the backup
1050*6a54128fSAndroid Build Coastguard Workersuperblock; in fact e2fsck will often suggest this kind of command
1051*6a54128fSAndroid Build Coastguard Workerline.  Oops.
1052*6a54128fSAndroid Build Coastguard Worker
1053*6a54128fSAndroid Build Coastguard WorkerEnhance the debugfs's "ncheck" command so it will print all of the
1054*6a54128fSAndroid Build Coastguard Workerpathnames for the specified inodes.  (Previously, in some cases ncheck
1055*6a54128fSAndroid Build Coastguard Workermight not print a pathname for an inode at all if some of the other
1056*6a54128fSAndroid Build Coastguard Workerinodes had multiple hard links.)
1057*6a54128fSAndroid Build Coastguard Worker
1058*6a54128fSAndroid Build Coastguard WorkerEnhance debugfs's "hash" command so the hash seed can be specified via
1059*6a54128fSAndroid Build Coastguard Workera command-line option.  In addition, allow the hash algorithm to be
1060*6a54128fSAndroid Build Coastguard Workerspecified by name instead of just by number.
1061*6a54128fSAndroid Build Coastguard Worker
1062*6a54128fSAndroid Build Coastguard WorkerFix e2fsck so that we don't accidentally print the translation file's
1063*6a54128fSAndroid Build Coastguard Workerheader when asking the user a custom question so there is no prompt
1064*6a54128fSAndroid Build Coastguard Workerdefined for a particular problem record.  For example, the question
1065*6a54128fSAndroid Build Coastguard Worker"Run journal anyway" will get the PO header tacked on because e2fsck
1066*6a54128fSAndroid Build Coastguard Workererroneously passed the null string to _().  (Addresses Launchpad Bug:
1067*6a54128fSAndroid Build Coastguard Worker#246892)
1068*6a54128fSAndroid Build Coastguard Worker
1069*6a54128fSAndroid Build Coastguard WorkerEnhance badblocks so that it can test a normal file which is greater
1070*6a54128fSAndroid Build Coastguard Workerthan 2GB.
1071*6a54128fSAndroid Build Coastguard Worker
1072*6a54128fSAndroid Build Coastguard WorkerEnhance the badblocks command so that it displays the time and
1073*6a54128fSAndroid Build Coastguard Workerpercentage complete when in verbose mode.  (Addresses Debian Bug:
1074*6a54128fSAndroid Build Coastguard Worker#429739)
1075*6a54128fSAndroid Build Coastguard Worker
1076*6a54128fSAndroid Build Coastguard WorkerFix a potential memory leak in a error handling path in debugfs's
1077*6a54128fSAndroid Build Coastguard Workerncheck function.
1078*6a54128fSAndroid Build Coastguard Worker
1079*6a54128fSAndroid Build Coastguard WorkerFix a potential memory corruption problem if a memory allocation fails
1080*6a54128fSAndroid Build Coastguard Workerin resize2fs.
1081*6a54128fSAndroid Build Coastguard Worker
1082*6a54128fSAndroid Build Coastguard WorkerFix the usage message for debugfs's logdump command to be consistent
1083*6a54128fSAndroid Build Coastguard Workerwith its man manpage.
1084*6a54128fSAndroid Build Coastguard Worker
1085*6a54128fSAndroid Build Coastguard WorkerUpdate Polish, French, Vietnamese, Dutch, Indonesian, German, Czech,
1086*6a54128fSAndroid Build Coastguard Workerand Swedish translations from the Translation Project.
1087*6a54128fSAndroid Build Coastguard Worker
1088*6a54128fSAndroid Build Coastguard WorkerAdd documentation for the file I/O functions to the libext2fs.texinfo
1089*6a54128fSAndroid Build Coastguard Workerfile.  (Addresses Debian Bug: #484877)
1090*6a54128fSAndroid Build Coastguard Worker
1091*6a54128fSAndroid Build Coastguard WorkerUpdate and clarified various man pages.  (Addresses Launchpad Bug
1092*6a54128fSAndroid Build Coastguard Worker#275272; Addresses Debian Bugs: #498100, #498101, #498102, #498103)
1093*6a54128fSAndroid Build Coastguard Worker
1094*6a54128fSAndroid Build Coastguard WorkerFixed various Debian packaging issues --- see debian/changelog for
1095*6a54128fSAndroid Build Coastguard Workerdetails. (Addresses Debian Bug: #497619)
1096*6a54128fSAndroid Build Coastguard Worker
1097*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
1098*6a54128fSAndroid Build Coastguard Worker------------------
1099*6a54128fSAndroid Build Coastguard Worker
1100*6a54128fSAndroid Build Coastguard WorkerFix a potential file descriptor leak in libcom_err by setting the
1101*6a54128fSAndroid Build Coastguard Workerclose-on-exec flag for a fd used for debugging.  (Addresses Red Hat
1102*6a54128fSAndroid Build Coastguard WorkerBugzilla #464689)
1103*6a54128fSAndroid Build Coastguard Worker
1104*6a54128fSAndroid Build Coastguard WorkerFix a potential race in libcom_err by using sem_post/sem_init.  SuSE
1105*6a54128fSAndroid Build Coastguard Workerhas been carrying a patch for a long time to prevent a largely
1106*6a54128fSAndroid Build Coastguard Workertheoretical race condition if a multi-threaded application adds and
1107*6a54128fSAndroid Build Coastguard Workerremoves error tables in multiple threads.  Unfortunately SuSE's
1108*6a54128fSAndroid Build Coastguard Workerapproach breaks compatibility by forcing applications to link and
1109*6a54128fSAndroid Build Coastguard Workercompile with the -pthread option; using pthread mutexes has
1110*6a54128fSAndroid Build Coastguard Workerhistorically been problematic.  We fix this by using sem_post/sem_init
1111*6a54128fSAndroid Build Coastguard Workerinstead.
1112*6a54128fSAndroid Build Coastguard Worker
1113*6a54128fSAndroid Build Coastguard WorkerFix e2fsprogs-libs build failure due to 'subs' target.  (Addresses
1114*6a54128fSAndroid Build Coastguard WorkerSourceforge Bug: #2087502)
1115*6a54128fSAndroid Build Coastguard Worker
1116*6a54128fSAndroid Build Coastguard WorkerAvoid linking e2initrd_helper, debugfs, blkid, and fsck with unneeded
1117*6a54128fSAndroid Build Coastguard Workerlibraries when using ELF shared libraries.
1118*6a54128fSAndroid Build Coastguard Worker
1119*6a54128fSAndroid Build Coastguard WorkerFix ELF shared library when building on systems that don't already
1120*6a54128fSAndroid Build Coastguard Workerhave the e2fsprogs shared libraries already installed.  (Addresses
1121*6a54128fSAndroid Build Coastguard WorkerSourceforge Bug: #2088537)
1122*6a54128fSAndroid Build Coastguard Worker
1123*6a54128fSAndroid Build Coastguard WorkerFix the pkg-config files so they work correctly when linking with
1124*6a54128fSAndroid Build Coastguard Workerstatic libraries and fix the include directory so programs don't have
1125*6a54128fSAndroid Build Coastguard Workerto use #include <ext2fs/ext2fs.h>, but can use #include <ext2fs.h>
1126*6a54128fSAndroid Build Coastguard Workerinstead.  (Addresses Sourceforge Bug: #2089537)
1127*6a54128fSAndroid Build Coastguard Worker
1128*6a54128fSAndroid Build Coastguard WorkerMake sure ext2fs_swab64() is compiled for all platforms, and not just
1129*6a54128fSAndroid Build Coastguard Workerfor x86.  (Addresses Debian Bug: #497515)
1130*6a54128fSAndroid Build Coastguard Worker
1131*6a54128fSAndroid Build Coastguard WorkerRemove the unused ext2fs_find_{first,ext}_bit_set() functions for all
1132*6a54128fSAndroid Build Coastguard Workernon-x86 platforms.  (They had been removed for x86 earlier.)
1133*6a54128fSAndroid Build Coastguard Worker
1134*6a54128fSAndroid Build Coastguard WorkerFix diet libc compilation support, which had bitrotted due to lack of
1135*6a54128fSAndroid Build Coastguard WorkerTLC.  Fixing this improves general portability.
1136*6a54128fSAndroid Build Coastguard Worker
1137*6a54128fSAndroid Build Coastguard WorkerWhen installing the link library when using ELF shared libraries,
1138*6a54128fSAndroid Build Coastguard Workeravoid using absolute pathnames if the link library and the shared
1139*6a54128fSAndroid Build Coastguard Workerlibrary are installed in the same directory.  (Addresses Sourceforge
1140*6a54128fSAndroid Build Coastguard WorkerBug: #1782913)
1141*6a54128fSAndroid Build Coastguard Worker
1142*6a54128fSAndroid Build Coastguard WorkerFix gen-tarball so it will work even if the top-level directory has
1143*6a54128fSAndroid Build Coastguard Workerbeen renamed to something other than "e2fsprogs".  Also make
1144*6a54128fSAndroid Build Coastguard Workergen-tarball print the size of the resulting tar.gz file.
1145*6a54128fSAndroid Build Coastguard Worker
1146*6a54128fSAndroid Build Coastguard Worker
1147*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.1 (September 1, 2008)
1148*6a54128fSAndroid Build Coastguard Worker====================================
1149*6a54128fSAndroid Build Coastguard Worker
1150*6a54128fSAndroid Build Coastguard WorkerMany people are forgetting to update their mke2fs.conf file, and this
1151*6a54128fSAndroid Build Coastguard Workercauses ext3, ext4, and ext4dev filesystems won't get created with the
1152*6a54128fSAndroid Build Coastguard Workerproper features enabled.  We address this in two ways.  First, mke2fs
1153*6a54128fSAndroid Build Coastguard Workerwill issue a warning if there is not definition for an ext3, ext4, or
1154*6a54128fSAndroid Build Coastguard Workerext4dev filesystem and the user is trying to create such a filesystem
1155*6a54128fSAndroid Build Coastguard Workertype.  Secondly, when installing from a source build, "make install"
1156*6a54128fSAndroid Build Coastguard Workerwill provide basic configuration file handling for /etc/mke2fs.conf.
1157*6a54128fSAndroid Build Coastguard WorkerIf it exists, and does not mention ext4dev, it will be moved aside to
1158*6a54128fSAndroid Build Coastguard Worker/etc/mke2fs.conf.e2fpsrogs-old and the new /etc/mke2fs.conf file will
1159*6a54128fSAndroid Build Coastguard Workerbe installed.  If the existing /etc/mke2fs.conf file does mention
1160*6a54128fSAndroid Build Coastguard Workerext4dev, then "make install" will install official mke2fs.conf file as
1161*6a54128fSAndroid Build Coastguard Worker/etc/mke2fs.conf.e2fsprogs-new and issue a message to the user that
1162*6a54128fSAndroid Build Coastguard Workerthey should look to see if any changes need to be merged.
1163*6a54128fSAndroid Build Coastguard Worker
1164*6a54128fSAndroid Build Coastguard WorkerThe mke2fs program will now create the journal in the middle of the
1165*6a54128fSAndroid Build Coastguard Workerfilesystem, since this minimizes seek times on average for fsync-heavy
1166*6a54128fSAndroid Build Coastguard Workerworkloads.  In addition, mke2fs will now create journals using extents
1167*6a54128fSAndroid Build Coastguard Workerfor filesystems that support them.  This results in a more efficient
1168*6a54128fSAndroid Build Coastguard Workerencoding for the journal since it eliminates the need for using
1169*6a54128fSAndroid Build Coastguard Workerindirect blocks.
1170*6a54128fSAndroid Build Coastguard Worker
1171*6a54128fSAndroid Build Coastguard WorkerThe mke2fs program will avoid allocating an extra block to the
1172*6a54128fSAndroid Build Coastguard Workerjournal.  (Addresses Sourceforge Bug: #1483791)
1173*6a54128fSAndroid Build Coastguard Worker
1174*6a54128fSAndroid Build Coastguard WorkerMke2fs will correctly enforce the prohibition against features
1175*6a54128fSAndroid Build Coastguard Worker(specifically read-only features) in revision 0 filesystems.  (Thanks
1176*6a54128fSAndroid Build Coastguard Workerto Benno Schulenberg for noticing this problem.)
1177*6a54128fSAndroid Build Coastguard Worker
1178*6a54128fSAndroid Build Coastguard WorkerMke2fs previously would occasionally create some slightly non-optimally
1179*6a54128fSAndroid Build Coastguard Workerplaced inode tables; this bug has been fixed.
1180*6a54128fSAndroid Build Coastguard Worker
1181*6a54128fSAndroid Build Coastguard WorkerThe mke2fs and tune2fs programs now print the correct usage message
1182*6a54128fSAndroid Build Coastguard Workerdescribing the maximum journal size.  (Addresses Debian Bug: #491620)
1183*6a54128fSAndroid Build Coastguard Worker
1184*6a54128fSAndroid Build Coastguard WorkerAdd support for setting the default hash algorithm used in b-tree
1185*6a54128fSAndroid Build Coastguard Workerdirectories in tune2fs (from a command-line option) or mke2fs (via
1186*6a54128fSAndroid Build Coastguard Workermke2fs.conf).  In addition, change the default hash algorithm to
1187*6a54128fSAndroid Build Coastguard Workerhalf_md4, since it is faster and better.
1188*6a54128fSAndroid Build Coastguard Worker
1189*6a54128fSAndroid Build Coastguard WorkerThe blkid library will now recognize MacOS hfsx filesystems, and
1190*6a54128fSAndroid Build Coastguard Workercorrectly extract the label and uuid for hfs, hfsx, and hfsplus
1191*6a54128fSAndroid Build Coastguard Workerfilesystems.  (Addresses Sourceforge Feature Requests: #2060292)
1192*6a54128fSAndroid Build Coastguard Worker
1193*6a54128fSAndroid Build Coastguard WorkerThe blkid library has improved detection of JFS and HPFS filesystems.
1194*6a54128fSAndroid Build Coastguard Worker(Addresses Launchpad Bug: #255255)
1195*6a54128fSAndroid Build Coastguard Worker
1196*6a54128fSAndroid Build Coastguard WorkerThe blkid library is now much more efficiently handling devicemapper
1197*6a54128fSAndroid Build Coastguard Workerdevices, mainly by no longer using the devicemapper library.  This can
1198*6a54128fSAndroid Build Coastguard Workerspeed up access for systems with a large number of device mapper
1199*6a54128fSAndroid Build Coastguard Workerdevices.
1200*6a54128fSAndroid Build Coastguard Worker
1201*6a54128fSAndroid Build Coastguard WorkerBlkid had a number of cache validation bugs in libblkid that have been
1202*6a54128fSAndroid Build Coastguard Workerfixed.   (Addresses Debian Bug: #493216)
1203*6a54128fSAndroid Build Coastguard Worker
1204*6a54128fSAndroid Build Coastguard WorkerResize2fs will now properly close out the "updating inode references"
1205*6a54128fSAndroid Build Coastguard Workerprogress bar so there is a newline printed before printing the final
1206*6a54128fSAndroid Build Coastguard Worker"resize is successful" message.
1207*6a54128fSAndroid Build Coastguard Worker
1208*6a54128fSAndroid Build Coastguard WorkerResize2fs will now correctly handle filesystems with extents and/o
1209*6a54128fSAndroid Build Coastguard Workeruninitialized block groups correctly when file/directory blocks need
1210*6a54128fSAndroid Build Coastguard Workerto relocated (i.e., when shrinking a filesystem or if the resize_inode
1211*6a54128fSAndroid Build Coastguard Workeris not present).  To support this, the ext2fs library now supports
1212*6a54128fSAndroid Build Coastguard Workerinitializing inode and block bitmaps that are not yet initialized when
1213*6a54128fSAndroid Build Coastguard Workerallocating them using ext2fs_new_block() and ext2fs_new_inode().  In
1214*6a54128fSAndroid Build Coastguard Workeraddition, e2fs_block_iterate2() can now support changing the location
1215*6a54128fSAndroid Build Coastguard Workerof interior nodes of an extent tree, and ext2fs_extent_set_bmap() has
1216*6a54128fSAndroid Build Coastguard Workerbeen optimized to avoid creating unnecessary new extents when updating
1217*6a54128fSAndroid Build Coastguard Workerthe location of blocks in the extent tree.  This will also help out
1218*6a54128fSAndroid Build Coastguard Workere2fsck's recovery of obscurely corrupted filesystems with extents,
1219*6a54128fSAndroid Build Coastguard Workerwhen blocks are claimed by multiple inodes.
1220*6a54128fSAndroid Build Coastguard Worker
1221*6a54128fSAndroid Build Coastguard WorkerAdd support for on-line resizing ext4 filesystem with the flex_bg
1222*6a54128fSAndroid Build Coastguard Workerfilesystem feature.  The method for doing so is not optimal, but to do
1223*6a54128fSAndroid Build Coastguard Workera better job will require kernel support.
1224*6a54128fSAndroid Build Coastguard Worker
1225*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41.0 introduced a bug in libext2fs which caused e2image and
1226*6a54128fSAndroid Build Coastguard Workerdebugfs programs to not be able to read e2image files; the signed
1227*6a54128fSAndroid Build Coastguard Workervs. unsigned bug in the code which read bitmaps from the e2image has
1228*6a54128fSAndroid Build Coastguard Workerbeen fixed.   (Addresses Debian Bug: #495830)
1229*6a54128fSAndroid Build Coastguard Worker
1230*6a54128fSAndroid Build Coastguard WorkerResize2fs is now correctly managing the directory in-use counts when
1231*6a54128fSAndroid Build Coastguard Workershrinking filesystems and directory inodes needed to be moved from one
1232*6a54128fSAndroid Build Coastguard Workerblock group to another.  This bug has been around since e2fsprogs
1233*6a54128fSAndroid Build Coastguard Worker1.26, and is largely harmless, but does cause a filesystem corruption
1234*6a54128fSAndroid Build Coastguard Workerwhich will be flagged by e2fsck after the filesystem has been shrunk.
1235*6a54128fSAndroid Build Coastguard Worker
1236*6a54128fSAndroid Build Coastguard WorkerE2fsck will no longer issue spurious complaints about the inode size
1237*6a54128fSAndroid Build Coastguard Workercaused by very large extent-based files, and by blocks reallocated
1238*6a54128fSAndroid Build Coastguard Workerusing fallocate() with the FALLOC_FL_KEEP_SIZE option.  (Addresses
1239*6a54128fSAndroid Build Coastguard WorkerKernel Bugzilla: #11341)
1240*6a54128fSAndroid Build Coastguard Worker
1241*6a54128fSAndroid Build Coastguard WorkerMke2fs will now set the creation timestamp on the lost+found directory
1242*6a54128fSAndroid Build Coastguard Workerand the root directory.  (More generally, all new inodes created using
1243*6a54128fSAndroid Build Coastguard Workerthe ext2fs library will correctly set the creation timestamp.)
1244*6a54128fSAndroid Build Coastguard Worker
1245*6a54128fSAndroid Build Coastguard WorkerE2fsck now correctly calculates ind/dind/tind statistics in the
1246*6a54128fSAndroid Build Coastguard Workerpresence of extent-based files.  In addition, "e2fsck -v" will report
1247*6a54128fSAndroid Build Coastguard Workerstatistics of the depth of extent trees in the filesystem.  E2fsck can
1248*6a54128fSAndroid Build Coastguard Workeralso give an inode fragmentation report using "e2fsck -E fragcheck"
1249*6a54128fSAndroid Build Coastguard Workerwhich can be useful when debugging the kernel block allocation
1250*6a54128fSAndroid Build Coastguard Workerroutines.
1251*6a54128fSAndroid Build Coastguard Worker
1252*6a54128fSAndroid Build Coastguard WorkerFix support for empty directory blocks in ext4 filesystems with 64k
1253*6a54128fSAndroid Build Coastguard Workerblocksize filesystems.
1254*6a54128fSAndroid Build Coastguard Worker
1255*6a54128fSAndroid Build Coastguard WorkerE2fsck will now print the depth of corrupt htree directories.
1256*6a54128fSAndroid Build Coastguard Worker
1257*6a54128fSAndroid Build Coastguard WorkerDebugfs's htree command now correctly understands extent-based
1258*6a54128fSAndroid Build Coastguard Workerdirectories.  It will also print out the minor hash as well as the
1259*6a54128fSAndroid Build Coastguard Workermajor hash.
1260*6a54128fSAndroid Build Coastguard Worker
1261*6a54128fSAndroid Build Coastguard WorkerDebugfs has a new command which will print the supported features of
1262*6a54128fSAndroid Build Coastguard Workere2fsprogs, to enable scripts to know whether the installed version of
1263*6a54128fSAndroid Build Coastguard Workere2fsprogs can support a specific feature.
1264*6a54128fSAndroid Build Coastguard Worker
1265*6a54128fSAndroid Build Coastguard WorkerDebugfs will now write files using extents for filesystems that
1266*6a54128fSAndroid Build Coastguard Workersupport them.
1267*6a54128fSAndroid Build Coastguard Worker
1268*6a54128fSAndroid Build Coastguard WorkerThe error message printed by "tune2fs -I" if the inode size was too
1269*6a54128fSAndroid Build Coastguard Workersmall was rather confusing, so it has been improved.  Also, we won't
1270*6a54128fSAndroid Build Coastguard Workertry to create an undo log until we know that command-line-specified
1271*6a54128fSAndroid Build Coastguard Workerparameters such as "tune2fs -I <inode size>" are valid.
1272*6a54128fSAndroid Build Coastguard Worker
1273*6a54128fSAndroid Build Coastguard WorkerGiven some filesystems found "in the wild" that had non-zero block
1274*6a54128fSAndroid Build Coastguard Workergroup checksums even though the uninit_bg/gdt_sum feature was not
1275*6a54128fSAndroid Build Coastguard Workerenabled, e2fsck would issue spurious error messages.  Teach
1276*6a54128fSAndroid Build Coastguard Workerext2fs_group_desc_csum_verify() to ignore the block group checksum
1277*6a54128fSAndroid Build Coastguard Workerentirely if the feature flag is not set.  (Addresses Debian Bug:
1278*6a54128fSAndroid Build Coastguard Worker#490637)
1279*6a54128fSAndroid Build Coastguard Worker
1280*6a54128fSAndroid Build Coastguard WorkerThe blkid program will now print out a user-friendly listing of all of
1281*6a54128fSAndroid Build Coastguard Workerthe block devices in the system and what they contain when given the
1282*6a54128fSAndroid Build Coastguard Worker-L option.  (Addresses Debian Bug: #490527)
1283*6a54128fSAndroid Build Coastguard Worker
1284*6a54128fSAndroid Build Coastguard WorkerThe filefrag program now has a more accurate calculation for the
1285*6a54128fSAndroid Build Coastguard Workernumber of ideal extents.  (Addresses Debian Bug: #458306)
1286*6a54128fSAndroid Build Coastguard Worker
1287*6a54128fSAndroid Build Coastguard WorkerThe test I/O manager is now enabled by default, but its overhead is
1288*6a54128fSAndroid Build Coastguard Workeronly incurred when it would be enabled via the TEST_IO_FLAGS or
1289*6a54128fSAndroid Build Coastguard WorkerTEST_IO_BLOCK environment variables.
1290*6a54128fSAndroid Build Coastguard Worker
1291*6a54128fSAndroid Build Coastguard WorkerTypographical errors in various program strings and usage messages
1292*6a54128fSAndroid Build Coastguard Workerhave been fixed; most of these were pointed out by the e2fsprogs
1293*6a54128fSAndroid Build Coastguard Workermessage catalog translators.  (Thanks, translators!)
1294*6a54128fSAndroid Build Coastguard Worker
1295*6a54128fSAndroid Build Coastguard WorkerUpdate and clarified various man pages, as well as some typographical
1296*6a54128fSAndroid Build Coastguard Workererrors in the libext2fs texinfo file.
1297*6a54128fSAndroid Build Coastguard Worker
1298*6a54128fSAndroid Build Coastguard WorkerFixed various Debian packaging issues --- see debian/changelog for
1299*6a54128fSAndroid Build Coastguard Workerdetails.
1300*6a54128fSAndroid Build Coastguard Worker
1301*6a54128fSAndroid Build Coastguard WorkerAdd Indonesian and update French, Polish, Dutch, German, Swedish,
1302*6a54128fSAndroid Build Coastguard WorkerCzech, and Vietnamese Translations.  (Addresses Debian Bugs: #313697,
1303*6a54128fSAndroid Build Coastguard Worker#401092)
1304*6a54128fSAndroid Build Coastguard Worker
1305*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
1306*6a54128fSAndroid Build Coastguard Worker------------------
1307*6a54128fSAndroid Build Coastguard Worker
1308*6a54128fSAndroid Build Coastguard WorkerFix portability problem with the badblocks group; for systems that
1309*6a54128fSAndroid Build Coastguard Workerdon't have nanosleep(), try using usleep() instead.
1310*6a54128fSAndroid Build Coastguard Worker
1311*6a54128fSAndroid Build Coastguard WorkerThe "make check" target in the e2fsck directory now sets
1312*6a54128fSAndroid Build Coastguard WorkerLD_LIBRARY_PATH before running the various e2fsck internal library
1313*6a54128fSAndroid Build Coastguard Workerregression tests.
1314*6a54128fSAndroid Build Coastguard Worker
1315*6a54128fSAndroid Build Coastguard WorkerThe crc32 regression test in the e2fsck library is now portable to
1316*6a54128fSAndroid Build Coastguard Workergreater variety of environments, including big-endian systems and
1317*6a54128fSAndroid Build Coastguard Workerwhen cross-building e2fsprogs for embedded systems.  (Addresses
1318*6a54128fSAndroid Build Coastguard WorkerSourceforge Bug: #2019287)
1319*6a54128fSAndroid Build Coastguard Worker
1320*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_extent_set_bmap() had some bugs when setting the first
1321*6a54128fSAndroid Build Coastguard Workerblock in a file, or when replacing a single block extent.  Those cases
1322*6a54128fSAndroid Build Coastguard Workerfortunately were came up relatively rarely when e2fsck was checking
1323*6a54128fSAndroid Build Coastguard Workerfiles, but caused some problems when resize2fs was shrinking
1324*6a54128fSAndroid Build Coastguard Workerextent-based files.
1325*6a54128fSAndroid Build Coastguard Worker
1326*6a54128fSAndroid Build Coastguard WorkerFix a potential core-dumping bug in libe2p's iterate_on_dir()
1327*6a54128fSAndroid Build Coastguard Workerfunction.
1328*6a54128fSAndroid Build Coastguard Worker
1329*6a54128fSAndroid Build Coastguard WorkerVarious ext2fs library functions --- ext2fs_block_iterate2(),
1330*6a54128fSAndroid Build Coastguard Workerext2fs_initialize() and ext2fs_extent_open() --- now correctly free
1331*6a54128fSAndroid Build Coastguard Workerallocated memory to avoid memory leaks in all of their error return
1332*6a54128fSAndroid Build Coastguard Workerpaths.
1333*6a54128fSAndroid Build Coastguard Worker
1334*6a54128fSAndroid Build Coastguard WorkerExt2ed was failing to build because masix support had been removed in
1335*6a54128fSAndroid Build Coastguard Workerthe rest of e2fsprogs, so ext2ed no longer has masix support, either.
1336*6a54128fSAndroid Build Coastguard Worker
1337*6a54128fSAndroid Build Coastguard WorkerThe configure script now respects the LDFLAGS environment variable if
1338*6a54128fSAndroid Build Coastguard Workerit is set when configure is called.  (Addresses Sourceforge Feature
1339*6a54128fSAndroid Build Coastguard WorkerRequest: #1937287)
1340*6a54128fSAndroid Build Coastguard Worker
1341*6a54128fSAndroid Build Coastguard WorkerLibuuid is now more portable to the Windows platform.  (Addresses
1342*6a54128fSAndroid Build Coastguard WorkerSourceforge Feature Request: #1937287)
1343*6a54128fSAndroid Build Coastguard Worker
1344*6a54128fSAndroid Build Coastguard WorkerThe configure script now uses AC_MSG_{RESULT,WARN,ERROR} instead of
1345*6a54128fSAndroid Build Coastguard Workerbare echo commands so that configure flags such as --quiet work
1346*6a54128fSAndroid Build Coastguard Workercorrectly.  (Addresses Sourceforge Patches: #2058794)
1347*6a54128fSAndroid Build Coastguard Worker
1348*6a54128fSAndroid Build Coastguard WorkerA few uses of sprintf have been removed from the ext2fs library to
1349*6a54128fSAndroid Build Coastguard Workermake life easier for bootloaders with a limited libc environment.
1350*6a54128fSAndroid Build Coastguard Worker(Addresses Sourceforge Bug: #2049120)
1351*6a54128fSAndroid Build Coastguard Worker
1352*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_read_inode() checks the validity of the inode number passed
1353*6a54128fSAndroid Build Coastguard Workerto it earlier, to avoid doing some needless work when it would fail
1354*6a54128fSAndroid Build Coastguard Workeranyway.
1355*6a54128fSAndroid Build Coastguard Worker
1356*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_open() checks the validity of the blocksize parameter
1357*6a54128fSAndroid Build Coastguard Workerpassed to it earlier, to avoid doing some needless work when it would
1358*6a54128fSAndroid Build Coastguard Workerfail anyway.
1359*6a54128fSAndroid Build Coastguard Worker
1360*6a54128fSAndroid Build Coastguard WorkerDisable a very annoying automatic "%.sh -> %" GNU make rule in the
1361*6a54128fSAndroid Build Coastguard Workertop-level Makefile.  That automatic rule is used to better support
1362*6a54128fSAndroid Build Coastguard WorkerSCCS, but it caused problems for a particular niche distribution which
1363*6a54128fSAndroid Build Coastguard Workerlikes to use configure.sh files to store the configure options used to
1364*6a54128fSAndroid Build Coastguard Workerbuild a package.  Unfortunately GNU make will use the configure.sh to
1365*6a54128fSAndroid Build Coastguard Workerreplace the configure script, resulting in a self-inflicted fork bomb
1366*6a54128fSAndroid Build Coastguard Workerleading to an out-of-memory crash.
1367*6a54128fSAndroid Build Coastguard Worker
1368*6a54128fSAndroid Build Coastguard WorkerTo support old GNU C compilers don't use C99/C++ comments, but only
1369*6a54128fSAndroid Build Coastguard WorkerK&R style comments, and don't try to use __builtin_expect if __GNUC__
1370*6a54128fSAndroid Build Coastguard Workeris less than 3.  (__builtin_expect is only supported for gcc versions
1371*6a54128fSAndroid Build Coastguard Worker2.96 and up, and it's tricky to check for gcc 2.95 vs gcc 2.96; since
1372*6a54128fSAndroid Build Coastguard Workerthis is an optimization, we only try to use __builtin_expect for gcc 3
1373*6a54128fSAndroid Build Coastguard Workerand up.)
1374*6a54128fSAndroid Build Coastguard Worker
1375*6a54128fSAndroid Build Coastguard WorkerIn e2fsck's crc routines, make sure we use WORDS_BIGENDIAN instead of
1376*6a54128fSAndroid Build Coastguard Worker__LITTLE_ENDIAN, which are only defined by glibc's header files and
1377*6a54128fSAndroid Build Coastguard Workerhence isn't portable.
1378*6a54128fSAndroid Build Coastguard Worker
1379*6a54128fSAndroid Build Coastguard WorkerFor the convenience for some distributions that need a static tune2fs,
1380*6a54128fSAndroid Build Coastguard Workerthe Makefile for misc/ now has a tune2fs.static target.
1381*6a54128fSAndroid Build Coastguard Worker
1382*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_block_iterate2() function now supports BLOCK_FLAG_APPEND
1383*6a54128fSAndroid Build Coastguard Workerfor extent-based files
1384*6a54128fSAndroid Build Coastguard Worker
1385*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_bmap() function now supports BMAP_ALLOC for extent-based
1386*6a54128fSAndroid Build Coastguard Workerfiles.
1387*6a54128fSAndroid Build Coastguard Worker
1388*6a54128fSAndroid Build Coastguard WorkerAll source files no longer have any trailing white space.
1389*6a54128fSAndroid Build Coastguard Worker
1390*6a54128fSAndroid Build Coastguard WorkerThe io_channel_read_blk64() and io_channel_write_blk64() functions are
1391*6a54128fSAndroid Build Coastguard Workernow functions instead of C preprocessor macros to provide better
1392*6a54128fSAndroid Build Coastguard Workerforward compatibility.
1393*6a54128fSAndroid Build Coastguard Worker
1394*6a54128fSAndroid Build Coastguard WorkerThe e2fpsrogs translation template now expands the @x abbreviation.
1395*6a54128fSAndroid Build Coastguard Worker
1396*6a54128fSAndroid Build Coastguard WorkerVarious namespace leakages in libblkid, libe2p, and libext2fs have
1397*6a54128fSAndroid Build Coastguard Workerbeen fixed.
1398*6a54128fSAndroid Build Coastguard Worker
1399*6a54128fSAndroid Build Coastguard WorkerFix a parallel build problem in e2fsprogs.
1400*6a54128fSAndroid Build Coastguard Worker
1401*6a54128fSAndroid Build Coastguard WorkerE2fsprogs is now more portable to Solaris.
1402*6a54128fSAndroid Build Coastguard Worker  * blkid no longer assumes that the TIOCGSIZE and TIOCGWINSZ ioctl's
1403*6a54128fSAndroid Build Coastguard Worker    are always present.
1404*6a54128fSAndroid Build Coastguard Worker  * Scripts do not assume that /bin/true is always in /bin
1405*6a54128fSAndroid Build Coastguard Worker  * Don't use __FUNCTION__ since Solaris's C99 doesn't support it.
1406*6a54128fSAndroid Build Coastguard Worker  * Flush stdio handles before calling setbuf(), since Solaris will
1407*6a54128fSAndroid Build Coastguard Worker    discard any pending output to the stream.
1408*6a54128fSAndroid Build Coastguard Worker  * Define _XOPEN_SOURCE to 600 since Solaris's header files are very
1409*6a54128fSAndroid Build Coastguard Worker    picky about which C compiler can be used for SUSv3 conformance.
1410*6a54128fSAndroid Build Coastguard Worker    Use of C99 is not compatible with SUSv2 (_XOPEN_SOURCE=500),
1411*6a54128fSAndroid Build Coastguard Worker    and C89 is not compatible with SUSv3 (_XOPEN_SOURCE=600).
1412*6a54128fSAndroid Build Coastguard Worker    Since we need some SUSv3 functions, consistently use SUSv3 so
1413*6a54128fSAndroid Build Coastguard Worker    that e2fsprogs will build on Solaris using c99.
1414*6a54128fSAndroid Build Coastguard Worker  * Solaris C99 does not support varargs C preprocessor macros
1415*6a54128fSAndroid Build Coastguard Worker  * Solaris header files pollute the C namespace if in/netinet.h
1416*6a54128fSAndroid Build Coastguard Worker    is included, which conflicts with e2fsprogs' use of the kmem_cache_t
1417*6a54128fSAndroid Build Coastguard Worker    typedef.
1418*6a54128fSAndroid Build Coastguard Worker  * Solaris ships with a pathetically ancient shell in /bin/sh so we
1419*6a54128fSAndroid Build Coastguard Worker    avoid the use of various more advanced shell constructs such as $().
1420*6a54128fSAndroid Build Coastguard Worker
1421*6a54128fSAndroid Build Coastguard WorkerThe "make rpm" command will now take some extra configure options from
1422*6a54128fSAndroid Build Coastguard Workerthe build environment without needing to patch the source tree.
1423*6a54128fSAndroid Build Coastguard Worker
1424*6a54128fSAndroid Build Coastguard WorkerThe ext2fs_add_dir_block() function will now grow the dblist more
1425*6a54128fSAndroid Build Coastguard Workeraggressively as an optimization to avoid copying the array too often.
1426*6a54128fSAndroid Build Coastguard Worker
1427*6a54128fSAndroid Build Coastguard WorkerThe e2fsck_write_bitmaps() will write the block and inode bitmaps
1428*6a54128fSAndroid Build Coastguard Workertogether instead of in two passes.
1429*6a54128fSAndroid Build Coastguard Worker
1430*6a54128fSAndroid Build Coastguard Worker
1431*6a54128fSAndroid Build Coastguard WorkerE2fsprogs 1.41 (July 10, 2008)
1432*6a54128fSAndroid Build Coastguard Worker==============================
1433*6a54128fSAndroid Build Coastguard Worker
1434*6a54128fSAndroid Build Coastguard WorkerAdd support for ext4 filesystem features, in particular extents,
1435*6a54128fSAndroid Build Coastguard Workeruninit_bg, flex_bg, huge_file, and dir_nlink features.  Also add
1436*6a54128fSAndroid Build Coastguard Workersupport for checking journal checksums.  Debugfs will print new
1437*6a54128fSAndroid Build Coastguard Workersuperblock and inode fields that were defined for ext4.  For example,
1438*6a54128fSAndroid Build Coastguard Workerthe nanosecond and i_version fields of an inode, and the
1439*6a54128fSAndroid Build Coastguard Workers_min_extra_isize and s_wanted_extra_isize fields from the superblock.
1440*6a54128fSAndroid Build Coastguard WorkerNote: Resize2fs doesn't currently support the combination of flex_bg
1441*6a54128fSAndroid Build Coastguard Workerand !resize_inode.  (Addresses Debian Bug: #388452, #425477)
1442*6a54128fSAndroid Build Coastguard Worker
1443*6a54128fSAndroid Build Coastguard WorkerTune2fs can support migrating a filesystem from using 128 byte inodes
1444*6a54128fSAndroid Build Coastguard Workerto 256 byte inodes, so it can take advantage of the full features of
1445*6a54128fSAndroid Build Coastguard Workerext4.
1446*6a54128fSAndroid Build Coastguard Worker
1447*6a54128fSAndroid Build Coastguard WorkerAdd support for "undo" support.  E2fsck and mke2fs can optionally
1448*6a54128fSAndroid Build Coastguard Workerrecord an undo log which can replayed by the program e2undo.
1449*6a54128fSAndroid Build Coastguard Worker
1450*6a54128fSAndroid Build Coastguard WorkerE2fsck could damage a filesystem by trying to relocate inode tables
1451*6a54128fSAndroid Build Coastguard Workerdue to corrupted block group descriptors, where the attempted inode
1452*6a54128fSAndroid Build Coastguard Workertable relocation would do far more harm than good.  E2fsck has been
1453*6a54128fSAndroid Build Coastguard Workerfixed to detect this these sorts of corrupted block group descriptors
1454*6a54128fSAndroid Build Coastguard Workermuch earlier in e2fsck processing, so it can try to use the backup
1455*6a54128fSAndroid Build Coastguard Workersuperblock and block group descriptors first.  This should be a much
1456*6a54128fSAndroid Build Coastguard Workerbetter strategy for recovering these types of corrupted filesystems.
1457*6a54128fSAndroid Build Coastguard Worker(Addresses Sourceforge Bug: #1840291)
1458*6a54128fSAndroid Build Coastguard Worker
1459*6a54128fSAndroid Build Coastguard WorkerE2fsck will display a more understandable message when the last check
1460*6a54128fSAndroid Build Coastguard Workerfield in the superblock is in the future.  (Addresses Debian Bug:
1461*6a54128fSAndroid Build Coastguard Worker#446005).
1462*6a54128fSAndroid Build Coastguard Worker
1463*6a54128fSAndroid Build Coastguard WorkerE2fsck now performs more extensive and careful checks of extended
1464*6a54128fSAndroid Build Coastguard Workerattributes stored in the inode.
1465*6a54128fSAndroid Build Coastguard Worker
1466*6a54128fSAndroid Build Coastguard WorkerEnhance mke2fs to print a more explanatory error message when
1467*6a54128fSAndroid Build Coastguard Workerext2fs_get_device_size() returns EFBIG.  (Addresses Debian Bug:
1468*6a54128fSAndroid Build Coastguard Worker#488663)
1469*6a54128fSAndroid Build Coastguard Worker
1470*6a54128fSAndroid Build Coastguard WorkerFix mke2fs to use a default block size of 4k when formatting an
1471*6a54128fSAndroid Build Coastguard Workerexternal journal device.  This is done by using a fixed filesystem
1472*6a54128fSAndroid Build Coastguard Workertype list that consists only of the single filesystem type "journal"
1473*6a54128fSAndroid Build Coastguard Workerwhen looking up configuration keys in /etc/mke2fs.conf.  (Addresses
1474*6a54128fSAndroid Build Coastguard WorkerDebian Bug: #488663)
1475*6a54128fSAndroid Build Coastguard Worker
1476*6a54128fSAndroid Build Coastguard WorkerSpeed up how mke2fs writes the journal data blocks by writing the disk
1477*6a54128fSAndroid Build Coastguard Workerblocks in larger chunks.
1478*6a54128fSAndroid Build Coastguard Worker
1479*6a54128fSAndroid Build Coastguard WorkerFix blkid handling of stale devices.  Fix a bug which could cause a
1480*6a54128fSAndroid Build Coastguard Workercore dump while garbage collecting the blkid cache, and assure that
1481*6a54128fSAndroid Build Coastguard Workerblkid_find_dev_with_tag() never returns a non-existent device.  Also,
1482*6a54128fSAndroid Build Coastguard Workerif a filesystem is found at a new /dev location, eliminate any
1483*6a54128fSAndroid Build Coastguard Workerduplicate stale entries which can not be verified.
1484*6a54128fSAndroid Build Coastguard Worker(Addresses Debian Bugs: #487758, #487783)
1485*6a54128fSAndroid Build Coastguard Worker
1486*6a54128fSAndroid Build Coastguard WorkerAdd more paranoid checks for LVM volumes and swap partitions in
1487*6a54128fSAndroid Build Coastguard Workerblkid's probe function, to reduce the chances of false positives.
1488*6a54128fSAndroid Build Coastguard Worker
1489*6a54128fSAndroid Build Coastguard WorkerThe mke2fs program now has a much more sophisticated system for
1490*6a54128fSAndroid Build Coastguard Workercontrolling configuration parameters of a newly created filesystem
1491*6a54128fSAndroid Build Coastguard Workerbased on a split filesystem and usage type system.  The -t option to
1492*6a54128fSAndroid Build Coastguard Workermke2fs was a deprecated alias to -c; it now specifies a filesystem
1493*6a54128fSAndroid Build Coastguard Workertype (ext2, ext3, ext4, etc.), while the -T option can now be a comma
1494*6a54128fSAndroid Build Coastguard Workerseparated usage list.  The filesystem type information and type
1495*6a54128fSAndroid Build Coastguard Workerinformation is used to extract configuration parameters from the
1496*6a54128fSAndroid Build Coastguard Worker/etc/mke2fs.conf file.
1497*6a54128fSAndroid Build Coastguard Worker
1498*6a54128fSAndroid Build Coastguard WorkerThe mke2fs program will no longer complain and request the -f option
1499*6a54128fSAndroid Build Coastguard Workerwhen the user tries to create a filesystem with greater than 2**31
1500*6a54128fSAndroid Build Coastguard Workerblocks.
1501*6a54128fSAndroid Build Coastguard Worker
1502*6a54128fSAndroid Build Coastguard WorkerWhen creating a filesystem for the GNU Hurd use a fs-type of Hurd and
1503*6a54128fSAndroid Build Coastguard Workeradjust the mke2fs.conf file so filesystems for the Hurd are created
1504*6a54128fSAndroid Build Coastguard Workerwith a blocksize of 4096 and inode size of 128, which is all it knows
1505*6a54128fSAndroid Build Coastguard Workerhow to handle.  (Addresses Debian Bug: #471977)
1506*6a54128fSAndroid Build Coastguard Worker
1507*6a54128fSAndroid Build Coastguard WorkerMke2fs will always make sure that lost+found always has at least 2
1508*6a54128fSAndroid Build Coastguard Workerblocks, even for filesystems with very large blocksizes (i.e., 64kb).
1509*6a54128fSAndroid Build Coastguard Worker
1510*6a54128fSAndroid Build Coastguard WorkerResize2fs will now print the minimum needed filesystem size if given
1511*6a54128fSAndroid Build Coastguard Workerthe -P option, and will resize the filesystem to the smallest possible
1512*6a54128fSAndroid Build Coastguard Workersize if given the -M option.
1513*6a54128fSAndroid Build Coastguard Worker
1514*6a54128fSAndroid Build Coastguard WorkerFix resize2fs to clean up the resize_inode if all of the reserved gdt
1515*6a54128fSAndroid Build Coastguard Workerblocks are consumed during an off-line resize.
1516*6a54128fSAndroid Build Coastguard Worker
1517*6a54128fSAndroid Build Coastguard WorkerThe "ls" command in debugfs now supports the -p option, which causes
1518*6a54128fSAndroid Build Coastguard Workerit to quote the filenames so that spaces or tabs in directory entries
1519*6a54128fSAndroid Build Coastguard Workerare easily visible.  (Addresses Red Hat Bugzilla: #149480; Addresses
1520*6a54128fSAndroid Build Coastguard WorkerSourceforge Feature Request: #1201667)
1521*6a54128fSAndroid Build Coastguard Worker
1522*6a54128fSAndroid Build Coastguard WorkerFix a potential off-by-one buffer overflow in the fs_device_name in an
1523*6a54128fSAndroid Build Coastguard Workere2image file.
1524*6a54128fSAndroid Build Coastguard Worker
1525*6a54128fSAndroid Build Coastguard WorkerThe chattr program will return a non-zero exit code in case of
1526*6a54128fSAndroid Build Coastguard Workerfailures, and error messages can be suppressed with the -f option.
1527*6a54128fSAndroid Build Coastguard Worker(Addresses Red Hat Bugzilla: #180596)
1528*6a54128fSAndroid Build Coastguard Worker
1529*6a54128fSAndroid Build Coastguard WorkerFix a bug in badblocks which caused it to overrun an array and likely
1530*6a54128fSAndroid Build Coastguard Workercrash if more than 8 test patterns are specified using the -t option.
1531*6a54128fSAndroid Build Coastguard Worker(Addresses Debian Bug: #487298)
1532*6a54128fSAndroid Build Coastguard Worker
1533*6a54128fSAndroid Build Coastguard WorkerAdd support to badblocks to limit how quickly it reads from the disk
1534*6a54128fSAndroid Build Coastguard Workerdrive (so it can be used for background scrubbing), and so it will
1535*6a54128fSAndroid Build Coastguard Workerabort after finding a given number of errors.
1536*6a54128fSAndroid Build Coastguard Worker
1537*6a54128fSAndroid Build Coastguard WorkerRemove support for the legacy big-endian filesystem format which only
1538*6a54128fSAndroid Build Coastguard Workerexisted on extremely long-dead PowerPC kernels almost a decade ago.
1539*6a54128fSAndroid Build Coastguard Worker
1540*6a54128fSAndroid Build Coastguard WorkerRemove MASIX support from e2fsprogs.
1541*6a54128fSAndroid Build Coastguard Worker
1542*6a54128fSAndroid Build Coastguard WorkerAdd I/O statistics reporting to e2fsck.
1543*6a54128fSAndroid Build Coastguard Worker
1544*6a54128fSAndroid Build Coastguard WorkerUpdate Vietnamese, Polish, French, Spanish, German, Catalan, Dutch,
1545*6a54128fSAndroid Build Coastguard WorkerCzech translations.
1546*6a54128fSAndroid Build Coastguard Worker
1547*6a54128fSAndroid Build Coastguard WorkerFixed various Debian packaging issues --- see debian/changelog for
1548*6a54128fSAndroid Build Coastguard Workerdetails.  (Addresses Debian Bugs: #487443, #487675, #490003)
1549*6a54128fSAndroid Build Coastguard Worker
1550*6a54128fSAndroid Build Coastguard WorkerFixed spelling mistakes, typos, and otherwise clarified man pages.
1551*6a54128fSAndroid Build Coastguard Worker(Addresses Debian Bugs: #393313, #487849, #440983, #440981)
1552*6a54128fSAndroid Build Coastguard Worker
1553*6a54128fSAndroid Build Coastguard WorkerProgrammer's Notes
1554*6a54128fSAndroid Build Coastguard Worker------------------
1555*6a54128fSAndroid Build Coastguard Worker
1556*6a54128fSAndroid Build Coastguard WorkerFactor out bitmap code in preparation for adding 64-bit new-style
1557*6a54128fSAndroid Build Coastguard Workerbitmaps.
1558*6a54128fSAndroid Build Coastguard Worker
1559*6a54128fSAndroid Build Coastguard WorkerFix gcc -Wall warnings
1560*6a54128fSAndroid Build Coastguard Worker
1561*6a54128fSAndroid Build Coastguard WorkerFix the pkg-config files so that private libraries are specified in
1562*6a54128fSAndroid Build Coastguard Worker"Libs.private:".
1563*6a54128fSAndroid Build Coastguard Worker
1564*6a54128fSAndroid Build Coastguard WorkerFix the libext2fs.texinfo manual so it builds with modern versions of
1565*6a54128fSAndroid Build Coastguard Workertexinfo.
1566*6a54128fSAndroid Build Coastguard Worker
1567*6a54128fSAndroid Build Coastguard WorkerSilence the makefile from showing the awk command used to build the
1568*6a54128fSAndroid Build Coastguard Worker
1569*6a54128fSAndroid Build Coastguard WorkerClean up the badblocks group so to make it more portable and robust.
1570*6a54128fSAndroid Build Coastguard Worker
1571*6a54128fSAndroid Build Coastguard WorkerAvoid using predictable filenames in /tmp in blkid's regression test
1572*6a54128fSAndroid Build Coastguard Workersuite.  Also remove bashism's in the regression test script.
1573*6a54128fSAndroid Build Coastguard Worker
1574*6a54128fSAndroid Build Coastguard WorkerIf the configure script is given --with-diet-libc, don't use thread
1575*6a54128fSAndroid Build Coastguard Workerlocal storage, since diet libc doesn't support TLS.  (Addresses
1576*6a54128fSAndroid Build Coastguard WorkerSourceforge Bug: #2000654)
1577*6a54128fSAndroid Build Coastguard Worker
1578*6a54128fSAndroid Build Coastguard WorkerFix the blkid regression test suite to tolerate older versions of
1579*6a54128fSAndroid Build Coastguard Workermkswap that don't support the -U option.
1580*6a54128fSAndroid Build Coastguard Worker
1581*6a54128fSAndroid Build Coastguard WorkerA few library routines have been converted to support 64-bit block
1582*6a54128fSAndroid Build Coastguard Workernumbers; in particular, the I/O manager functions, the test_io,
1583*6a54128fSAndroid Build Coastguard Workerinode_io, and unix_io managers have all be converted to support 64-bit
1584*6a54128fSAndroid Build Coastguard Workeroperation.
1585*6a54128fSAndroid Build Coastguard Worker
1586*6a54128fSAndroid Build Coastguard WorkerDebugfs can now be extended for use by test programs.  See
1587*6a54128fSAndroid Build Coastguard Workerlib/ext2fs/extents.c for an example for how it can be used.  The test
1588*6a54128fSAndroid Build Coastguard Workerprogram links against the debugfs object files, and provides
1589*6a54128fSAndroid Build Coastguard Workeradditional commands by defining an auxiliary libss command table.
1590*6a54128fSAndroid Build Coastguard Worker
1591*6a54128fSAndroid Build Coastguard WorkerThe lazy_bg filesystem feature, which was only used by developer's
1592*6a54128fSAndroid Build Coastguard Workertesting, has been removed since it has been largely supplanted by
1593*6a54128fSAndroid Build Coastguard Workeruninit_bg.  This also simplifies the code.
1594*6a54128fSAndroid Build Coastguard Worker
1595