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