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