Commit Graph

309 Commits (1d3a95111820e3e8e79b2ae18ed04f050cd3f0cb)

Author SHA1 Message Date
Theodore Ts'o da83cb6e48 Update version to 1.36-rc1, and change parsing algorithm for version strings
so that it deals with -rc version numbers correctly.
2005-01-06 23:52:45 -05:00
Theodore Ts'o dc8ce34637 Fix resize inode handling on big endian systems, by adding new routines
that read/write indirect blocks, byte swapping them if necessary.
2005-01-06 00:04:24 -05:00
Theodore Ts'o bc1b803214 dupfs.c (ext2fs_dup_handle): Make sure the new filesystem handle
has its own copy of the orig_super data structure.  (This
	is a better way of fixing a double-free problem in
	resize2fs which Fedora attempted to fix in 
	e2fsprogs-1.35-double_free.patch.   Addresses Red Hat
	Bugzilla #132707.)
2005-01-05 03:16:09 -05:00
Theodore Ts'o 71669d0541 Avoid some potential inode cache coherency problem caused by using the
byte-swapping options to e2fsck.  This was the cause of some hard to 
reproduce problems that had been reported in the past, and which the
resize_inode changes tickled in a much more repeatable fashion.
2004-12-23 21:49:05 -05:00
Theodore Ts'o 1d667534e9 ext2fs.h (BMAP_SET), bmap.c (ext2fs_bmap): Add support for new
flag, BMAP_SET, which allows the caller to set a
	particular logical->physical block mapping.
2004-12-23 13:55:34 -05:00
Theodore Ts'o 40abad6915 Clean up resize inode routines in ext2fs library. We no longer print
any debugging statements from within library code (always a bad idea), and
ext2fs_create_resize_inode() will return a proper error code if the 
resize inode is corrupt, instead of returning -1.
2004-12-23 07:45:04 -05:00
Theodore Ts'o 5d28e3be67 swapfs.c (ext2fs_swap_super): Byteswap the reserved_gdt_blocks
superblocks field.
2004-12-22 20:55:48 -05:00
Theodore Ts'o 1b4cd9c746 sparse.c (ext2fs_list_backups, ext2fs_bg_has_super),
res_gdt.c (list_backups), closefs.c (ext2fs_bg_has_super),
	ext2fs.h: Move ext2fs_list_backups() to res_gdt.c, and
	ext2fs_bg_has_super() back to closefs.c.  There's no
	reason for the new file, since list_backups() isn't being
	used by any other functions, and can be made static, and
	all users of the ext2fs filesystem will have to call
	ext2fs_close() anyway.
2004-12-15 18:06:52 -05:00
Theodore Ts'o 22c6821a24 Supplied changelog for resize inode patch. 2004-12-15 17:26:32 -05:00
Theodore Ts'o 522798d342 Add install-strip and install-shlibs-strip targets
Use Linux-kernel-style makefile output for "make install"

Update intl/Makefile.in to version from gettext 0.14.1
2004-12-15 11:28:55 -05:00
Theodore Ts'o 6d4022786d Use MKINSTALLDIRS macro so that the Makefiles can find the script
correctly.

Update Makefile dependencies.

Update "make depend" production so that it filters out comments
inserted by newer gcc compilers.

Remove sync from e2fsck's "make all" target.
2004-12-14 21:46:26 -05:00
Theodore Ts'o 2e8ca9a26b Add support for passing options to the io layer using the URL syntax. For
example, /tmp/test.img?offset=1024.  Multiple options can separated using
the & character, although at the moment the only option implemented is
the offset option in the unix_io layer.
2004-11-30 14:07:11 -05:00
Theodore Ts'o 47204ff983 Use Linux-kernel-style makefile output to make it easier to
see errors/warnings.
2004-11-30 10:52:27 -05:00
Theodore Ts'o 39dc1c45cb Add definition for the extents filesystem feature and inode flag.
Change the maximum allowable blocksize to be 65536.  This allows e2fsck to
check filesystems with a pagesize of 65536, and mke2fs to accept -b 65536.
Of course such a filesystem will not currently work on a Linux/x86 system,
at least not as of this writing!
2004-11-29 22:14:23 -05:00
Theodore Ts'o 1a9c8c35ba getsize.c (ext2fs_get_device_size): Add support for Windows
9x/NT under Cygwin.  Thanks to Sam Robb
	(samrobb@users.sourceforge.net) for pointing this and the
	suggested code patch.
2004-10-08 12:45:24 -04:00
Theodore Ts'o 9845cf5dbd Clean up the header file #include's for lib/blkid/getsize.c
and lib/ext2fs/getsize.c

In lib/blkid/getsize.c, include <sys/disk.h> if present since
this is where the DIOCGMEDIASIZE ioctl is defined on FreeBSD.
(Addresses Debian Bug #264630)
2004-09-17 19:07:03 -04:00
Theodore Ts'o 488f3c2dad On non-linux systems, use lseek64() if it is present in
ext2fs_llseek() and blkid_llseek().  (Addresses Debian bug #269044)
2004-09-17 17:47:12 -04:00
Theodore Ts'o 1ad54a940c Add ability for debugfs to use a separate source of data blocks when
reading from an e2image file.  (New -d option)

Add new functions ext2fs_get_data_io, ext2fs_set_data_io,
ext2fs_rewrite_to_io to libext2fs library.
2004-07-28 21:11:48 -04:00
Theodore Ts'o a63d126783 closefs.c (ext2fs_flush): Make sure the master superblock is
written last, and only after other I/O has been flushed to
	disk.  Thanks to Junfeng Yang from the Stanford
	Metacompilation group for pointing a potential ordering
	constraint problem if we don't write things out in the
	right order.
2004-05-26 21:29:14 -04:00
Theodore Ts'o a002e7e200 Implement the ability for the test_io mechanism to abort after n reads
or writes to a particular block.  The block is specified by
	TEST_IO_BLOCK environment variable, and the read/write count
	by the TEST_IO_READ_ABORT and TEST_IO_WRITE_ABORT environment
	variables.  The block data is now only dumped if the 0x10 bit
	is set in TEST_IO_FLAGS.
2004-05-26 21:04:07 -04:00
Theodore Ts'o 2625803ecf Use C99 stdint.h types instead of custom types in the uuid library. 2004-04-03 10:20:26 -05:00
Theodore Ts'o 2c5cfbcb99 Only use the BLKGETSIZE64 ioctl on Linux 2.6 since it is
unreliable in Linux 2.4.  (Addresses Debian Bug #236528).  

Fix typo in the ioctl used for Mac OS X.
2004-03-08 14:12:09 -05:00
Theodore Ts'o 85b8700344 Update getsize functions to use the Apple Darwin and Linux 64-bit
ioctl's.
2004-03-02 10:11:11 -05:00
Theodore Ts'o 434661f8d5 Patch from Brian Bergstrand to use the correct -fPIC flag for
Darwin in order to get rid of the compiler warning.
2004-02-29 22:46:49 -05:00
Theodore Ts'o b70b1167fe Update version number for e2fsprogs 1.35 release. 2004-02-28 10:52:35 -05:00
Theodore Ts'o e47fd8414d ext2fs.h (ext2fs_resize_mem): Fix C++ problem. (Addresses Red
Hat Bugzilla #112448; thanks Thomas Woerner from Red Hat.)
2004-02-21 21:04:30 -05:00
Theodore Ts'o 795afc4483 Fix libext2fs and debugfs to correctly deal with symlinks that have
extended attribute information.  (Addresses Debian Bug #232328)
2004-02-21 20:54:31 -05:00
Theodore Ts'o 1ba7a2f2b6 Fix a byte swap bugs, including one which caused e2fsck to
incorrectly treat as valid symlinks created with SE Linux 
(Debian bug #228723) as well as failing the f_journal test case on 
big endian systems due to the backup journal blocks not being swapped.
2004-01-30 01:48:06 -05:00
Theodore Ts'o 544349270e Fix gcc -Wall nitpicks 2003-12-07 01:28:50 -05:00
Theodore Ts'o ef344e13d2 Centeralize calculation of which blocks are reserved/used for
the superblock and block group descriptors into two functions:
ext2fs_reserve_super_and_bgd, found in lib/ext2fs/alloc_sb.c, and
ext2fs_super_and_bgd_lock, found in lib/ext2fs/close.c.

Change e2fsck/pass1.c (mark_table_blocks), lib/ext2fs/closefs.c
(ext2fs_flush), lib/ext2fs/initialize.c (ext2fs_initialize),
and misc/dumpe2fs.c (list_desc) to use these functions.

e2fsck/ChangeLog
    pass1.c (mark_table_blocks): Use the new function
    	ext2fs_reserve_super_and_bgd to calculate the blocks to be
    	reserved.

lib/ext2fs/ChangeLog
    closefs.c (ext2fs_super_and_bgd_loc): New function which
    	centralizes the calculation of the superblock and block
    	group descriptors.
    	(ext2fs_flush): Use ext2fs_super_and_bgd_lock to figure
    	out where to write the superblock and block group
    	descriptors.
    
    alloc_sb.c (ext2fs_reserve_super_and_bgd): New function which
    	reserves space in the block bitmap using
    	ext2fs_super_and_bgd_loc.
    
    initialize.c (ext2fs_initialize): Use
    	ext2fs_reserve_super_and_bgd to initialize the block bitmap.

misc/ChangeLog
    dumpe2fs.c (list_desc): Use ext2fs_super_and_bgd_loc to
    	determine the locations of the superblock and block group
     	descriptors.
2003-11-21 09:02:21 -05:00
Theodore Ts'o a435ec3449 Add support for backing up the journal inode location in the
superblock.  E2fsck will automatically save the journal information
in the superblock if it is not there already, and will use it if the
journal inode appears to be corrupted.  ext2fs_add_journal_inode() 
will also save the backup information, so that new filesystems
created by mke2fs and filesystems that have journals added via
tune2fs will also have journal location written to the superblock as
well.  Debugfs's logdump command has been enhanced so that it can
use the journal information in the superblock.

The debugfs man page has been improved to more fully describe the
logdump command.

Added two new functions, ext2fs_file_open2() and 
ext2fs_inode_io_intern2() which take a pointer to an inode structure;
this is needed so that e2fsck and debugfs can synthesize a
fake journal inode and use it to access the journal.
2003-08-21 00:40:26 -04:00
Theodore Ts'o c4e3d3f374 ext2fs_getmem(), ext2fs_free_mem(), and ext2fs_resize_mem()
all now take a 'void *' instead of a 'void **' in order to 
avoid pointer aliasing problems with GCC 3.x.
2003-08-01 09:41:07 -04:00
Theodore Ts'o 9c7ec17809 Update for 1.34 release. 2003-07-26 01:03:34 -04:00
Theodore Ts'o 48e6e81362 Fixx gcc -Wall nitpicks. 2003-07-06 00:36:48 -04:00
Theodore Ts'o 7d7bdd578b Fix bug in resize2fs which caused it to fail on filesystems with a
non-empty bad block list.  Resize2fs now discards any blocks on the 
badblock list which are no longer part of the filesystem as the result
of a filesystem shrink.  (Note: this means that shrinking and then
enlarging a filesystem is no longer a reversible operation;
information about bad blocks in the part of the filesystem
which is to be chopped off will be lost.)
2003-06-24 17:34:02 -04:00
Theodore Ts'o 93d5c38791 mke2fs.c (PRS, set_fs_defaults): If the sector size of the
device is larger than the default block size, then use the
	sector size of the device as the default block size.

getsectsize.c (ext2fs_get_device_sectsize): New function which
   	returns the hardware sector size (if it is available).
2003-05-21 17:28:29 -04:00
Theodore Ts'o b8a953157b unix_io.c: Add #ifdef NO_IO_CACHE which disables all userspace
caching by the unix_io layer.  Not enabled, only for
	debugging.
2003-05-13 23:41:29 -04:00
Theodore Ts'o 2a29f1354f Add --enable-test-io-debug configure option which causes e2fsck and
tune2fs to use the test I/O manager.

The test I/O manager has been changed to not do anything extra by 
default, unless the TEST_IO_FLAGS and/or TEST_IO_BLOCK environment
variables are set, which controls what I/O operations are logged and
a block number to watch, respectively.  The log messages are sent to
stderr by default, unless a filename is specified via the 
TEST_IO_LOGFILE environment variable.
2003-05-05 12:08:47 -04:00
Theodore Ts'o 68dbdc2f1d tst_badblocks.c (file_test): Use tmpfile() instead of mktemp(). 2003-05-03 16:39:50 -04:00
Theodore Ts'o 05a27b1d34 getsize.c (ext2fs_get_device_size): Allow windows code to get
the resize for filesystems that are in regular files.
2003-04-29 21:10:15 -04:00
Theodore Ts'o 71df0dc393 Update for 1.33 release.
Fix typo's in README.subset

Change debian control file so it doesn't bomb out if the EVMS FSIM
is not there, since it is not built on the Hurd.  Resolves Debian
bug #189687.
2003-04-21 16:17:09 -04:00
Theodore Ts'o afb6d709ba Use DYLD_LIBRAY_PATH so that "make check" works on
Darwin systems when building with shared libraries.
2003-04-21 16:12:34 -04:00
Theodore Ts'o a85e81a2ff configure.in: Remove CYGWIN definition; we will use the
automatically defined __CYGWIN__ instead.
2003-04-18 07:22:01 -04:00
Theodore Ts'o c6928406b3 Add Cygwin/Windows version of ext2fs_get_device_size() 2003-04-17 22:06:46 -04:00
Theodore Ts'o fff45483ed Add portability enhancements for Cygwin32 environment. 2003-04-13 00:44:19 -04:00
Theodore Ts'o 2c93113e6a Remove EXT2_FEATURE_RO_COMPAT_BTREE_DIR mention of since it's not
actually used, and may confuse people who are looking for
EXT2_FEATURE_COMPAT_DIR_INDEX, which is in use.
2003-04-11 13:26:21 -04:00
Theodore Ts'o 91835c151f Change compile_et to generate header files that use <et/com_err.h>
instead of <com_err.h>, so the current version of the header file 
is used.

Add a --build-tree option to compile_et to make sure that it uses
the et_?.awk files from the build tree.

Remove legacy support for varargs.h, K&R C, and pre-POSIX signal 
support.  Also fixed gcc -Wall nits.
2003-03-30 22:26:13 -05:00
Theodore Ts'o e71d87317a Add Apple/Darwin patches. 2003-03-14 02:13:48 -05:00
Theodore Ts'o 220c0040fb badblocks.c (ext2fs_u32_list_count), ext2fs.h: Add new function
which returns the number of entries in the list.
2003-03-14 00:59:42 -05:00
Theodore Ts'o 20754488a2 fileio.c (ext2fs_file_lseek): Fix bug added when adding 64-bit
support; avoid null dereference when ret_pos is NULL.
2003-03-10 14:32:09 -05:00