Changeset 0af6afa
- Timestamp:
- Apr 5, 2007, 5:10:20 PM (18 years ago)
- Branches:
- clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
- Children:
- 2085aed
- Parents:
- 32c37aa8
- Files:
-
- 2 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
BOOK/general.ent
r32c37aa8 r0af6afa 3 3 <!ENTITY month "04"> <!-- Use two digits --> 4 4 <!ENTITY month_name "April"> 5 <!ENTITY day "0 2"> <!-- Use two digits -->5 <!ENTITY day "05"> <!-- Use two digits --> 6 6 <!ENTITY year "2007"> <!-- Use four digits --> 7 7 -
BOOK/patches.ent
r32c37aa8 r0af6afa 265 265 <!ENTITY kbd-sparc_kbdrate-patch-size "1 KB"> 266 266 267 <!ENTITY silo-fixes-patch "silo-&silo-version;-fixes- 2.patch">268 <!ENTITY silo-fixes-patch-md5 " f3225c019b17f1d628f5d55b7a7aee1e">267 <!ENTITY silo-fixes-patch "silo-&silo-version;-fixes-3.patch"> 268 <!ENTITY silo-fixes-patch-md5 "e5a0ad2cb470ed1c895a731f2316a741"> 269 269 <!ENTITY silo-fixes-patch-size "668 KB"> 270 270 -
patches/silo-1.4.13-fixes-3.patch
r32c37aa8 r0af6afa 1 1 Submitted By: Joe Ciccone <joeciccone at crazyeyesoft dot com> 2 Date: 200 6-11-022 Date: 2007-04-05 3 3 Initial Package Version: 1.4.13 4 4 Upstream Status: Unknown … … 8 8 and work properly on pure64 systems. 9 9 10 diff -Naur silo-1.4.13.orig/Makefile silo-1.4.13/Makefile11 --- silo-1.4.13.orig/Makefile 2006-06-01 10:24:53.000000000 -070012 +++ silo-1.4.13/Makefile 2006-11-02 19:21:44.204761742 -080013 @@ -3,7 +3,7 @@14 15 # These only get built on Linux16 ifeq ($(OPSYS),Linux)17 - SUBDIRS = common first second first-isofs tilo18 + SUBDIRS = common first libext2fs second first-isofs tilo19 MANPAGES = maketilo.1 tilo.120 endif21 22 diff -Naur silo-1.4.13.orig/Rules.make silo-1.4.13/Rules.make23 --- silo-1.4.13.orig/Rules.make 2006-06-21 00:51:03.000000000 -070024 +++ silo-1.4.13/Rules.make 2006-11-02 19:21:44.204761742 -080025 @@ -1,12 +1,14 @@26 VERSION=1.4.1327 IMGVERSION=0.9928 RM=rm -f29 -# We want to force 32-bit builds30 -CC=gcc -m3231 -LD=ld -m elf32_sparc32 -AS=as33 -STRIP=strip34 -NM=nm35 +CC=$(CROSS_COMPILE)gcc36 +CC-SILO=$(CC) -m32 -Wa,-32 -I../include/emul_3237 +BUILD_CC=gcc38 +LD=$(CROSS_COMPILE)ld -m elf32_sparc39 +AS=$(CROSS_COMPILE)as40 +STRIP=$(CROSS_COMPILE)strip41 +NM=$(CROSS_COMPILE)nm42 +43 ELFTOAOUT=elftoaout44 BIN2H=../common/bin2h45 46 10 diff -Naur silo-1.4.13.orig/common/Makefile silo-1.4.13/common/Makefile 47 --- silo-1.4.13.orig/common/Makefile 2006-06-01 1 0:24:53.000000000 -070048 +++ silo-1.4.13/common/Makefile 200 6-11-02 19:21:44.204761742 -080011 --- silo-1.4.13.orig/common/Makefile 2006-06-01 13:24:53.000000000 -0400 12 +++ silo-1.4.13/common/Makefile 2007-04-03 17:02:53.000000000 -0400 49 13 @@ -5,19 +5,22 @@ 50 14 include ../Rules.make … … 77 41 + 78 42 diff -Naur silo-1.4.13.orig/first/Makefile silo-1.4.13/first/Makefile 79 --- silo-1.4.13.orig/first/Makefile 2006-06-01 10:24:53.000000000 -0700 80 +++ silo-1.4.13/first/Makefile 2006-11-02 19:21:44.204761742 -0800 43 --- silo-1.4.13.orig/first/Makefile 2006-06-01 13:24:53.000000000 -0400 44 +++ silo-1.4.13/first/Makefile 2007-04-05 19:48:31.000000000 -0400 45 @@ -1,4 +1,4 @@ 46 -## 47 +# 48 ## Linux Loader for SPARC 49 ## 50 # 81 51 @@ -13,7 +13,7 @@ 82 52 LDFLAGS=-N -Ttext 0x4000 … … 106 76 ultra: ultra.o 107 77 $(LD) $(LDFLAGS) -o ultra ultra.o 108 @@ -60,7 +60,7 @@ 78 @@ -56,11 +56,11 @@ 79 ultra.b: ultra 80 $(ELFTOAOUT) -o ultra.b ultra 81 echo -n 'SILO'$(IMGVERSION) | $(DD) of=ultra.b bs=8 conv=notrunc seek=3 count=1 82 - echo -n -e '\340' | $(DD) of=ultra.b bs=1 count=1 seek=7 conv=notrunc 83 + /bin/echo -n -e '\0340' | $(DD) of=ultra.b bs=1 count=1 seek=7 conv=notrunc 109 84 $(DD) if=/dev/zero of=ultra.b bs=4 count=1 seek=127 110 85 … … 115 90 generic: generic.o 116 91 $(LD) $(LDFLAGS) -o generic generic.o 117 @@ -74,7 +74,7 @@ 92 @@ -70,11 +70,11 @@ 93 generic.b: generic 94 $(ELFTOAOUT) -o generic.b generic 95 echo -n 'SILO'$(IMGVERSION) | $(DD) of=generic.b bs=8 conv=notrunc seek=3 count=1 96 - echo -n -e '\340' | $(DD) of=generic.b bs=1 count=1 seek=7 conv=notrunc 97 + echo -n -e '\0340' | $(DD) of=generic.b bs=1 count=1 seek=7 conv=notrunc 118 98 $(DD) if=/dev/zero of=generic.b bs=4 count=1 seek=255 119 99 … … 124 104 fd: fd.o 125 105 $(LD) $(LDFLAGS) -o fd fd.o 126 @@ -88,7 +88,7 @@ 106 @@ -84,11 +84,11 @@ 107 fd.b: fd 108 $(ELFTOAOUT) -o fd.b fd 109 echo -n 'SILO'$(IMGVERSION) | $(DD) of=fd.b bs=8 conv=notrunc seek=3 count=1 110 - echo -n -e '\340' | $(DD) of=fd.b bs=1 count=1 seek=7 conv=notrunc 111 + echo -n -e '\0340' | $(DD) of=fd.b bs=1 count=1 seek=7 conv=notrunc 127 112 $(DD) if=/dev/zero of=fd.b bs=4 count=1 seek=255 128 113 … … 134 119 $(LD) $(LDFLAGS) -o ieee32.b ieee32.o 135 120 diff -Naur silo-1.4.13.orig/first-isofs/Makefile silo-1.4.13/first-isofs/Makefile 136 --- silo-1.4.13.orig/first-isofs/Makefile 2006-06-01 1 0:24:53.000000000 -0700137 +++ silo-1.4.13/first-isofs/Makefile 200 6-11-02 19:21:44.204761742 -0800121 --- silo-1.4.13.orig/first-isofs/Makefile 2006-06-01 13:24:53.000000000 -0400 122 +++ silo-1.4.13/first-isofs/Makefile 2007-04-03 17:02:53.000000000 -0400 138 123 @@ -11,10 +11,10 @@ 139 124 all: $(NAME).b … … 159 144 $(RM) *.o $(NAME) $(NAME).b $(NAME).aout 160 145 diff -Naur silo-1.4.13.orig/include/emul_32/asm/elf.h silo-1.4.13/include/emul_32/asm/elf.h 161 --- silo-1.4.13.orig/include/emul_32/asm/elf.h 1969-12-31 1 6:00:00.000000000 -0800162 +++ silo-1.4.13/include/emul_32/asm/elf.h 200 6-11-02 19:21:44.204761742 -0800146 --- silo-1.4.13.orig/include/emul_32/asm/elf.h 1969-12-31 19:00:00.000000000 -0500 147 +++ silo-1.4.13/include/emul_32/asm/elf.h 2007-04-03 17:02:53.000000000 -0400 163 148 @@ -0,0 +1,162 @@ 164 149 +#ifndef __ASMSPARC_ELF_H … … 325 310 +#endif /* !(__ASMSPARC_ELF_H) */ 326 311 diff -Naur silo-1.4.13.orig/include/emul_32/asm/posix_types.h silo-1.4.13/include/emul_32/asm/posix_types.h 327 --- silo-1.4.13.orig/include/emul_32/asm/posix_types.h 1969-12-31 1 6:00:00.000000000 -0800328 +++ silo-1.4.13/include/emul_32/asm/posix_types.h 200 6-11-02 19:21:44.208761609 -0800312 --- silo-1.4.13.orig/include/emul_32/asm/posix_types.h 1969-12-31 19:00:00.000000000 -0500 313 +++ silo-1.4.13/include/emul_32/asm/posix_types.h 2007-04-03 17:02:53.000000000 -0400 329 314 @@ -0,0 +1,122 @@ 330 315 +#ifndef __ARCH_SPARC_POSIX_TYPES_H … … 451 436 +#endif /* !(__ARCH_SPARC_POSIX_TYPES_H) */ 452 437 diff -Naur silo-1.4.13.orig/include/emul_32/asm/types.h silo-1.4.13/include/emul_32/asm/types.h 453 --- silo-1.4.13.orig/include/emul_32/asm/types.h 1969-12-31 1 6:00:00.000000000 -0800454 +++ silo-1.4.13/include/emul_32/asm/types.h 200 6-11-02 19:21:44.208761609 -0800438 --- silo-1.4.13.orig/include/emul_32/asm/types.h 1969-12-31 19:00:00.000000000 -0500 439 +++ silo-1.4.13/include/emul_32/asm/types.h 2007-04-03 17:02:53.000000000 -0400 455 440 @@ -0,0 +1,41 @@ 456 441 +#ifndef _SPARC_TYPES_H … … 496 481 +#endif /* defined(_SPARC_TYPES_H) */ 497 482 diff -Naur silo-1.4.13.orig/include/ext2fs/ext2_err.h silo-1.4.13/include/ext2fs/ext2_err.h 498 --- silo-1.4.13.orig/include/ext2fs/ext2_err.h 2006-06-01 1 0:24:53.000000000 -0700499 +++ silo-1.4.13/include/ext2fs/ext2_err.h 200 6-11-02 19:21:44.208761609 -0800483 --- silo-1.4.13.orig/include/ext2fs/ext2_err.h 2006-06-01 13:24:53.000000000 -0400 484 +++ silo-1.4.13/include/ext2fs/ext2_err.h 2007-04-03 17:02:53.000000000 -0400 500 485 @@ -3,6 +3,8 @@ 501 486 * This file is automatically generated; please do not edit it. … … 545 530 /* for compatibility with older versions... */ 546 531 diff -Naur silo-1.4.13.orig/include/ext2fs/ext2_io.h silo-1.4.13/include/ext2fs/ext2_io.h 547 --- silo-1.4.13.orig/include/ext2fs/ext2_io.h 2006-06-01 1 0:24:53.000000000 -0700548 +++ silo-1.4.13/include/ext2fs/ext2_io.h 200 6-11-02 19:21:44.208761609 -0800532 --- silo-1.4.13.orig/include/ext2fs/ext2_io.h 2006-06-01 13:24:53.000000000 -0400 533 +++ silo-1.4.13/include/ext2fs/ext2_io.h 2007-04-03 17:02:53.000000000 -0400 549 534 @@ -27,6 +27,8 @@ 550 535 typedef struct struct_io_manager *io_manager; … … 593 578 extern io_manager unix_io_manager; 594 579 595 diff -Naur silo-1.4.13.orig/libext2fs/ChangeLog silo-1.4.13/libext2fs/ChangeLog596 --- silo-1.4.13.orig/libext2fs/ChangeLog 1969-12-31 16:00:00.000000000 -0800597 +++ silo-1.4.13/libext2fs/ChangeLog 2006-11-02 19:21:44.212761475 -0800598 @@ -0,0 +1,3311 @@599 +2006-06-30 Theodore Ts'o <tytso@mit.edu>600 +601 + * Release of E2fsprogs 1.38602 +603 +2005-06-30 Theodore Ts'o <tytso@mit.edu>604 +605 + * bitops.h, bitops.c (ext2fs_set_bit, ext2fs_clear_bit,606 + ext2fs_test_bit): Change these function prototypes to be607 + unsigned int's. Negative bit numbers were never allowed608 + (and never made any sense), so this should be a safe609 + change. This is needed to allow safe use of block numbers610 + greater than or equal to 2**31.611 +612 +2005-06-27 Stephen Tweedie <sct@redhat.com>613 +614 + * ext2fs.h (ext2fs_resize_mem): Fix C99 strict type aliasing615 + problems. Addresses Red Hat Bugzilla #161183.616 +617 +2005-06-19 Theodore Ts'o <tytso@mit.edu>618 +619 + * getsectsize.c (BLKSSZGET): Clean up test for when to manually620 + define the BLKSSZGET ioctl.621 +622 +2005-05-29 Theodore Ts'o <tytso@mit.edu>623 +624 + * ismounted.c (ext2fs_check_mount_point): Add test to see if the625 + device appears to be busy; this only works on Linux 2.6+626 + systems, but provides some additional bullet-proofing in627 + those cases.628 +629 +2005-05-08 Theodore Ts'o <tytso@mit.edu>630 +631 + * test_io.c (safe_getenv): Fix bug so it would fetch the right632 + environment variable.633 +634 +2005-04-09 Theodore Ts'o <tytso@mit.edu>635 +636 + * inode.c (ext2fs_write_new_inode),637 + ind_block.c (ext2fs_read_ind_block): Add missing return638 + value in error return case. (Otherwise we return garbage639 + instead of the error code.)640 +641 +2005-03-31 Theodore Ts'o <tytso@mit.edu>642 +643 + * test_io.c (test_open): If called by a setuid/setgid or an644 + otherwise privileged program, be paranoid and ignore the645 + TEST_IO_* environment variables.646 +647 +2005-03-21 Theodore Ts'o <tytso@mit.edu>648 +649 + * Release of E2fsprogs 1.37650 +651 +2005-03-21 Theodore Ts'o <tytso@mit.edu>652 +653 + * ext2_ext_attr.h (EXT2_XATTR_LEN, EXT2_XATTR_SIZE): Add new654 + convenience cpp macros.655 +656 +2005-03-20 Theodore Ts'o <tytso@mit.edu>657 +658 + * mkdir.c (ext2fs_mkdir): Call ext2fs_write_new_inode() instead of659 + ext2fs_write_inode().660 +661 + * inode.c (ext2fs_write_new_inode): New function which should be662 + used when the caller is writing an inode for the first663 + time. It makes sure that the extra portion of the large664 + inode is initialized properly.665 +666 +2005-03-18 Theodore Ts'o <tytso@mit.edu>667 +668 + * Makefile.in: Fix clean target to remove tst_getsectsize.669 +670 + * getsize.c (ext2fs_get_device_size): Check to see if the number671 + of blocks is greater than 2**32 when we are doing a binary672 + search to determine the device size. Thanks to Stephen673 + Tweedie for the patch.674 +675 +2006-02-05 Theodore Ts'o <tytso@mit.edu>676 +677 + * Release of E2fsprogs 1.36678 +679 +2005-02-05 Theodore Ts'o <tytso@mit.edu>680 +681 + * Makefile.in: Remove ext2fs.pc on a "make distclean"682 +683 +2005-02-04 Theodore Ts'o <tytso@mit.edu>684 +685 + * Makefile.in (clean): Remove tst_getsize when doing a make clean686 +687 +2005-02-03 Theodore Ts'o <tytso@mit.edu>688 +689 + * bitops.c: Make the generic functions more efficient.690 +691 + * bitops.h: Drop SPARC assembly code. It's less efficient than GCC692 + 3.4 compiled code and also triggers nasty compiler693 + warnings on sparc64. Thanks to Matthias Andree for his694 + analysis and suggestion.695 +696 +2005-01-27 Theodore Ts'o <tytso@mit.edu>697 +698 + * res_gdt.c (ext2fs_create_resize_inode): Create the resize inode699 + even if s_reserved_gdt_blocks is zero.700 +701 +2005-01-26 Theodore Ts'o <tytso@mit.edu>702 +703 + * ext2fs.pc.in: Add pkg-config files.704 +705 +2005-01-25 Theodore Ts'o <tytso@mit.edu>706 +707 + * ext2fs.h: Add definition of struct ext2_inode_large708 +709 + * ext2_fs.h: Add new function prototypes710 +711 + * ext_attr.c (ext2fs_read_ext_attr, ext2fs_write_ext_attr): The712 + ext2fs_swap_ext_attr() has been moved to swapfs.c, and713 + given a new argument, has_header.714 +715 + * swapfs.c (ext2fs_swap_ext_attr): Moved from ext_attr.c, and716 + takes an argument which controls whether or not there is717 + an EA header which needs to be byteswaped.718 + (ext2fs_swap_inode_full): New function which byte-swaps719 + the EA in inode.720 +721 + * inode.c (ext2fs_get_next_inode_full, ext2fs_read_inode_full,722 + ext2fs_write_inode_full): New functions, originally from723 + Alex Tomas, but which needed to be substantially fixed so724 + that the tests wouldn't cause major stack overwrite bugs725 + in byte-swapping is enabled.726 +727 +2005-01-18 Theodore Ts'o <tytso@mit.edu>728 +729 + * Makefile.in: Fix the kernel compile-time echo commands to be730 + consistent and portable731 +732 +2005-01-07 Theodore Ts'o <tytso@mit.edu>733 +734 + * unlink.c (ext2fs_unlink): If both the name and the inode number735 + are unspecified, then return an error, so that we don't do736 + something surprising such as unconditionally deleting the737 + first directory entry.738 + (unlink_proc): Delete directory entries by coalescing it739 + with the previous entry, to avoid directory fragmentation.740 +741 +2005-01-06 Theodore Ts'o <tytso@mit.edu>742 +743 + * version.c (ext2fs_parse_version_string): Change parsing744 + algorithm so that version strings such as 1.36-rc1 returns745 + a non-surprising result (i.e., 136, and not 1361).746 +747 +2005-01-05 Theodore Ts'o <tytso@mit.edu>748 +749 + * block.c (block_iterate_ind, block_iterate_dind,750 + block_iterate_tind): Move the code which byte swaps and751 + read/writes indirect blocks to ext2fs_{read,write}_ind_block.752 + This saves 400 bytes, and we need them for the753 + resize_inode handling.754 +755 + * ind_block.c (ext2fs_read_ind_block, ext2fs_write_ind_block): New756 + functions.757 +758 + * res_gdt.c (ext2fs_create_resize_inode): Use759 + ext2fs_{read,write}_ind_block so that byte swapping is760 + handled on big-endian systems.761 +762 + * dupfs.c (ext2fs_dup_handle): Make sure the new filesystem handle763 + has its own copy of the orig_super data structure. (This764 + is a better way of fixing a double-free problem in765 + resize2fs which Fedora attempted to fix in766 + e2fsprogs-1.35-double_free.patch. Addresses Red Hat767 + Bugzilla #132707.)768 +769 +2004-12-23 Theodore Ts'o <tytso@mit.edu>770 +771 + * inode.c (ext2fs_flush_icache): When flushing the icache, clear772 + the last-read block information as well.773 +774 + * ext2fs.h (BMAP_SET), bmap.c (ext2fs_bmap): Add support for new775 + flag, BMAP_SET, which allows the caller to set a776 + particular logical->physical block mapping.777 +778 + * ext2_err.et.in (EXT2_ET_SET_BMAP_NO_IND): New error code779 +780 + * initialize.c (calc_reserved_gdt_blocks): #ifdef out all781 + debugging printf statements.782 +783 + * res_gdt.c (ext2fs_create_resize_inode): Return784 + EXT2_ET_RESIZE_INODE_CORRUPT if the resize inode is not785 + what we expect. #ifdef out all debugging printf786 + statements.787 +788 + * ext2_err.et.in (EXT2_ET_RESIZE_INODE_CORRUPT): Add new error code.789 +790 +2004-12-22 Theodore Ts'o <tytso@mit.edu>791 +792 + * swapfs.c (ext2fs_swap_super): Byteswap the reserved_gdt_blocks793 + superblocks field.794 +795 +2004-12-15 Theodore Ts'o <tytso@mit.edu>796 +797 + * sparse.c (ext2fs_list_backups, ext2fs_bg_has_super),798 + res_gdt.c (list_backups), closefs.c (ext2fs_bg_has_super),799 + ext2fs.h: Move ext2fs_list_backups() to res_gdt.c, and800 + ext2fs_bg_has_super() back to closefs.c. There's no801 + reason for the new file, since list_backups() isn't being802 + used by any other functions, and can be made static, and803 + all users of the ext2fs filesystem will have to call804 + ext2fs_close() anyway.805 +806 +2004-12-15 Theodore Ts'o <tytso@mit.edu>807 +808 + * Applied resize inode patch from Andreas Dilger809 +810 + * res_gdt.c (ext2fs_create_resize_inode): New function that811 + creates the resize inode.812 +813 + * initialize.c (ext2fs_initialize): Reserve space for the resize814 + inode.815 +816 + * ext2fs.h (EXT2_LIB_FEATURE_COMPAT_SUPP): Add817 + EXT2_FEATURE_COMPAT_RESIZE_INODE to the list of supported818 + capabilities.819 + Add function prototypes for res_gdt.c and sparse.c.820 +821 + * closefs.c (ext2fs_super_and_bgd_loc): Take the reserved blocks822 + into account when calculating the number of overhead823 + blocks.824 +825 + * closefs.c (ext2fs_bg_has_super, test_root), sparse.c: Move these826 + functions to the new file sparse.c827 +828 + * alloc_sb.c (ext2fs_reserve_super_and_bgd): Reserve the blocks829 + saved in the resize inode as being in use.830 +831 + * ext2_err.et.in (EXT2_ET_RES_GDT_BLOCKS): Add new error code.832 +833 + * Makefile.in (srcdir): Add res_gdt.c and sparse.c to the ext2fs834 + library.835 +836 +2004-12-14 Theodore Ts'o <tytso@mit.edu>837 +838 + * Makefile.in: Use Linux-kernel-style makefile output for "make839 + install"840 +841 + * Makefile.in (installdirs): Use $(MKINSTALLDIRS) macro842 + Update dependencies.843 +844 +2004-11-30 Theodore Ts'o <tytso@mit.edu>845 +846 + * unix_io.c (unix_set_option): Add support for the offset option.847 +848 + * test_io.c (test_set_option): Add support for the set_option method.849 +850 + * ext2_io.h: Add new io_channel method, set_option(), and change851 + io_channel_write_byte() from a macro to a library function.852 +853 + * ext2fs.h, openfs.c(ext2fs_open2): New version of ext2fs_open854 + which adds a new parameter, io_options.855 + (ext2fs_open): If there is a question mark in the856 + filename, and no io_options are specified, assumed that857 + the text following the question mark are io_options.858 +859 + * io_manager.c, Makefile.in: New source file which contains860 + high-level functions for the io_channel layer.861 +862 + * freefs.c (ext2fs_free): Make sure we don't free the io_channel863 + if image_io is NULL.864 +865 + * Makefile.in: Use Linux-kernel-style makefile output to make it866 + easier to see errors/warnings.867 +868 +2004-11-29 Theodore Ts'o <tytso@mit.edu>869 +870 + * ext2_fs.h (EXT2_EXTENTS_FL, EXT3_FEATURE_INCOMPAT_EXTENTS,871 + EXT2_MAX_BLOCK_LOG_SIZE): Add definition for extent872 + feature and inode flag. Change maximum allowable block873 + size to be 65536.874 +875 +2004-10-08 Theodore Ts'o <tytso@mit.edu>876 +877 + * getsize.c (ext2fs_get_device_size): Add support for Windows878 + 9x/NT under Cygwin. Thanks to Sam Robb879 + (samrobb@users.sourceforge.net) for pointing this and the880 + suggested code patch.881 +882 +2004-09-17 Theodore Ts'o <tytso@mit.edu>883 +884 + * getsize.c: Clean up header #include's.885 +886 + * llseek.c (ext2fs_llseek): On non-linux systems, use lseek64() if887 + it is present. (Addresses Debian bug #269044)888 +889 +2004-07-28 Theodore Ts'o <tytso@mit.edu>890 +891 + * rw_bitmaps.c (read_bitmaps), block.c (block_iterate_ind,892 + block_iterate_dind, block_iterate_tind), inode.c893 + (ext2fs_read_inode): If EXT2_FLAG_IMAGE_FILE is set, so894 + read the metadata from fs->image_io instead of fs->io.895 +896 + * initialize.c (ext2fs_initialize), openfs.c (ext2fs_open):897 + Initialize fs->image_io to be the same as fs->io.898 +899 + * ext2_err.et.in (EXT2_ET_NOT_IMAGE_FILE): Add new error code.900 +901 + * openfs.c (ext2fs_get_data_io, ext2fs_set_data_io,902 + ext2fs_rewrite_to_io): New functions that allow903 + applications to manipulate fs->image_io and fs->io safely.904 +905 + * freefs.c (ext2fs_free): If fs->image_io is different fs->io,906 + then call io_channel_close on fs->image_io.907 +908 + * ext2fs.h: Add image_io element to the ext2_filsys data909 + structure. Add ext2fs_get_data_io() ext2fs_set_data_io(),910 + and ext2fs_rewrite_to_io() prototypes.911 +912 +2004-05-26 Theodore Ts'o <tytso@mit.edu>913 +914 + * closefs.c (ext2fs_flush): Make sure the master superblock is915 + written last, and only after other I/O has been flushed to916 + disk. Thanks to Junfeng Yang from the Stanford917 + Metacompilation group for pointing a potential ordering918 + constraint problem if we don't write things out in the919 + right order.920 +921 + * test_io.c: Implement the ability to abort after n reads or922 + writes to a particular block. The block is specified by923 + TEST_IO_BLOCK environment variable, and the read/write924 + count by the TEST_IO_READ_ABORT and TEST_IO_WRITE_ABORT925 + environment variables. The block data is now only dumped926 + if the 0x10 bit is set in TEST_IO_FLAGS.927 +928 +2004-04-03 Theodore Ts'o <tytso@mit.edu>929 +930 + * ext2_types.h.in: Remove check for _UUID_TYPES since uuid_types.h931 + is no longer used.932 +933 +2004-03-08 Theodore Ts'o <tytso@mit.edu>934 +935 + * getsize.c (ext2fs_get_device_size): Only use the BLKGETSIZE64936 + ioctl on Linux 2.6 since it is unreliable in Linux 2.4.937 + (Addresses Debian Bug #236528). Fix typo in the ioctl938 + used for Mac OS X.939 +940 +2004-03-02 Theodore Ts'o <tytso@mit.edu>941 +942 + * getsize.c (ext2fs_get_device_size): Update getsize functions to943 + use Apple Darwin and Linux 64-bit ioctl's944 +945 +2004-02-29 Brian Bergstrand <brian@bergstrand.org>946 +947 + * Makefile.in: Use $(BSDLIB_PIC_FLAG) to determine whether to use948 + -fpic or -fPIC949 +950 +2004-02-28 Theodore Ts'o <tytso@mit.edu>951 +952 + * Release of E2fsprogs 1.35953 +954 +2004-02-21 Theodore Ts'o <tytso@mit.edu>955 +956 + * ext2fs.h (ext2fs_resize_mem): Fix C++ problem. (Addresses Red957 + Hat Bugzilla #112448; thanks Thomas Woerner from Red Hat.)958 +959 +2004-02-14 Theodore Ts'o <tytso@mit.edu>960 +961 + * namei.c (follow_link): Correctly deal with symlinks that have962 + extended attribute information. (Addresses Debian Bug963 + #232328)964 +965 +2004-01-30 Theodore Ts'o <tytso@mit.edu>966 +967 + * ext2_fs.h: Reserve an extra 4 bytes for the journal backup,968 + which we're using due to a typo in the e2fsck code. (Oops)969 +970 + * swapfs.c (ext2fs_swap_inode): Fix byte swap bug which causes SE971 + Linux created symlinks with mandatory attributes to fail972 + to be properly handled on big endian systems. (Addresses973 + Debian Bug #228723).974 + (ext2fs_swap_super): Byte swap some new fields in the975 + superblock, including the journal backup fields.976 +977 +2003-12-02 Theodore Ts'o <tytso@mit.edu>978 +979 + * alloc.c, bb_inode.c, bitops.c, block.c, check_desc.c, closefs.c,980 + dir_iterate.c, dirblock.c, expanddir.c, ext2fs.h,981 + get_pathname.c, icount.c, imager.c, initalize.c, inode.c,982 + lookup.c, openfs.c, read_bb.c, read_bb_file.c,983 + rw_bitmaps.c, unix_io.c, unlink.c, write_bb_file.c: Fix984 + gcc -Wall complaints. Mainly marking variables as being985 + unsued, and catching signed vs. unsigned comparisons.986 +987 +2003-09-03 Theodore Ts'o <tytso@mit.edu>988 +989 + * closefs.c (ext2fs_super_and_bgd_loc): New function which990 + centralizes the calculation of the superblock and block991 + group descriptors.992 + (ext2fs_flush): Use ext2fs_super_and_bgd_lock to figure993 + out where to write the superblock and block group994 + descriptors.995 +996 + * alloc_sb.c (ext2fs_reserve_super_and_bgd): New function which997 + reserves space in the block bitmap using998 + ext2fs_super_and_bgd_loc.999 +1000 + * initialize.c (ext2fs_initialize): Use1001 + ext2fs_reserve_super_and_bgd to initialize the block bitmap.1002 +1003 +2003-08-20 Theodore Ts'o <tytso@mit.edu>1004 +1005 + * inode_io.c (ext2fs_inode_io_intern2), ext2fs.h: Add new function1006 + allows the caller to pass in the inode data structure.1007 +1008 + * fileio.c (ext2fs_file_open2), ext2fs.h: Add new function which1009 + allows the caller to pass in the inode to be used in the1010 + file I/O.1011 +1012 + * ext2_fs.h: Add a backup of the location of the journal inode1013 + blocks to the superblock.1014 +1015 + * mkjournal.c (write_journal_inode): Save the location of the1016 + journal inode to the backup location in the superblock.1017 +1018 +2003-08-01 Philipp Thomas <pthomas@suse.de>1019 +1020 + * alloc.c, badblocks.c, bb_inode.c, bitmaps.c, block.c, bmap.c,1021 + bmove.c, brel_ma.c, closefs.c, dblist.c, dblist_dir.c,1022 + dir_iterate.c, dirblock.c, dupfs.c, expanddir.c, ext2fs.h,1023 + ext_attr.c, fileio.c, freefs.c, get_pathname.c, icount.c,1024 + initialize.c, inode.c, inode_io.c, irel_ma.c, mkdir.c,1025 + mkjournal.c, namei.c, newdir.c, openfs.c, rs_bitmap.c,1026 + rw_bitmaps.c, test_io.c, unix_io.c: ext2fs_getmem(),1027 + ext2fs_free_mem(), and ext2fs_resize_mem() all now take a1028 + 'void *' instead of a 'void **' in order to avoid pointer1029 + aliasing problems with GCC 3.x.1030 +1031 +2003-07-25 Theodore Ts'o <tytso@mit.edu>1032 +1033 + * Release of E2fsprogs 1.341034 +1035 +2003-07-06 Theodore Ts'o <tytso@mit.edu>1036 +1037 + * kernel-jbd.h, flushb.c: Fix gcc -Wall nitpicks (indented cpp1038 + directives)1039 +1040 + * ext2_types.h.in, initialize.c: Fix gcc -Wall nitpicks1041 + (don't use #elsif)1042 +1043 + * ismounted.c: Fix gcc -Wall nitpicks (Don't use exit as a goto label)1044 +1045 + * llseek.c: Fix gcc -Wall nitpicks (don't use #elsif)1046 +1047 + * lookup.c, read_bb.c: Fix gcc -Wall nitpicks (indent1048 + non-traditional #pragma)1049 +1050 + * test_io.c: Fix gcc -Wall nitpicks (const/unsigned type issues)1051 +1052 +2003-06-24 <tytso@snap.thunk.org>1053 +1054 + * badblocks.c, ext2fs.h (ext2fs_u32_list_find,1055 + ext2fs_u32_list_test, ext2fs_u32_list_del,1056 + ext2fs_badblocks_list_del): Add functions to delete a1057 + block from the badblocks list.1058 + * tst_badblocks.c: Add test cases for ext2fs_badblocks_list_del().1059 +1060 +2003-05-21 Theodore Ts'o <tytso@mit.edu>1061 +1062 + * getsectsize.c (ext2fs_get_device_sectsize): New function which1063 + returns the hardware sector size (if it is available).1064 +1065 +2003-05-13 Theodore Ts'o <tytso@mit.edu>1066 +1067 + * unix_io.c: Add #ifdef NO_IO_CACHE which disables all userspace1068 + caching by the unix_io layer. Not enabled, only for1069 + debugging.1070 +1071 +2003-05-05 Theodore Ts'o <tytso@mit.edu>1072 +1073 + * test_io.c: Pay attention to the environment variables1074 + TEST_IO_LOGFILE, TEST_IO_FLAGS, and TEST_IO_BLOCK to1075 + determine whether or not we should log io activity, and to1076 + where.1077 +1078 +2003-05-03 Theodore Ts'o <tytso@mit.edu>1079 +1080 + * tst_badblocks.c (file_test): Use tmpfile() instead of mktemp().1081 +1082 +2003-04-29 Theodore Ts'o <tytso@mit.edu>1083 +1084 + * getsize.c (ext2fs_get_device_size): Allow windows code to get1085 + the resize for filesystems that are in regular files.1086 +1087 +2003-04-21 Theodore Ts'o <tytso@mit.edu>1088 +1089 + * Release of E2fsprogs 1.331090 +1091 +2003-04-21 Theodore Ts'o <tytso@mit.edu>1092 +1093 + * Makefile.in: Use DYLD_LIBRAY_PATH so that "make check" works on1094 + Darwin systems when building with shared libraries.1095 +1096 +2003-04-18 Theodore Ts'o <tytso@mit.edu>1097 +1098 + * unix_io.c: Use __CYGWIN__ instead of CYGWIN.1099 +1100 +2003-04-17 Theodore Ts'o <tytso@mit.edu>1101 +1102 + * getsize.c: Add Cygwin/Windows version of ext2fs_get_device_size()1103 +1104 +2003-04-12 Theodore Ts'o <tytso@mit.edu>1105 +1106 + * unix_io.c (raw_read_blk): Add Cygwin support (the Windows block1107 + device only accepts sector aligned read requests.1108 +1109 + * ismounted.c (check_mntent_file): Deal with OS's that don't1110 + define MNTOPT_RO.1111 +1112 + * imager.c: If the OS doesn't define ssize_t, typedef it to int.1113 +1114 +2003-04-11 Theodore Ts'o <tytso@mit.edu>1115 +1116 + * ext2_fs.h (EXT2_FEATURE_RO_COMPAT_BTREE_DIR): Comment out unused1117 + feature flag1118 +1119 +2003-03-30 Theodore Ts'o <tytso@mit.edu>1120 +1121 + * Makefile.in: Use the compile_et --build-tree option.1122 +1123 +2003-03-14 Theodore Ts'o <tytso@mit.edu>1124 +1125 + * getsize.c: Add support for Apple Darwin's ioctl to get the hard1126 + disk size.1127 +1128 + * badblocks.c (ext2fs_u32_list_count), ext2fs.h: Add new function1129 + which returns the number of entries in the list.1130 +1131 +2003-03-10 Theodore Ts'o <tytso@mit.edu>1132 +1133 + * fileio.c (ext2fs_file_lseek): Fix bug added when adding 64-bit1134 + support; avoid null dereference when ret_pos is NULL.1135 +1136 +2003-03-06 Theodore Tso <tytso@mit.edu>1137 +1138 + * ext2_types.h.in: Don't redefine types if other e2fsprogs1139 + *_types.h files have been included already.1140 +1141 + * kernel-jbd.h: Use C99 variadic cpp macros if not using GCC.1142 + (Older GCC's don't support the C99 variadic macros.)1143 +1144 + * flushb.c (ext2fs_sync_device),1145 + ismounted.c (ext2fs_check_mount_point): Avoid GCC extension:1146 + #warning not supported by Solaris suncc1147 +1148 + * ext2_ext_attr.h: Avoid GCC extension: 0 length arrays in1149 + structure definition. Not needed for now in1150 + ext2_ext_attr_entry.1151 +1152 +2003-01-25 Theodore Ts'o <tytso@mit.edu>1153 +1154 + * dirhash.c: Fix gcc -Wall nits.1155 +1156 +2003-01-22 Theodore Ts'o <tytso@mit.edu>1157 +1158 + * unix_io.c (unix_write_blk): Fix up GCC -Wall nits.1159 +1160 +2003-01-21 Theodore Ts'o <tytso@mit.edu>1161 +1162 + * fileio.c (ext2fs_file_read, ext2_file_lseek,1163 + ext2_file_get_size): Add 64-bit support.1164 +1165 + * ext2fs.h (EXT2_I_SIZE): Add macro which caluates a 64bit size1166 + from i_size and i_size_high.1167 +1168 +2003-01-19 Theodore Ts'o <tytso@mit.edu>1169 +1170 + * initialize.c (ext2fs_initialize): If the user specifies a really1171 + large number of inodes, then reduce the number of blocks1172 + per group until we find a workable set of filesystem1173 + parameters.1174 +1175 + * ext2_err.et.in (EXT2_ET_TOO_MANY_INODES): Add new error code.1176 +1177 +2002-11-09 Theodore Ts'o <tytso@mit.edu>1178 +1179 + * Release of E2fsprogs 1.321180 +1181 +2002-11-09 Theodore Ts'o <tytso@mit.edu>1182 +1183 + * unix_io.c (find_cached_block, reuse_cache, unix_read_blk,1184 + unix_write_blk): Optimize routines so that we don't end up1185 + searching the cache twice when a block isn't in the1186 + cache. If reads are larger than READ_DIRECT_SIZE, don't1187 + let them go through the cache.1188 +1189 + * unix_io.c (find_cached_block): Fixed bug which caused some clean1190 + blocks to be erroneously marked as dirty, so they would1191 + get written back to the disk before they are evicted from1192 + the cache. Harmless, but it slows down e2fsck1193 + significantly.1194 +1195 +2002-11-08 Theodore Ts'o <tytso@mit.edu>1196 +1197 + * Release of E2fsprogs 1.311198 +1199 +2002-11-08 <tytso@snap.thunk.org>1200 +1201 + * Makefile.in (check): Skip trying to compile test_byteswap1202 + if --disable-byteswaap had been given to configure.1203 +1204 +2002-11-07 <tytso@snap.thunk.org>1205 +1206 + * closefs.c (write_bgdesc, ext2fs_flush): Fix bug in meta_bg1207 + support when the MASTER_SB_ONLY flag is set. Some of1208 + the descriptor blocks that should have been written out1209 + were getting skipped.1210 +1211 +2002-10-31 Theodore Ts'o <tytso@mit.edu>1212 +1213 + * Release of E2fsprogs 1.301214 +1215 +2002-10-31 Theodore Ts'o <tytso@mit.edu>1216 +1217 + * ext2_fs.h: Add support for a new inode flag, which is to be used1218 + for indicating the top of directory hierarchies for the1219 + Orlov block allocator.1220 +1221 + * ismounted.c (check_mntent, check_mntent_file): Add better1222 + support for loopback-mounted filesystems. Check /etc/mtab1223 + if /proc/mounts doesn't turn up any mount flags, since1224 + /etc/mtab has the loopback image filename, instead of1225 + /dev/loop0. Also, check based on st_dev and st_ino, so1226 + that if a relative pathname or a pathnames using symbolic1227 + links are used, we can detect the the filesystem correctly1228 + in those cases. (Addresses Sourceforge bug #619119)1229 +1230 + * flushb.c (ext2fs_sync_device): If the BLKFLSBUF ioctl succeeds,1231 + don't try the FDFLUSH ioctl that was required for floppies1232 + with older kernels. This avoids needless whining from the1233 + MD device driver. (Addresses Sourceforge bug #545832).1234 +1235 + * openfs.c (ext2fs_open): Fix bug which caused us to pass the1236 + wrong group_block to ext2fs_descriptor_block_loc if we're1237 + using the backup superblock/block group descriptors.1238 + (ext2fs_descriptor_block_loc): If we're using the backup1239 + superblock descriptors, use the backup descriptor block in1240 + the next block group.1241 +1242 +2002-10-30 Theodore Ts'o <tytso@mit.edu>1243 +1244 + * alloc_tables.c (ext2fs_allocate_group_table): Allocate the inode1245 + table so that it buts up against the bitmap blocks, to1246 + avoid block fragmentation.1247 +1248 + * closefs.c (write_bgdesc), initalize.c (ext2fs_initialize): Fix1249 + bug; only allocate group descriptor blocks up to1250 + s_first_meta_bg.1251 +1252 +2002-10-25 Theodore Ts'o <tytso@mit.edu>1253 +1254 + * ext2_fs.h: Add a new superblock field, s_mkfs_time, so that we1255 + know when a filesystem was created. (Sometimes this can1256 + be useful...)1257 +1258 + * initialize.c (ext2fs_initialize): Set the s_mkfs_time field.1259 +1260 +2002-10-20 Theodore Ts'o <tytso@valinux.com>1261 +1262 + * ext2_fs.h (EXT3_DEFM_JMODE): Add new default mount options for1263 + the journal data mode.1264 +1265 + * closefs.c (ext2fs_flush, write_bgdesc), ext2_fs.h, ext2fs.h,1266 + openfs.c (ext2fs_descriptor_block_loc, ext2fs_open), initialize.c1267 + (ext2fs_initialize), swapfs.c (ext2fs_swap_super): Add support for1268 + the meta_blockgroup filesystem format.1269 +1270 +2002-10-15 <tytso@snap.thunk.org>1271 +1272 + * ext2_fs.h: Add new field in superblock for default mount options.1273 +1274 +2002-10-13 Theodore Ts'o <tytso@mit.edu>1275 +1276 + * ext2fs.h: Add #include of header files necessary for ext2fs.h to1277 + compile cleanly.1278 +1279 +2002-10-02 Theodore Y. Ts'o <tytso@mit.edu>1280 +1281 + * rw_bitmaps.c (ext2fs_write_block_bitmap,1282 + ext2fs_read_block_bitmap): Don't set the CHANGED bit just1283 + because the bitmap is getting written to disk. Make1284 + ext2fs_swap_bitmap be a static function, since it's not1285 + intended to be exported.1286 +1287 + * swapfs.c (ext2fs_swap_super): Byte-swap the hash seed1288 +1289 +2001-09-24 Theodore Tso <tytso@mit.edu>1290 +1291 + * Release of E2fsprogs 1.291292 +1293 +2001-08-31 Theodore Tso <tytso@thunk.org>1294 +1295 + * Release of E2fsprogs 1.281296 +1297 +2002-08-31 Theodore Ts'o <tytso@valinux.com>1298 +1299 + * dblist.c (ext2fs_dblist_sort): New function which allows the1300 + caller to pass in a special sort comparison function.1301 +1302 +2002-08-20 Theodore Ts'o <tytso@mit.edu>1303 +1304 + * valid_blk.c (ext2fs_inode_has_valid_blocks): Fix bug which1305 + failed to accurately characterize non-standard slow1306 + symlinks. (Which don't appear in practice on real-life1307 + systems, fortunately.)1308 +1309 +2002-08-17 Theodore Ts'o <tytso@mit.edu>1310 +1311 + * Makefile.in: Remove inode_io.o from the standard object files,1312 + and only build it if debugfs is enabled (it requires1313 + fileio.o, which is only built if --disable-debugfs isn't1314 + specified to configure).1315 +1316 + * dirhash.c (ext2fs_dirhash): Change the MD4 hash in a backwards1317 + incompatible way so that it is no longer1318 + endian-dependent. Add the TEA hash. Allow the seed1319 + parameter to be optional.1320 +1321 + * ext2_fs.h: Remove the HALF_MD4_SEED and HALF_MD4_64 hashes.1322 + These features are all now in the HALF_MD4 hash. Add1323 + definition for EXT2_HASH_TEA.1324 +1325 + * ext2fs.h (ext2fs_dirhash): Change function prototype so it takes1326 + a pointer instead of an array.1327 +1328 +2002-08-16 Theodore Ts'o <tytso@mit.edu>1329 +1330 + * ext2_err.et.in (EXT2_ET_BAD_EA_BLOCK_NUM): New error code1331 +1332 + * ext2fs.h (ext2fs_inode_data_blocks): New function which returns1333 + the number of data blocks used by an inode exclusive of1334 + the EA block.1335 +1336 + * ext_attr.c (ext2fs_adjust_ea_refcount): New function which1337 + adjusts the reference count in an extended attribute block.1338 +1339 + * valid_blk.c (ext2fs_inode_has_valid_blocks): Add code to1340 + correctly deal with extended attribute blocks in symbolic1341 + links.1342 +1343 +2002-08-13 <tytso@snap.thunk.org>1344 +1345 + * Makefile.in: Move dupfs.o and test_io.o from the1346 + needed-by-debugfs object list to the needed-by-resizer1347 + object list. Fixes compile problem if the system is built1348 + with only --disable-debugfs.1349 +1350 +2002-07-29 Theodore Ts'o <tytso@mit.edu>1351 +1352 + * link.c (ext2fs_link): When adding a new link to a directory,1353 + clear the HTREE bit.1354 +1355 +2002-07-23 Theodore Ts'o <tytso@mit.edu>1356 +1357 + * dirhash.c (ext2fs_dirhash): Fix bug which caused MD41358 + calculations for names > 32 characters to be completely1359 + bogus. Changed MD4 calculation to match what is currently1360 + being used in the CVS gkernel tree.1361 +1362 +2002-07-19 Theodore Ts'o <tytso@mit.edu>1363 +1364 + * ext2_fs.h: Add s_hash_seed and s_def_hash_version to the1365 + superblock definition.1366 +1367 + * badblocks.c, freefs.c, ext2fs.h: Use the badblocks functions to1368 + create a set of u32_list functions.1369 +1370 + * dirhash.c (halfMD4Transform): Shift the hash by one bit,1371 + since that's required by the directory indexing code.1372 +1373 +2002-07-14 Theodore Ts'o <tytso@mit.edu>1374 +1375 + * ext2fs.h, read_bb_file.c: Change private to priv_data, to avoid1376 + using a C++ reserved word.1377 +1378 + * unix_io.c (unix_open): Only attempt the setrlimit workaround if1379 + the kernel version is 2.4.10 -- 2.4.17, since otherwise an1380 + old version of glibc (built against 2.2 headers) will1381 + interact badly with the workaround to actually cause more1382 + problems. I hate it when the glibc folks think they're1383 + being smarter than the kernel....1384 +1385 +2002-06-28 Andreas Dilger <adilger@clusterfs.com>1386 +1387 + * ext2_fs.h: Add superblock field for reserved group descriptors.1388 +1389 +2002-06-28 Theodore Ts'o <tytso@mit.edu>1390 +1391 + * bitops.h: Add #define's for ext2fs_{l,b}e{32,16}_to_cpu and1392 + ext2fs_cpu_to_{l,b}e{32,16}1393 +1394 +2002-06-27 Theodore Ts'o <tytso@mit.edu>1395 +1396 + * ismounted.c (check_mntent): In AIX 4.3, MOUNTED isn't defined.1397 + Add appropriate fallbacks in this case.1398 +1399 +2002-06-26 Theodore Ts'o <tytso@mit.edu>1400 +1401 + * dirhash.c (ext2fs_dirhash): Change function signature to support1402 + a hash seed, and to return the minor hash (for 64-bit hash1403 + support). Add support for the half MD4, half MD4 with1404 + seed, and half MD4 with seed and 64 bits.1405 +1406 +2002-06-15 Theodore Ts'o <tytso@mit.edu>1407 +1408 + * ext2_fs.h (EXT2_DIRSYNC_FL): Add new file.1409 +1410 +2002-06-09 Andreas Dilger <adilger@clusterfs.com>1411 +1412 + * ext2_fs.h: Add macros for maximum block/inode counts:1413 + EXT2_INODES_PER_BLOCK, EXT2_MAX_BLOCKS_PER_GROUP,1414 + and EXT2_MAX_INODES_PER_GROUP.1415 +1416 + * openfs.c (ext2fs_open): Check that the number of blocks in a group1417 + is less than 2^16, otherwise we need an INCOMPAT flag (not1418 + in existence yet, if ever) to open such a filesystem.1419 +1420 + * initialize.c (ext2fs_initialize): Limit the number of blocks and1421 + inodes in a group to less than 2^16.1422 +1423 +2002-06-09 Andreas Dilger <adilger@clusterfs.com>1424 +1425 + * ext2_fs.h: Further minor cleanups of the header. Consolidate1426 + some checks for __KERNEL__ into one place.1427 +1428 +2002-05-22 Andreas Dilger <adilger@clusterfs.com>1429 +1430 + * ext2_fs.h: Remove macros accessing u.ext2_sb field and use1431 + the EXT2_SB() macro instead. Remove kernel function1432 + prototypes also. This matches the 2.5 kernel, and1433 + is also cleaner for other reasons. Whitespace cleanup.1434 +1435 +2002-05-21 Theodore Ts'o <tytso@mit.edu>1436 +1437 + * ext2_ext_attr.h: Update to V2 version of the Bestbits format.1438 +1439 +2002-05-16 Andreas Dilger <adilger@clusterfs.com>1440 +1441 + * ext2_fs.h: Change limits to support filesystems with 8k blocks.1442 +1443 + * initialize.c (ext2fs_initialize): Remove assumption that1444 + blocksizes are always <= 4k.1445 +1446 +2002-05-11 Theodore Ts'o <tytso@mit.edu>1447 +1448 + * bmap.c (ext2fs_bmap): Fix bug which caused ext2fs_bmap to fail1449 + silently if inode pointer is NULL (and ext2fs_bmap is1450 + expected to read the inode itself).1451 +1452 +2002-04-27 Theodore Ts'o <tytso@mit.edu>1453 +1454 + * ismounted.c (check_mntent_file, is_swap_device): Verify that the1455 + file we are checking is a block device file before looking1456 + at st_rdev, since it's not valid for normal files.1457 + (is_swap_device): Move so that it is outside the1458 + HAVE_MNTENT_H, so that it is always built.1459 +1460 +2002-03-11 Theodore Tso <tytso@mit.edu>1461 +1462 + * dirblock.c (ext2fs_read_dir_block2, ext2fs_write_dir_block): New1463 + functions which take an extra flags argument. The flag1464 + EXT2_DIRBLOCK_V2_STRUCT will reverse when the name_len1465 + field is byte swampped on big-endian machines, since in1466 + the V2 structure, name_len is a char field which is1467 + doesn't need to be byte swapped --- except if an1468 + old-style kernel had byte-swapped the name_len field1469 + as part of the V1 structure.1470 +1471 + * ext2_err.et.in (EXT2_ET_DIRHASH_UNSUPP): New error code1472 +1473 + * dirhash.c (ext2fs_dirhash): New function which calculates the1474 + hash for a filename in an indexed directory.1475 +1476 +2002-03-08 Theodore Tso <tytso@mit.edu>1477 +1478 + * Release of E2fsprogs 1.271479 +1480 +2002-03-07 Theodore Tso <tytso@mit.edu>1481 +1482 + * ext2fs.h (ext2fs_inode_io_intern): Add missing function prototype.1483 +1484 + * bmap.c, fileio.c, inode_io.c, tst_badblocks.c,1485 + tst_byteswap.c: Fix gcc -Wall complaints1486 +1487 + * Makefile.in (check): Use LD_LIBRARY_PATH to run test programs.1488 + (From Philipp Thomas <pthomas@suse.de>)1489 +1490 +2002-02-25 Theodore Tso <tytso@mit.edu>1491 +1492 + * ext2_fs.h: Add structure definitions for the directory indexing1493 + extension.1494 +1495 +2002-02-23 Theodore Tso <tytso@mit.edu>1496 +1497 + * unix_io.c (unix_open): Fix 2.4 resource limit workaround so that1498 + it doesn't break things on mis32, sparc32, and alpha1499 + platforms.1500 +1501 +2002-02-21 Theodore Tso <tytso@mit.edu>1502 +1503 + * ismounted.c (is_swap_device): Fix file descriptor/memory leak;1504 + we were missing an fclose().1505 +1506 +2002-02-20 Theodore Tso <tytso@mit.edu>1507 +1508 + * Makefile.in, inode_io.c, ext2fs.h, ext2_err.et.in: Add new io1509 + abstraction interface which exports an ext2 inode.1510 +1511 + * ext2fs.h, fileio.c (ext2fs_file_flush): Export ext2fs_file_flush1512 + as a public interface. Change void * to const void * in1513 + ext2fs_file_write's interface.1514 +1515 + * test_io.c (test_close), unix_io.c (unix_close): Remove unneeded1516 + conditional; save a few bytes.1517 +1518 +2002-02-12 Theodore Tso <tytso@mit.edu>1519 +1520 + * Makefile.in (tst_badblocks): Add some extra .o files when1521 + linking the debugging program tst_badblocks which are1522 + needed if we aren't compiling with inline functions enable.1523 +1524 + * kernel-list.h (__inline__): On non-gcc and non-Watcom compilers,1525 + define away __inline__ since it may not be supported.1526 +1527 + * kernel-jbd.h (jbd_debug): For systems that don't do STDC, use a1528 + stripped down jbd_debug that doesn't use variadic1529 + arguments. This will cause warnings under AIX, but things1530 + should still build.1531 +1532 +2002-02-03 Theodore Tso <tytso@thunk.org>1533 +1534 + * Release of E2fsprogs 1.261535 +1536 +2002-02-03 Theodore Tso <tytso@mit.edu>1537 +1538 + * mkdir.c (ext2fs_mkdir): Change to use ext2fs_inode_alloc_stats21539 + so that the number of directories in use is adjusted1540 + appropriately.1541 +1542 + * alloc_stats.c (ext2fs_inode_alloc_stats2): Add new function1543 + which optionally will modify the number of directories1544 + count.1545 +1546 +2002-01-03 Theodore Tso <tytso@mit.edu>1547 +1548 + * dir_iterate.c (ext2fs_dir_iterate2, ext2fs_process_dir_block):1549 + Add support for a new flag, DIRENT_FLAG_INCLUDE_REMOVED,1550 + which will return deleted directory entries.1551 + ext2fs_dir_iterate2 takes a new callback function which1552 + is identical with the one used by1553 + ext2fs_dblist_dir_iterate(). If the directory entry is1554 + deleted, the callback function will be called with the1555 + entry paraemter set to DIRENT_DELETED_FILE.1556 +1557 + * Makefile.in, alloc_stats.c (ext2fs_inode_alloc_stats,1558 + ext2fs_block_alloc_stats): New functions which update1559 + block/inode allocation statistics in the bitmaps, block1560 + group descriptors, and superblock.1561 +1562 + * mkjournal.c (mkjournal_proc), mkdir.c (ext2fs_mkdir),1563 + expanddir.c (expand_dir_proc), bb_inode.c1564 + (clear_bad_block_proc, set_bad_block_proc,1565 + ext2fs_update_bb_inode), alloc.c (ext2fs_alloc_block):1566 + Update to use new block/inode allocation statistics.1567 +1568 +2001-12-24 Theodore Tso <tytso@mit.edu>1569 +1570 + * ismounted.c (is_swap_device): New function used by1571 + ext2fs_check_if_mounted and ext2fs_check_mount_point which1572 + determines whether or not the specified device is a swap1573 + device by using /proc/swaps. More bulletproofing for1574 + idiotic/careless system administrators!1575 +1576 + * ext2fs.h, openfs.c (ext2fs_open), initialize.c1577 + (ext2fs_initialize), mkdir.c (ext2fs_mkdir): Add a new1578 + field to struct_ext2_filsys, umask. This field is1579 + initialize to 022, and affects ext2fs_mkdir in the obvious1580 + way. (In the future umask should also affect new file1581 + creation routines, but the fileio functions don't1582 + currently support this yes.)1583 +1584 + * ismounted.c (check_mntent_file): Stat all of the entries in1585 + /etc/mtab and/or /proc/mounts in order to catch dim-witted1586 + system administrators who might have created alias1587 + devices.1588 +1589 +2001-12-23 Theodore Tso <tytso@mit.edu>1590 +1591 + * Makefile.in, jfs_user.h: Move linux/jbd.h to1592 + ext2fs/kernel-jbd.h, to avoid using the system header1593 + file version of hbd.h when using diet glibc (since it1594 + forcibly adds /usr/include to the beginning of the1595 + include search path.)1596 +1597 + * kernel-jbd.h, kernel-list.h, jfs_compat.h: Move files from1598 + include/linux directory.1599 +1600 +2001-12-16 Theodore Tso <tytso@mit.edu>1601 +1602 + * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap),1603 + ext_attr.c (ext2fs_read_ext_attr, ext2fs_write_ext_attr),1604 + fileio.c (ext2fs_file_write): Fix gcc -Wall nits1605 +1606 + * Makefile.in, jfs_user.h: linux/jfs.h has been renamed to1607 + linux/jbd.h1608 +1609 +2001-12-03 Theodore Tso <tytso@mit.edu>1610 +1611 + * unix_io.c (unix_open): Make sure the ulimit workaround works1612 + regardless of the version of glibc which is used to1613 + compild e2fsprogs.1614 +1615 +2001-11-26 Theodore Tso <tytso@mit.edu>1616 +1617 + * unix_io.c (unix_open): Work around a bug in 2.4.10+ kernels by1618 + trying to unset the filesize limit if at all possible,1619 + if a block device is getting opened. (The filesize limit1620 + shouldn't be applied against writes to a block device, but1621 + starting in 2.4.10, the kernel is doing this.)1622 +1623 +2001-11-05 Theodore Tso <tytso@mit.edu>1624 +1625 + * mkjournal.c (ext2fs_add_journal_inode): When creating a .journal1626 + file on adding a journal to an already-mounted filesystem,1627 + try to clear the ext2 file attributes on an already1628 + existing .journal file so that we don't fail if on a1629 + partially added journal to the filesystem.1630 +1631 + * ext2_fs.h: Define a new ext2 file attribute, EXT2_NOTAIL_FL,1632 + which signals that a particular inode should not have the1633 + last bits of data (the "tail") be merged with another1634 + file. This is necessary to keep LILO happy.1635 +1636 +2001-09-20 Theodore Tso <tytso@thunk.org>1637 +1638 + * Release of E2fsprogs 1.251639 +1640 +2001-09-16 Theodore Tso <tytso@mit.edu>1641 +1642 + * ext2_ext_attr.h: Remove unneeded #include of <linux/config.h>1643 + which was breaking the build on the Hurd. (Addresses1644 + Debian bug #112414).1645 +1646 +2001-09-13 Theodore Ts'o <tytso@mit.edu>1647 +1648 + * ismounted.c (check_mntent_file): We now validate the entry in1649 + /etc/mtab to make sure the filesystem is really mounted,1650 + since some broken distributions (read: Slackware) have1651 + buggy boot scripts that don't initialize /etc/mtab before1652 + checking non-root filesystems. (Slackware also doesn't1653 + check the root filesystem separately, and reboot if the1654 + root filesystem had changes applied to it, which is1655 + dangerous and broken.)1656 +1657 +2001-09-02 Theodore Tso <tytso@thunk.org>1658 +1659 + * Release of E2fsprogs 1.24a1660 +1661 +2001-08-30 Theodore Tso <tytso@thunk.org>1662 +1663 + * Release of E2fsprogs 1.241664 +1665 +2001-08-30 Theodore Tso <tytso@valinux.com>1666 +1667 + * getsize.c (ext2fs_get_device_size): Back out BLKGETSIZE641668 + changes, since the ioctl number has been reused by another1669 + unofficial patch.1670 +1671 +2001-08-15 Theodore Tso <tytso@valinux.com>1672 +1673 + * Release of E2fsprogs 1.231674 +1675 +2001-08-05 Theodore Tso <tytso@valinux.com>1676 +1677 + * alloc.c (ext2fs_new_inode, ext2fs_new_block): Use the fast1678 + version of the bitmap test routines to speed up these1679 + routines. (At some point I may want to make these1680 + routines use the find_first_bit functions, but that will1681 + add a lot of complexity since it means that these1682 + functions will have to break the bitmap abstraction1683 + boundary. It's not clear it's worth it.)1684 +1685 + * mkjournal.c (mkjournal_proc): Remember the last block allocated1686 + to speed up ext2fs_new_block().1687 +1688 +2001-07-29 Theodore Tso <tytso@valinux.com>1689 +1690 + * finddev.c (scan_dir): Fix memory leak; we weren't calling1691 + closedir() when exiting the function in all cases.1692 +1693 +2001-07-27 Theodore Tso <tytso@valinux.com>1694 +1695 + * mkjournal.c (ext2fs_create_journal_superblock): Set the first1696 + block usable in the journal for external journals to be 21697 + or 3, depending on the blocksize, so that the existing1698 + kernel code does the right thing.1699 +1700 + * getsize.c (ext2fs_get_device_size): Add support for the1701 + BLKGETSIZE64 ioctl. (Ioctl defined by unofficial patches1702 + from Ben LaHaise, but it's likely this interface won't1703 + change.)1704 +1705 + * mkjournal.c (ext2fs_add_journal_device): Use the correct block1706 + when writing the journal superblock, too. (Oops! Needed1707 + to make 1k filesystems with external journal to work.)1708 +1709 +2001-07-26 Theodore Tso <tytso@valinux.com>1710 +1711 + * mkjournal.c (ext2fs_add_journal_device): Use the correct block1712 + to find the journal superblock if the blocksize is 1024.1713 +1714 +2001-07-21 Theodore Tso <tytso@valinux.com>1715 +1716 + * ext2_err.et.in (EXT2_ET_LOAD_EXT_JOURNAL): Add new error code1717 +1718 +2001-07-20 Theodore Tso <tytso@valinux.com>1719 +1720 + * ext_attr.c (ext2fs_write_ext_attr): When writing the extended1721 + attribute block, set the filesystem changed bit.1722 +1723 + * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):1724 + Comment out these functions since we're not using them.1725 +1726 +2001-07-10 Theodore Tso <tytso@valinux.com>1727 +1728 + * closefs.c (write_primary_superblock): After writing changes to1729 + the primary superblock, update the original superblock1730 + copy so we don't have to re-write those changes in the1731 + future.1732 + (ext2fs_flush): Clear the superblock dirty flag after1733 + we've flushed out changes to disk.1734 +1735 +2001-07-07 Theodore Tso <tytso@valinux.com>1736 +1737 + * bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx1738 + to avoid register conflicts when compiling in PIC mode.1739 +1740 +2001-07-04 Theodore Tso <tytso@valinux.com>1741 +1742 + * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set):1743 + Add new functions (C and in i386 assembler) which quickly1744 + find bits set in a bitmask.1745 +1746 +2001-06-23 Theodore Tso <tytso@valinux.com>1747 +1748 + * Makefile.in, ext_attr.c, ext2_attr.c, ext2fs.h: Add new files1749 + ext2_ext_attr.h and ext_attr.c for extended attributes1750 + support.1751 +1752 + * Release of E2fsprogs 1.221753 +1754 +2001-06-22 Theodore Tso <tytso@valinux.com>1755 +1756 + * mkjournal.c (ext2fs_add_journal_inode): Move close of file1757 + descriptor so that adding a journal to a mounted1758 + filesystem doesn't die. (Fixes a bug accidentally1759 + introduced in e2fsprogs 1.21.)1760 +1761 + * mkjournal.c (ext2fs_add_journal_inode): Only use fchflags if1762 + HAVE_CHFLAGS and UF_NODUMP are defined, since the Hurd has1763 + fchflags without defining UF_NODUMP. (Addresses Debian1764 + bug #101361)1765 +1766 + * flushb.c: Use platform independent method of defining the1767 + BLKFLSBUF and FDFLUSH ioctl's. Also include sys/mount.h1768 + since on newer glibc's BLKFLSBUF is defined there.1769 +1770 + * bitops.h: The C language versions of ext2fs_swab16/32 need to be1771 + included if EXT2FS_ENABLE_SWAPFS is defined, since we need1772 + to support byte swapping even if we don't support the1773 + conversion functions. (Fixes Debian bug #101686).1774 +1775 + * dirblock.c (ext2fs_read_dir_block): Remove use of dir_entry_21776 + since the byte-swapping code all assumes the1777 + ext2_dir_entry structure. (It's a question of whether or1778 + not name_len should be byte-swapped or not, and whether1779 + it's a 16 bit or 8 bit field.)1780 +1781 +2001-06-15 Theodore Tso <tytso@valinux.com>1782 +1783 + * Release of E2fsprogs 1.211784 +1785 +2001-06-15 Theodore Tso <tytso@valinux.com>1786 +1787 + * Makefile.in: Fix bug in installation of ext2_types.h. It is a1788 + file which is generated and is therefore found in the1789 + build directory, not source directory.1790 +1791 + * ismounted.c (check_mntent_file): Use a test file in / to check1792 + to see if the root filesystem is mounted read-only. This1793 + protects against the case where /etc might not be on /, as1794 + well as the case where /etc/mtab doesn't exist. (Both are1795 + should-never happen scenarios, but you never know...)1796 +1797 +2001-06-14 Theodore Tso <tytso@valinux.com>1798 +1799 + * ismounted.c (ext2fs_check_if_mounted): Fix grammer in comment.1800 + Remove unneeded #pragma argsused, since the arguments are1801 + always used.1802 +1803 +2001-06-13 Theodore Tso <tytso@valinux.com>1804 +1805 + * ext2_types.h.in: If linux/types.h has been defined, then don't1806 + try to redefine the typedefs.1807 +1808 + * Makefile.in (HFILES): Add ext2_types.h to the list of files1809 + which should be installed.1810 +1811 + * ismounted.c (check_mntent_file): Work around GNU hurd brain1812 + damage. Addresses Debian bug #100304.1813 +1814 + * Makefile.in: Limit some .o files from being included into the1815 + library if --disable-debugfs, --disable-swapfs,1816 + --disable-imager, or --disable-resizer are used.1817 +1818 +2001-06-12 Theodore Tso <tytso@valinux.com>1819 +1820 + * inode.c, tst_iscan.c: Stop using the compatibility badblocks1821 + function, and use the ext2fs_badblocks_* functions1822 + instead.1823 +1824 +2001-06-11 Theodore Tso <tytso@valinux.com>1825 +1826 + * Makefile.in, gen_bitmap.c, bitops.h: Move inline functions1827 + ext2fs_mark_generic_bitmap and1828 + ext2fs_unmark_generic_bitmap to gen_bitmap.c as normal1829 + functions. (This saves space and doesn't significantly1830 + change the speed of e2fsck on a P-III.)1831 +1832 + * ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c,1833 + inode.c, native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only1834 + include the byte-swapping logic if ENABLE_SWAPFS is turned1835 + on or if we're on a big-endian machine.1836 +1837 + * initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to1838 + set EXT2_FLAG_SWAP_BYTES, instead of using1839 + ext2fs_native_flag.1840 +1841 + * native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by1842 + autoconf to determine whether or not return1843 + EXT2_FLAG_SWAP_BYTES.1844 +1845 +2001-06-10 Theodore Tso <tytso@valinux.com>1846 +1847 + * Makefile.in: Remove the dependence on the libe2p library.1848 +1849 + * mkjournal.c (ext2fs_add_journal_inode): Replace use of fsetflags1850 + with direct usage of the ioctl/fchflags so that we don't1851 + have to depend on the libe2p library.1852 +1853 +2001-06-08 Theodore Tso <tytso@valinux.com>1854 +1855 + * ext2_types.h.in: Use unsigned ints in favor of unsigned longs1856 + when trying to find a 32-bit wide type.1857 +1858 + * icount.c (insert_icount_el): Fix the code used to estimate the1859 + size of the new icount array to be more intelligent, to1860 + avoid reallocating the array too many times. Thanks to1861 + Enrique Perez-Terron for pointing this out.1862 +1863 +2001-06-02 Theodore Tso <tytso@valinux.com>1864 +1865 + * valid_blk.c (ext2fs_inode_has_valid_blocks): Only check i_blocks1866 + for a symlink to determine whether it is a fast symlink.1867 +1868 +2001-06-01 Theodore Tso <tytso@valinux.com>1869 +1870 + * Makefile.in, dosio.c, ext2_fs.h, ext2_types.h.in, ext2fs.h:1871 + Move include/asm/types.h.in to lib/ext2fs/ext2_types.h.in.1872 +1873 +2001-05-25 Theodore Tso <tytso@valinux.com>1874 +1875 + * Release of E2fsprogs 1.201876 +1877 +2001-05-25 Theodore Tso <tytso@valinux.com>1878 +1879 + * ismounted.c: More cleanups for ismounted.c, some from Andreas,1880 + some to clean up Andreas's patches. Use strncpy instead1881 + of strcpy to save the root's mountpoint. Clean up #ifdef1882 + structure. Remove uneeded variable in testing/debug driver.1883 +1884 +2001-05-24 Andreas Dilger <adilger@turbolinux.com>1885 +1886 + * ismounted.c: Add check for root device which doesn't depend on1887 + /etc/fstab or /proc/mounts to be correct. Don't call1888 + endmntent() before we are done with mnt struct.1889 +1890 +2001-05-23 Theodore Tso <tytso@valinux.com>1891 +1892 + * ext2_err.et.in (EXT2_ET_JOURNAL_UNSUPP_VERSION): Added new error1893 + code.1894 +1895 +2001-05-21 Theodore Tso <tytso@valinux.com>1896 +1897 + * ext2_fs.h: Change assignment of EXT2_FEATURE_COMPAT_DIR_INDEX to1898 + make room for pre-existing usage of1899 + EXT2_FEATURE_COMPAT_EXT_ATTR. Add flag EXT2_INDEX_FL with1900 + the same codepoint as EXT2_BTREE_FL.1901 +1902 +2001-05-20 Theodore Tso <tytso@valinux.com>1903 +1904 + * ext2fs.h: #include <> instead of "" for ext2fs and et header1905 + files, since they will be installed in /usr/include1906 +1907 +2001-05-14 Theodore Tso <tytso@valinux.com>1908 +1909 + * alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c,1910 + bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,1911 + check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,1912 + dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,1913 + expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c,1914 + freefs.c, get_pathname.c, getsize.c, icount.c, imager.c,1915 + initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c,1916 + link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c,1917 + newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c,1918 + rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c,1919 + tst_badblocks.c, tst_byteswap.c, tst_getsize.c,1920 + tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c,1921 + write_bb_file.c, ext2_fs.h: Moved file from include/linux.1922 + Adjust all files in this directroy to include this file.1923 +1924 + * mkjournal.c (ext2fs_create_journal_superblock): Remove redundant1925 + code.1926 +1927 +2001-05-05 Theodore Tso <tytso@valinux.com>1928 +1929 + * fileio.c (ext2fs_file_read): Factored out common code and1930 + cleaned up function. Fixed a bug where if there was an1931 + error reading from the disk, the number of bytes read1932 + wasn't reliably set. (Fixes Debian bug #79163)1933 + (ext2fs_file_write): Factored out common code and made1934 + function more efficient; if writing a full block, don't1935 + bother to do a read-modify-write cycle.1936 +1937 +2001-05-04 Theodore Tso <tytso@valinux.com>1938 +1939 + * dirblock.c (ext2fs_read_dir_block): Check for an directory1940 + record length which isn't a multiple four, and treat that1941 + as an invalid. Scan the directory and return an error1942 + (EXT2_ET_DIR_CORRUPTED) if the directory records are1943 + corrupted.1944 + (ext2fs_write_dir_block): If while byte-swapping the1945 + directory block, if there's an error, abort and return1946 + EXT2_ET_DIR_CORRUPTED.1947 +1948 +2001-05-02 Theodore Tso <tytso@valinux.com>1949 +1950 + * ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add1951 + image_header field in the ext2_filsys structure1952 +1953 + * block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind):1954 + * inode.c (ext2fs_read_inode):1955 + * rw_bitmaps.c (read_bitmaps):1956 + * openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE1957 +1958 + * imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make1959 + sure the full bitmap is saved.1960 +1961 +2001-05-01 Theodore Tso <tytso@valinux.com>1962 +1963 + * e2image.h (struct ext2_image_hdr): Add space for the device name1964 + in the image header.1965 +1966 + * dir_iterate.c (ext2fs_process_dir_block): Add a double-check to1967 + make sure the rec_len is a multiple of 4, to prevent1968 + bus-errors on architectures which care about mis-aligned1969 + pointer references.1970 +1971 +2001-04-25 Theodore Tso <tytso@valinux.com>1972 +1973 + * getsize.c (ext2fs_get_device_size): Use an unsigned long to1974 + query the device sizes using the BLKGETSIZE ioctl.1975 +1976 +2001-04-16 Theodore Tso <tytso@valinux.com>1977 +1978 + * ismounted.c (check_mntent): Check /proc/mounts on Linux systems1979 + before checking /etc/mtab. The EXT2_MF_READONLY flag is1980 + now set from the /etc/mtab options field for all1981 + filesystems, not just the root filesystem. Add debugging1982 + code to make it easier to test ext2fs_check_if_mounted().1983 +1984 + * mkjournal.c (ext2fs_create_journal_superblock): Add safety1985 + check; return an error if there's an attempt to create a1986 + journal less than 1024 filesystem blocks.1987 +1988 + * ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and1989 + EXT2_NO_JOURNAL_SB to be EXT2_ET_*.1990 +1991 +2001-02-20 Theodore Tso <tytso@valinux.com>1992 +1993 + * bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly1994 + inline functions.1995 +1996 + * tst_byteswap.c: New function to test the byteswap functions.1997 + Add to regression test suite.1998 +1999 +2001-02-08 Theodore Tso <tytso@valinux.com>2000 +2001 + * e2image.h (struct ext2_image_hdr): Fix type for fs_hostname2002 +2003 +2001-02-07 Theodore Tso <tytso@valinux.com>2004 +2005 + * mkjournal.c (ext2fs_create_journal_superblock): Fix the setting2006 + of s_first for external devices to always be 1, since2007 + jsb->s_first is always relative to the start of the2008 + journal superblock. Use htonl(1) when setting s_nr_users.2009 +2010 +2001-01-17 Theodore Ts'o <tytso@valinux.com>2011 +2012 + * mkjournal.c (ext2fs_add_journal_device): Fix bug where the2013 + device number of the filesystem (instead of the journal)2014 + was being dropped into s_journal_dev.2015 +2016 +2001-01-15 Theodore Ts'o <tytso@valinux.com>2017 +2018 + * initialize.c (ext2fs_initialize): Add support for initializing2019 + the ext2 superblock for external journal devices. This2020 + basically means we don't bother to allocate any block2021 + group descriptors.2022 +2023 + * openfs.c (ext2fs_open): Only open external journal devices if2024 + the new flag EXT2_FLAG_JOURNAL_DEV_OK is passed to2025 + ext2fs_open. When opening such devices, don't try to read2026 + the block group descriptors, since they're not there.2027 +2028 + * ext2_err.et.in (EXT2_NO_JOURNAL_SB): Add new error code2029 +2030 + * mkjournal.c: Export a new function,2031 + ext2fs_create_journal_superblock(), which allocates and2032 + returns a buffer containing a journal superblock. This is2033 + needed by mke2fs to create an external journal. Rewrote2034 + ext2fs_add_journal_device() so that it no longer creates2035 + the external journal, but rather adds a filesystem to an2036 + existing external journal. It handles all of the UUID2037 + manipulation.2038 +2039 + * ext2fs.h: List the EXT3_FEATURE_JOURNAL_DEV as a flag supported2040 + by the library. Define the EXT2_FLAG_JOURNAL_DEV_OK.2041 + Changed function prototype for ext2fs_add_journal_device().2042 +2043 +2001-01-14 Theodore Ts'o <tytso@valinux.com>2044 +2045 + * closefs.c (ext2fs_flush): Don't write out anything beyond the2046 + primary superblock if EXT2_INCOMPAT_JOURNAL_DEV is2047 + listed.2048 +2049 +2001-01-12 Theodore Ts'o <tytso@valinux.com>2050 +2051 + * imager.c: Fix gcc -Wall complaints and a series of bugs where2052 + retval wasn't set correctly. (Thanks to Andreas Dilger2053 + for pointing this out.)2054 +2055 +2001-01-11 <tytso@snap.thunk.org>2056 +2057 + * flushb.c (ext2fs_sync_device): New function which centralizes2058 + all of the places which might try to use the BLKFLSBUF2059 + or FDFLUSH ioctls (and usually failing to define them2060 + since the system header files don't usually do this for2061 + us, and we're trying to avoid usage of kernel include2062 + files now).2063 +2064 +2001-01-10 <tytso@snap.thunk.org>2065 +2066 + * alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c,2067 + bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c,2068 + dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c,2069 + finddev.c, get_pathname.c, icount.c, inode.c, irel.h,2070 + irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c,2071 + mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c,2072 + tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to2073 + ext2_ino_t, to protect applications that attempt to2074 + compile -D_FILE_OFFSET_BITS=64, since this inexplicably2075 + changes ino_t(!?). So we use ext2_ino_t to avoid an2076 + unexpected ABI change.2077 +2078 +2001-01-05 <tytso@snap.thunk.org>2079 +2080 + * dirblock.c (ext2fs_read_dir_block): Fix a potential case where2081 + we may overrun allocated memory in case of a corrupted2082 + filesystem (or an e2fsck test case :-) when byte-swapping2083 + the directory block.2084 +2085 + * ext2fs.h: Indent the #warning to fix gcc -Wall complaint.2086 +2087 + * mkjournal.c (ext2fs_add_journal_device): Fix various gcc -Wall2088 + complaints including a missing return 0 at the end of2089 + ext2fs_add_journal_device.2090 +2091 +2001-01-03 <tytso@snap.thunk.org>2092 +2093 + * Makefile.in: Link in libe2p when creating libext2fs as a shared2094 + library, since mkjournal.c now references fsetflags().2095 +2096 + * mkjournal.c (ext2fs_add_journal_inode): Folded in Andreas2097 + Dilger's changes (with fixups) to allow on-line creation2098 + of a journal file.2099 +2100 + * ext2fs.h, closefs.c (ext2fs_flush): Add new flag,2101 + EXT2_FLAG_SUPER_ONLY, which the close routines to only2102 + update the superblock, and not the group descriptors.2103 +2104 +2000-12-30 Andreas Dilger <adilger@turbolinux.com>2105 +2106 + * ismounted.c: add ext2fs_check_mount_point() function, which will2107 + optionally return the mount point of a device if mounted2108 +2109 +2000-12-14 Andreas Dilger <adilger@turbolinux.com>2110 +2111 + * mkjournal.c: rename ext2fs_add_journal_fs() to the more descriptive2112 + ext2fs_add_journal_inode()2113 +2114 +2001-01-01 <tytso@snap.thunk.org>2115 +2116 + * ext2fs.h: Remove definition of ext2fs_sb. Note: this may break2117 + source (but not binary) compatibility of some users of the2118 + ext2 library. They should just simply do a global search2119 + and replace of struct ext2fs_sb with struct2120 + ext2_super_block, and use their own private copy of2121 + ext2_fs.h if they aren't already.2122 +2123 + * closefs.c, initialize.c, link.c, newdir.c, openfs.c, swapfs.c:2124 + Replace use of ext2fs_sb with ext2_super_block.2125 +2126 +2000-12-31 <tytso@snap.thunk.org>2127 +2128 + * ext2fs.h: Cleaned up header file by removing definitions of2129 + feature flags that might not have been defined in older2130 + ext2 header files. Now that we're using our own2131 + include/linux/ext2fs.h header file, this can never happen.2132 +2133 + * jfs_dat.h: Removed old header file which is no longer needed.2134 +2135 +2000-12-13 Theodore Ts'o <tytso@valinux.com>2136 +2137 + * closefs.c (ext2fs_update_dynamic_rev): New function suggested2138 + by Andreas Dilger to update the filesystem revision to2139 + EXT2_DYNAMIC_REV.2140 +2141 + * swapfs.c (ext2fs_swap_super): Add byte swapping for the journal2142 + fields.2143 +2144 +2000-12-09 <tytso@snap.thunk.org>2145 +2146 + * ext2fs.h, mkjournal.c (ext2fs_add_journal_inode,2147 + ext2fs_add_journal_device): Add a new argument to the APIs2148 + of these function, which is a flags word. This is used to2149 + allow the creation of a V1 superblock for those folks who2150 + are using ext3 0.3b in production. Note, the user-land2151 + interface for getting at this flag won't be documented, as2152 + the V1 superblock is deprecated.2153 +2154 + * mkjournal.c (init_journal_superblock): Sync Stephen's changes2155 + which creates a V2 superblock instead of a V1 superblock.2156 +2157 +2000-11-21 <tytso@snap.thunk.org>2158 +2159 + * test_io.c (test_write_blk, test_write_byte): Fix typos pointed2160 + out by Andreas Dilger.2161 +2162 +2000-11-05 <tytso@snap.thunk.org>2163 +2164 + * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write},2165 + ext2_fs.h, Makefile.in: New file that has routines that2166 + save ext2fs metadata to a file.2167 +2168 + * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned.2169 +2170 + * e2image.h: New file which defines the file format for the ext22171 + image file. (Saved copy of ext2 metadata to a file as a2172 + saving throw against worst-case damage.)2173 +2174 +2000-11-01 <tytso@snap.thunk.org>2175 +2176 + * inode.c (ext2fs_flush_icache): Add new function2177 + ext2fs_flush_icache() which flushes the internal inode2178 + cache. Applications which modify the inode table blocks2179 + directly must call this function.2180 +2181 +2000-10-26 <tytso@snap.thunk.org>2182 +2183 + * mkjournal.c: Add #include of netinet/in.h, since Solaris2184 + requires it for ntohl().2185 +2186 + * ext2_io.h (io_channel_write_byte): Add new interface to allow2187 + callers to write specific byte ranges. This is an2188 + optional interface, which not all IO channels may2189 + implement.2190 +2191 + * unix_io.c (unix_write_byte):2192 + * test_io.c (test_write_byte): Add implementation of the2193 + write_byte function.2194 +2195 + * closefs.c (write_primary_superblock, ext2fs_flush): Add a new2196 + function which writes the primary superblock. If the IO2197 + channel supports writing raw bytes directly, only fields2198 + which were modified are written to the disk. This makes2199 + it safe(r) to use utilities like tune2fs on a mounted2200 + filesystem.2201 +2202 + * freefs.c (ext2fs_free): Free the original superblock if it is2203 + available.2204 +2205 + * openfs.c (ext2fs_open): Store a copy of the original superblock2206 + when opening it.2207 +2208 + * ext2fs.h: Add a field to store the original superblock in the2209 + ext2 context structure.2210 +2211 +2000-10-24 <tytso@snap.thunk.org>2212 +2213 + * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we2214 + don't need to use llseek).2215 +2216 +2000-10-24 <tytso@valinux.com>2217 +2218 + * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for2219 + creating an ext3 journal on a filesystem.2220 +2221 +2000-08-21 <tytso@valinux.com>2222 +2223 + * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code.2224 +2225 +2000-08-22 <tytso@valinux.com>2226 +2227 + * unix_io.c: Make massive changes to support a multiple block2228 + writethrough cacheing.2229 +2230 + * ext2_io.h: Added flags field to the io_channel structure.2231 +2232 +2000-08-19 <tytso@valinux.com>2233 +2234 + * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which2235 + provides the function ext2fs_find_block_device(). This2236 + function returns the pathname to a block device, given its2237 + device number.2238 +2239 +2000-07-13 <tytso@valinux.com>2240 +2241 + * Release of E2fsprogs 1.192242 +2243 +2000-07-07 Theodore Ts'o <tytso@valinux.com>2244 +2245 + * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add2246 + EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the2247 + list of filesystem flags supported by the library.2248 +2249 +2000-07-04 Theodore Ts'o <tytso@valinux.com>2250 +2251 + * ext2fs.h: Update to include latest journalling additions to the2252 + superblock.2253 +2254 + * dll/jump.funcs: Add new jumptable entries for2255 + ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and2256 + ext2fs_badblocks_equal.2257 +2258 + * tst_badblocks.c: Update test program to test2259 + ext2fs_read_bb_FILE2 and ext2fs_write_FILE.2260 +2261 + * write_bb_file.c (ext2fs_write_bb_FILE): New function which2262 + writes out bad blocks list to a file.2263 +2264 + * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which2265 + changes the callback function to take two additional2266 + arguments; a private blind pointer supplied by the caller,2267 + and pointer to a char * containing a pointer to the2268 + invalid string.2269 +2270 + * badblocks.c (ext2fs_badblocks_equal): Add new function which2271 + returns true if two badblocks list are equal.2272 +2273 + * Makefile.in: Remove explicit link of -lc in the shared library.2274 + (It shouldn't be necessary, and is harmful in some cases).2275 +2276 +2000-06-10 Theodore Ts'o <tytso@valinux.com>2277 +2278 + * getsize.c (main): Add debugging code under #ifdef DEBUG2279 +2280 +2000-05-27 Theodore Ts'o <tytso@valinux.com>2281 +2282 + * mkdir.c (ext2fs_mkdir): Read the parent directory's inode2283 + earlier, so that if there's an error reading it, we can2284 + more cleanly back out of the operation.2285 +2286 +2000-05-25 <tytso@snap.thunk.org>2287 +2288 + * getsize.c (ext2fs_get_device_size): Use open64() instead of2289 + open() if it exists. Under linux, manually define the2290 + ioctl for BLKGETSIZE if it isn't already defined and it's2291 + safe to do so.2292 +2293 + * unix_io.c (unix_open): Use open64() instead of open() if it2294 + exists.2295 +2296 + * llseek.c: Simplify header includes of unistd.h. If lseek64 is2297 + available (and prototypes are defined) use it in2298 + preference to llseek.2299 +2300 + * Makefile: Add hack dependency rule so that parallel makes work2301 + correctly.2302 +2303 +2000-05-18 Theodore Ts'o <tytso@valinux.com>2304 +2305 + * ext2fs.h: Add appropriate ifdef's to support C++ compilation.2306 +2307 +2000-04-03 Theodore Ts'o <tytso@valinux.com>2308 +2309 + * block.c: Readibility tweak in conditionals involving2310 + ctx->fs->flags.2311 +2312 + * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine2313 + how to define __s64 and __u64. Turn off "compression is2314 + experimental" warning if the cpp macro2315 + I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined.2316 +2317 +2000-02-11 <tytso@snap.thunk.org>2318 +2319 + * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR.2320 + Conditionally include Compression as a supported type if2321 + ENABLE_COMPRESSION (via --enable-compression) is turned on.2322 +2323 + * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap.2324 +2325 +2000-02-08 <tytso@snap.thunk.org>2326 +2327 + * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap,2328 + ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,2329 + ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap):2330 + Change to return the previous state of the bit that is2331 + being marked or unmarked. For speed optimization.2332 +2333 +2000-02-02 Theodore Ts'o <tytso@valinux.com>2334 +2335 + * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h2336 +2337 + * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not2338 + needed any more; we know it will always be i_generation.2339 + Add support for swapping the high bits of the uid and gid.2340 +2341 +1999-11-19 <tytso@valinux.com>2342 +2343 + * mkdir.c (ext2fs_mkdir): Only update the parent's inode link2344 + counts if the link was successful. Patch suggested by2345 + jeremy@goop.org.2346 +2347 + * Makefile.in (distclean): Remove TAGS and Makefile.in.old from2348 + the source directory.2349 +2350 +1999-11-10 <tytso@valinux.com>2351 +2352 + * Release of E2fsprogs 1.182353 +2354 +1999-11-08 <tytso@valinux.com>2355 +2356 + * Makefile.in (tst_badblocks): Add freefs.o to the object list,2357 + since ext2fs_badblocks_list_free was moved to freefs.c.2358 +2359 + * tst_badblocks.c: Use the newer badblocks API names. Add2360 + duplicate blocks to the test inputs to test dealing with2361 + adding blocks which are already in the badblocks list.2362 +2363 + * badblocks.c (ext2fs_badblocks_list_add): If appending to the end2364 + of the list, use a shortcut O(1) operations instead of an2365 + O(n) operation. (Idea suggested by David Beattie.)2366 +2367 + * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead2368 + of badblocks_list_free(), to save a procedure call.2369 +2370 +1999-10-26 <tytso@valinux.com>2371 +2372 + * Release of E2fsprogs 1.172373 +2374 +1999-10-26 <tytso@valinux.com>2375 +2376 + * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't2377 + seem to handle ~0UL the same way as they used to.2378 +2379 +1999-10-25 <tytso@valinux.com>2380 +2381 + * nt_io.c (_OpenNtName): Open the device using2382 + FILE_SYNCHRONOUS_IO_NONALERT instead of2383 + FILE_SYNCHRONOUS_IO_ALERT2384 + (nt_open): At the end of the device open routine, unlock2385 + the drive but do not dismount it.2386 +2387 + * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to2388 + detect the Hurd OS.2389 +2390 +1999-10-22 <tytso@valinux.com>2391 +2392 + * Release of E2fsprogs 1.162393 +2394 +1999-10-22 <tytso@valinux.com>2395 +2396 + * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link().2397 +2398 + * link.c (ext2fs_link): This call now uses the low three bits of2399 + the flags parameter to pass the directory filetype2400 + information; it will set the directory entry FILETYPE2401 + information if the filesystem supports it.2402 +2403 + * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock2404 + option is set, then create the '.' and '..' entries with2405 + the filetype set to EXT2_FT_DIR.2406 +2407 +1999-09-24 <tytso@valinux.com>2408 +2409 + * nt_io.c: New file which supports I/O under Windows NT.2410 +2411 +1999-09-07 <tytso@valinux.com>2412 +2413 + * ext2fs.h: Add new fields for journalling and define new2414 + feature bits used by newer filesystems: IMAGIC_INODES,2415 + HAS_JOURNAL, RECOVER.2416 +2417 + * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where2418 + we update the inode block count and size files so that the2419 + block count field is updated correctly when we create an2420 + indirect block.2421 +2422 +1999-07-18 Theodore Ts'o <tytso@valinux.com>2423 +2424 + * Release of E2fsprogs 1.152425 +2426 +1999-06-23 <tytso@valinux.com>2427 +2428 + * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.32429 + kernels that use i_generation instead of i_version. Patch2430 + supplied by Jon Bright <sircus@sircus.demon.co.uk>.2431 +2432 +1999-06-21 <tytso@valinux.com>2433 +2434 + * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted2435 + directory entry before calling the callback function.2436 + This should prevent some core dumps of insufficiently2437 + paranoid callback functions.2438 +2439 +1999-05-29 <tytso@rsts-11.mit.edu>2440 +2441 + * ext2fs.h: Add feature definition for AFS IMAGIC inodes.2442 +2443 + * fileio.c (ext2fs_file_open): Remove obsolete comment stating2444 + that we don't handle writing yet (we do). Fixed bug where2445 + we weren't allocating a big enough buffer for ext2_bmap.2446 +2447 +1999-05-03 <tytso@rsts-11.mit.edu>2448 +2449 + * openfs.c (ext2fs_open): Check to make sure that the number of2450 + blocks per group is not zero --- if so, it must be a bad2451 + superblock!2452 +2453 +1999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu>2454 +2455 + * Release of E2fsprogs 1.142456 +2457 +1999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu>2458 +2459 + * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if2460 + the inode number is zero; if it's zero, return2461 + EXT2_ET_BAD_INODE_NUM.2462 +2463 +1998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu>2464 +2465 + * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead2466 + of EXT2_FIRST_INO to ensure compatibility with Linux 1.22467 + header files.2468 +2469 +Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu>2470 +2471 + * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the2472 + non-Linux case to use EINVAL by default, unless it isn't2473 + defined, in which case we use EXT2_ET_INVALID_ARGUMENT2474 + instead.2475 +2476 +1998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu>2477 +2478 + * Release of E2fsprogs 1.132479 +2480 +1998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu>2481 +2482 + * Makefile.in: Updated dependencies.2483 +2484 +1998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu>2485 +2486 + * initialize.c (ext2fs_initialize): Make sure that we allocate2487 + enough inodes so that we can make a valid filesystem.2488 +2489 +1998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu>2490 +2491 + * rw_bitmaps.c: Fixed signed/unsigned warnings.2492 +2493 + * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the2494 + function declaration.2495 +2496 + * dblist.c (make_dblist): Add safety check in case the dblist2497 + pointer passed in is null (in which case, assign it to2498 + fs->dblist). Fixed some signed/unsigned warnings.2499 +2500 + * bmap.c: Make addr_per_block be of type blk_t to avoid2501 + signed/unsigned warnings.2502 +2503 + * namei.c (ext2fs_follow_link): Remove uneeded extern from the2504 + function declaration.2505 +2506 + * get_pathname.c (get_pathname_proc): Use return value from2507 + ext2fs_get_mem, instead of checking if &gp->name is2508 + NULL.2509 +2510 + * dir_iterate.c (ext2fs_process_dir_block):2511 + * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern2512 + from the function declaration.2513 +2514 + * block.c (ext2fs_block_iterate2): If the read_inode call fails,2515 + return the error directly instead of jumping to the2516 + cleanup routine, since we don't need to do any cleanup.2517 +2518 + * alloc_table.c (ext2fs_allocate_group_table): Make this2519 + function take a dgrp_t for its group argument.2520 +2521 + * ext2fs.h: Make dgrp_t an __u32 type, and make2522 + fs->desc_group_count be of type dgrp_t.2523 +2524 +1998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu>2525 +2526 + * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment2527 + than 10 blocks when we need to expand the size of the2528 + badblocks list.2529 +2530 +1998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu>2531 +2532 + * Release of E2fsprogs 1.122533 +2534 +1998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu>2535 +2536 + * closefs.c (ext2fs_flush): Update the s_block_group_nr field as2537 + appropriate for all of the block group copies, so that2538 + it's clear where the beginning of the filesystem is on the2539 + disk. (For when the partition table gets scrod.)2540 +2541 + * ext2fs.h: Change the name of the feature from2542 + EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to2543 + EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel).2544 +2545 +1998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu>2546 +2547 + * inode.c (get_next_blockgroup): Fix bug where if2548 + get_next_blockgroup() is called early because of a missing2549 + inode table in a block group, the current_inode counter2550 + wasn't incremented correctly.2551 +2552 +1998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu>2553 +2554 + * read_bb.c (ext2fs_read_bb_inode): Make function more robust2555 + against a completely trashed bad block inode.2556 +2557 +1998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu>2558 +2559 + * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if2560 + the stride length hits a bad value, we retry the block2561 + allocation starting at the beginning of the block group.2562 +2563 + * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c,2564 + expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be2565 + e2_blkcnt_t to avoid collision with LFS API.2566 +2567 +1998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu>2568 +2569 + * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a2570 + way that avoids overflows on disk sizes greater than 4GB.2571 +2572 +1998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu>2573 +2574 + * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the2575 + return type for comparison functions for qsort.2576 +2577 + * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function2578 + declaration.2579 +2580 +1998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu>2581 +2582 + * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do2583 + inline functions.2584 +2585 + * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to2586 + evade a potential problem with glibc's header files trying2587 + to spike out linux/types.h.2588 +2589 + * ext2fs.h (ext2fs_resize_mem): Change the function prototype to2590 + include the old size of the memory, which is needed for2591 + some braindamaged memory allocation systems that don't2592 + support realloc().2593 +2594 + * badblocks.c (ext2fs_badblocks_list_add):2595 + bb_inode.c (clear_bad_block_proc):2596 + dblist.c (ext2fs_add_dir_block):2597 + icount.c (insert_icount_el):2598 + irel_ma.c (ima_put):2599 + rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to2600 + pass the old size of the memory to be resized to2601 + ext2fs_resize_mem().2602 +2603 +1998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu>2604 +2605 + * Makefile.in: Change to use new installation directory variables2606 + convention. Fix uninstall rules to take $(DESTDIR) into2607 + account.2608 +2609 +1998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu>2610 +2611 + * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform2612 + with 32 bit longs, then we need to manually define __s642613 + and __u64, since the current kernel header files don't2614 + define these if __STRICT_ANSI__ is defined. This is a2615 + problem if we are compiling with full GCC warnings, since2616 + we do need 64 bit support.2617 +2618 + * Makefile.in (OBJS): Remove bmove.o from files to be built,2619 + since we're not using ext2fs_move_blocks() and there2620 + is some question as to its usefulness in its current2621 + form.2622 +2623 + * bmap.c (block_bmap): Remove unused function.2624 +2625 + * bmove.c (process_block): Fix -Wall warning.2626 +2627 +1998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu>2628 +2629 + * block.c (ext2fs_block_iterate3): Make the ref_offset field2630 + contain the offset into the inode.i_blocks array when2631 + ref_block is zero. Since we haven't done a formal2632 + release of e2fsprogs since block_iterate2 was first2633 + introduced, I removed block_iterate2, and renamed2634 + block_iterate3 to be block_iterate2.2635 +2636 + * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c,2637 + expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change2638 + use of block_iterate and block_iterate2 to2639 + block_iterate2 with the new prototype for the2640 + interator function. (using blkcnt_t forr blockcount)2641 +2642 +1998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu>2643 +2644 + * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap,2645 + s_prealloc_blocks, s_prealloc_dir_blocks). Added2646 + conditional defines of new features COMPAT_DIR_PREALLOC,2647 + RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR,2648 + INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed2649 + the library to declare that we support COMPAT_DIR_PREALLOC,2650 + INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE.2651 +2652 + * fileio.c: Rename function ext2fs_file_llseek to be2653 + ext2fs_file_lseek, which is more accurate.2654 +2655 + * block.c: Add new function ext2fs_block_iterate3 which calls2656 + the iterator function with the blockcount argument of2657 + type blkcnt_t. This version of the function is2658 + allowed to handle large files; the other fucntions are2659 + not.2660 +2661 + * ext2fs.h: Add new type blkcnt_t2662 +2663 + * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG2664 +2665 + * block.c (ext2fs_block_iterate2): Fix bug where the block count2666 + field wasn't getting correctly incremented for sparse2667 + files when the indirect or doubly-indirect block2668 + specified in the inode was zero.2669 +2670 +Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>2671 +2672 + * unlink.c (unlink_proc):2673 + * lookup.c (lookup_proc):2674 + * link.c (link_proc):2675 + * get_pathname.c (get_pathname_proc):2676 + * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits2677 + from dirent->name_len, so it can be used for other2678 + purposes.2679 +2680 + * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE,2681 + and indicate that we have support for this incompatible2682 + option.2683 +2684 +Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>2685 +2686 + * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED.2687 +2688 +Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>2689 +2690 + * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the2691 + number of directories when the block group information is2692 + unreliable.2693 +2694 +1998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu>2695 +2696 + * inode.c (ext2fs_get_next_inode): Always do the check to see if the2697 + inode table is missing so that we catch the case where the2698 + first block group is missing.2699 +2700 + * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's2701 + needed.2702 +2703 +Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>2704 +2705 + * ext2_io.h, ext2fs.h: Protect against being included multiple times.2706 +2707 + * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h"2708 +2709 + * test_io.c (test_flush): Add a debugging printf when the flush2710 + method is called.2711 +2712 + * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already2713 + read in, return right away.2714 +2715 +Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>2716 +2717 + * bitops.h: Don't try to do i386 inline asm functions if the2718 + compiler isn't GCC.2719 +2720 + * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h,2721 + instead of linux/types.h, and e2_bitops.h instead of2722 + ext2fs/bitops.h.2723 +2724 + * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't2725 + necessary.2726 +2727 +Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>2728 +2729 + * inode.c (ext2fs_open_inode_scan): Initialize the group variables2730 + so that we don't need to call get_next_blockgroup() the2731 + first time around. Saves a bit of time, and prevents us2732 + from needing to assign -1 to current_group (which is an2733 + unsigned value).2734 +2735 + * icount.c (insert_icount_el): Cast the estimated number of inodes2736 + from a float to an ino_t.2737 +2738 + * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c,2739 + bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c,2740 + check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c,2741 + dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c,2742 + expanddir.c, ext2fs.h, fileio.c, freefs.c,2743 + get_pathname.c, getsize.c, icount.c, initialize.c,2744 + inline.c, inode.c, irel_ma.c, ismounted.c, link.c,2745 + lookup.c, mkdir.c, namei.c, native.c, newdir.c,2746 + openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c,2747 + rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c,2748 + tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c,2749 + valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is2750 + defined, then assume all of the2751 + ext2-specific header files are in a flat directory.2752 +2753 + * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast2754 + all assignments from void * to be compatible with C++.2755 +2756 +Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>2757 +2758 + * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to2759 + make sure the contents of the disk are flushed to disk.2760 +2761 +Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2762 +2763 + * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to2764 + avoid C++ namespace clash.2765 +2766 + * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to2767 + avoid C++ namespace clash.2768 +2769 + * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c,2770 + irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c,2771 + ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c,2772 + unlink.c: Change private to be priv_data (to avoid C++2773 + namespace clash)2774 +2775 +Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2776 +2777 + * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more2778 + paranoid about validating the directory counts from the2779 + block group information.2780 +2781 + * all files: Don't include stdlib.h anymore; include it in2782 + ext2_fs.h, since that file requires stdlib.h2783 +2784 +Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2785 +2786 + * expanddir.c (ext2fs_expand_dir): Check to make sure the block2787 + bitmap is loaded, and return an error if it is not.2788 + (expand_dir_proc): Only use ext2fs_write_dir_block when2789 + writing a directory block, not when writing out a fresh2790 + indirect block.2791 +2792 +Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2793 +2794 + * Makefile.in, tst_getsize.c: Added new file which is used to test2795 + the ext2fs_get_device_size function.2796 +2797 + * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code.2798 +2799 +Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2800 +2801 + * ext2fs.h: Make ext2fs_get_mem take an unsigned argument.2802 +2803 + * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size,2804 + ext2fs_file_get_fs): New functions added.2805 +2806 +2807 +Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU>2808 +2809 + * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call2810 + com_err if OMIT_COM_ERR is defined.2811 +2812 +Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2813 +2814 + * Rename new error codes to _ET_ in them for consistency.2815 +2816 +Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2817 +2818 + * [all files, basically]: Added definition of ext2fs_get_mem,2819 + ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and2820 + changed all library routines to use these wrapper functions.2821 +2822 + * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND2823 + instead of the system error messages.2824 +2825 + * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and2826 + EXT2_DB_NOT_FOUND2827 +2828 + * ext2fs.h: Added function declarations and constants for bmap.c2829 + and fileio.c.2830 +2831 + * ext2_err.et.in: Added new error messages EXT2_FILE_RO and2832 + EXT2_ET_MAGIC_EXT2_FILE2833 +2834 + * Makefile.in: Added files bmap.c and fileio.c, and temporarily2835 + commented out brel_ma.c and irel_ma.c2836 +2837 + * bmap.c: New file which maps a file's logical block number to its2838 + physical block number.2839 +2840 + * fileio.c: New file which implements simple file reading and2841 + writing primitives.2842 +2843 + * alloc.c (ext2fs_alloc_block): New function which allocates a2844 + block, zeros it, and updates the filesystem accounting2845 + records appropriately.2846 +2847 +Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2848 +2849 + * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY,2850 + EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL,2851 + EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY2852 +2853 + * Change various library files to use these functions instead of2854 + EINVAL, ENOENT, etc.2855 +2856 +Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2857 +2858 + * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we2859 + need to declare llseek().2860 +2861 +Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2862 +2863 + * Rename io.h to be ext2_io.h (avoid namespace collisions)2864 +2865 + * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H2866 +2867 +Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2868 +2869 + * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek()2870 +2871 + * icount.c (ext2fs_icount_validate):2872 + * bmove.c (process_block): Fix lint error in type for fprintf().2873 +2874 +Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2875 +2876 + * inode.c (ext2fs_check_directory): Add support for the callback2877 + to return the error code EXT2_ET_CALLBACK_NOTHANDLED.2878 +2879 +Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2880 +2881 + * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the2882 + padding of the bitmap to be all one's.2883 +2884 +Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu>2885 +2886 + * llseek.c: Added missing semicolon to glibc fixup declaration of2887 + llseek().2888 +2889 + * bmove.c: Add #include of errno.h2890 +2891 +Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2892 +2893 + * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've2894 + added a new field to the io_channel (app_data).2895 +2896 + * io.h: Add a new element to the io_channel structure, app_data.2897 +2898 + * initialize.c, openfs.c: Set io->app_data to point at the2899 + filesystem handle.2900 +2901 +Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2902 +2903 + * io.h: Change the prototype of ext2fs_llseek() to use int's2904 + instead of unsigned int's.2905 +2906 + * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype2907 + to make life easer for GNU Libc 2.2908 +2909 + * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext22910 + filesystem has its bitmaps stored as 32-bit words with bit2911 + 0 as the LSB of each word. Thus a bitmap with only bit 02912 + set would be, as a string of bytes, 00 00 00 01 00 ... To2913 + cope with this, we byte-reverse each word of a bitmap if2914 + we have a big-endian filesystem, that is, if we are *not*2915 + byte-swapping other word-sized numbers.2916 +2917 +Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2918 +2919 + * dosio.c: New file to do DOS/BIOS disk accesses.2920 +2921 + * namei.c (open_namei): Make pathlen be of type size_t.2922 +2923 + * llseek.c: Always #include stdlib.h since it's need to define2924 + size_t.2925 +2926 + * io.h: Use errcode_t for magic numbers.2927 +2928 + * icount.c (get_icount_el): Use size_t where appropriate2929 +2930 + * dupfs.c (ext2fs_dup_handle):2931 + * dblist.c (dir_block_cmp): Use size_t where appropriate.2932 +2933 + * read_bb.c (ext2fs_read_bb_inode):2934 + * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t2935 + and size_t where appropriate.2936 +2937 + * closefs.c (ext2fs_flush): Use dgrp_t instead of int where2938 + appropriate.2939 +2940 + * openfs.c (ext2fs_open):2941 + * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where2942 + appropriate.2943 +2944 + * rw_bitmaps.c (read_bitmaps):2945 + * irel_ma.c:2946 + * inode.c (ext2fs_write_inode):2947 + * initialize.c (ext2fs_initialize):2948 + * brel_ma.c: Fix to make be 16-bit safe.2949 +2950 + * link.c (ext2fs_link):2951 + * unlink.c (ext2fs_unlink):2952 + * lookup.c (lookup_proc):2953 + * ismounted.c (ext2fs_check_if_mounted):2954 + * block.c (xlate_func): Add #pragma argsused for Turbo C.2955 +2956 +Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2957 +2958 + * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t2959 + type.2960 +2961 + * bitmaps.c (make_bitmap): Use size_t instead of int where2962 + appropriate.2963 +2964 + * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C.2965 +2966 + * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the2967 + group number.2968 +2969 + * get_pathname.c: Use ino_t instead of int where appropriate.2970 +2971 + * ext2fs.h: Make the magic structure element be errcode_t instead2972 + of int.2973 +2974 + * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c2975 + bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c2976 + cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c2977 + dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c2978 + icount.c initialize.c inline.c inode.c irel_ma.c link.c2979 + llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c2980 + read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c2981 + test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c2982 + valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H2983 +2984 +Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2985 +2986 + * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno2987 + is zero, then return EXT2_IO_LLSEEK_FAILED.2988 +2989 + * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED.2990 +2991 + * Release of E2fsprogs 1.112992 +2993 +Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2994 +2995 + * dblist.c (ext2fs_dblist_count): Added new function which returns2996 + the number of directory blocks in dblist.2997 +2998 +Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>2999 +3000 + * unix_io.c (unix_flush): Make the io_channel flush function do a3001 + fsync to flush the kernel buffers to disk.3002 +3003 +Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3004 +3005 + * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the3006 + current inode number wasn't being set by the3007 + goto_blockgroup function.3008 +3009 +Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3010 +3011 + * bmove.c (ext2fs_move_blocks): New function which takes a bitmap3012 + of blocks which need to be moved, and moves those blocks3013 + to another location in the filesystem.3014 +3015 + * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a3016 + bitmap, make sure all of the new parts of the bitmap are3017 + zero.3018 +3019 +Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3020 +3021 + * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap3022 + wasn't being returned to the caller.3023 +3024 + * alloc_tables.c (ext2fs_allocate_group_table): Add new function3025 + ext2fs_allocate_group_table() which sets the group tables3026 + for a particular block group. The relevant code was3027 + factored out of ext2fs_allocate_tables().3028 +3029 + * dblist.c (make_dblist): Adjust the initial size of the directory3030 + block list to be a bit more realistic (ten plus twice the3031 + number of directories in the filesystem).3032 +3033 +Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3034 +3035 + * badblocks.c (ext2fs_badblocks_list_test): Fix bug where3036 + ext2fs_badblocks_list_test would test the list (and exceed3037 + array boundaries) if there were no bad blocks on the bad3038 + blocks list. (Showed up when user tried: mke2fs -c -b 4096).3039 +3040 +Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>3041 +3042 + * Release of E2fsprogs version 1.103043 +3044 +Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>3045 +3046 + * alloc_tables.c (ext2fs_allocate_tables): Correctly place the3047 + inode and block bitmaps based on the RAID 0 stride3048 + parameter (which is passed by mke2fs).3049 +3050 + * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by3051 + mke2fs to communicate the stride length to3052 + ext2fs_allocate_tables()3053 +3054 +Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu>3055 +3056 + * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.23057 + systems. (We can't assume that the new filesystem types3058 + are supported.)3059 +3060 +Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3061 +3062 + * alloc_tables.c (ext2fs_allocate_tables): Make sure that we3063 + allocate the inode and block bitmaps inside block group at3064 + all times.3065 +3066 +Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3067 +3068 + * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the3069 + filesystem has no free blocks, ext2fs_new_block would loop3070 + forever.3071 +3072 + * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle3073 +3074 + * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only3075 + free if refcount goes to zero.3076 +3077 + * inode.c (create_icache): Initialize refcount to 1.3078 +3079 + * ext2fsP.h: Added refcount to ext2_inode_cache3080 +3081 + * dblist.c (ext2fs_copy_dblist): New function to copy a directory3082 + block list.3083 +3084 + * badblocks.c (ext2fs_badblocks_copy): New function to copy a3085 + badblocks structure.3086 +3087 +Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3088 +3089 + * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap.3090 +3091 + * unix_io.c, test_io.c (unix_open, test_open): Initialize the3092 + refcount to 1.3093 + (unix_close, test_close): Decrement the refcount and only3094 + close the io_channel if the refcount goes to 0.3095 +3096 + * io.h: Add refcount to the io_channel structure. Add new macro3097 + interface io_channel_bumpcount() to bump the refcount.3098 +3099 +Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3100 +3101 + * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode3102 + cache in the filesystem handle, instead of the inode cache3103 + in a static variable.3104 +3105 + * freefs.c: Added static function to free the inode cache (called by3106 + ext2fs_free).3107 +3108 + * ext2fsP.h: Added definition of the ext2_inode_cache structures.3109 +3110 + * ext2fs.h: Added pointer to the inode_cache structure.3111 +3112 + * block.c (block_iterate_ind, block_iterate_dind,3113 + block_iterate_tind): If there are holes in the indirect,3114 + doubly indirect, or triply indirect blocks, increment the3115 + block count field automatically.3116 +3117 +Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3118 +3119 + * Release of E2fsprogs version 1.093120 +3121 +Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3122 +3123 + * version.c (ext2fs_parse_version_string): Check the passed in3124 + version string (instead of the hard-coded one).3125 +3126 + * alloc_tables.c (ext2fs_allocate_tables): If the last block is3127 + greater filesystem size, clamp it to prevent allocating a3128 + block or inode bitmap beyond the filesystem.3129 +3130 + * initialize.c (ext2fs_initialize): Fix bug where the metatdata3131 + overhead calculation was accidentally removed.3132 +3133 +Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3134 +3135 + * Release of E2fsprogs version 1.083136 +3137 +Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3138 +3139 + * dblist.c (ext2fs_set_dir_block): New function which sets the3140 + block of a dblist entry, given the directory inode and3141 + blockcnt.3142 +3143 +Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3144 +3145 + * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and3146 + inode bitmaps at staggered locations across the block3147 + groups, to avoid concentrating the bitmaps on a small3148 + number of disks when using striped RAID arrays.3149 +3150 + * initialize.c (ext2fs_initialize): By default, choose the maximum3151 + possible number of blocks per group (based on the size of3152 + the bitmaps in the blocksize).3153 +3154 +Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3155 +3156 + * initialize.c (ext2fs_initialize): Add support for3157 + EXT2_COMPAT_SPARSE_SUPER feature.3158 +3159 + * closefs.c (ext2fs_bg_has_super): New function to determine3160 + whether or a particular block group should have a3161 + superblock and block group descriptor. Used for the3162 + EXT2_COMPAT_SPARSE_SUPER feature is turned on.3163 + (ext2fs_flush): Check ext2fs_bg_has_super to see whether3164 + or not the superblock should be written out for the block3165 + group.3166 +3167 + * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag3168 + for sparse duplicate superblocks.3169 +3170 + * version.c (ext2fs_get_library_version): New function which3171 + returns the library version.3172 +3173 + * version.c (ext2fs_parse_version_string): New function which3174 + parses a version string and returns a version number,3175 + so application programs can compare version numbers as3176 + integers.3177 +3178 +Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3179 +3180 + * icount.c (ext2fs_create_icount): Change function so that it also3181 + takes a new argument which contains a "hint" icount3182 + structure. This "hint" icount allows the create function3183 + to set up the sorted list in advance. This reduces3184 + significantly the amount of data moving needed to insert3185 + these inodes into the list later.3186 +3187 + * icount.c (ext2fs_icount_validate): New function which validates3188 + that the icount structure's rep invariant.3189 +3190 + * icount.c (get_icount_el): Completely revamped implementation3191 + to subsume put_icount_el(). Put_icount_el() used to3192 + use an O(N) implementation to insert in the middle3193 + of the icount list. It now uses a O(ln N) to search3194 + for where the icount should be inserted, and then uses3195 + a memcpy to move the list down (instead of a for loop).3196 +3197 + * icount.c (ext2fs_icount_fetch, ext2fs_icount_store,3198 + ext2fs_icount_increment, ext2fs_icount_decrement): Check3199 + to see if the inode is within bounds; if it isn't, return3200 + EINVAL.3201 +3202 + * bitops.h (ext2fs_test_generic_bitmap): Fix error message given3203 + when a bad inode number is passed to test_generic_bitmap3204 + to be EXT2FS_TEST_ERROR instead of the wrong3205 + EXT2FS_UNMARK_ERROR.3206 +3207 +Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu>3208 +3209 + * Release of E2fsprogs version 1.073210 +3211 +Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3212 +3213 + * Makefile.in (ELF_VERSION): Change version to be 2.23214 +3215 +Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3216 +3217 + * alloc.c (ext2fs_get_free_blocks): Change routine to use3218 + ext2fs_fast_test_block_bitmap_range().3219 +3220 + * bitops.h (ext2fs_fast_test_block_bitmap_range,3221 + ext2fs_test_block_bitmap_range: New inline functions which3222 + test to see whether a contiguous range of blocks is3223 + available.3224 +3225 +Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3226 +3227 + * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use3228 + use ext2fs_badblocks_* instead of badblocks_*3229 +3230 + * bb_compat.c: New file which translates between old badblocks_*()3231 + names to ext2fs_badblocks_*()3232 +3233 + * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from3234 + link.c (since e2fsck doesn't use ext2fs_unlink()).3235 +3236 + * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains3237 + bitmap resizing routine moved from bitmaps.c, since e2fsck3238 + doesn't need to use this function.3239 +3240 + * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file,3241 + since e2fsck only needs ext2fs_lookup.3242 +3243 +Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3244 +3245 + * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not3246 + already set; this is needed so that programs like dump3247 + which use the inode scan functions will deal with3248 + filesystems that have bad blocks in the inode table.3249 +3250 +Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3251 +3252 + * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate):3253 + Moved to ext2fsP.h, since it doesn't need to be part of3254 + the public interface.3255 +3256 + * dir_iterate.c: Move ext2_dir_iterate out of namei.c.3257 +3258 +Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3259 +3260 + * dblist.c (ext2fs_get_num_dirs): New file, which implements a3261 + directory block list abstraction. (Code moved from3262 + e2fsck).3263 +3264 + * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to3265 + to inode.c (since no one else should be peeking inside it!)3266 +3267 + * valid_blk.c (ext2_inode_has_valid_blocks): New function.3268 +3269 + * openfs.c (ext2fs_open): Check the feature set in the ext23270 + superblock, and refuse to open filesystems if they contain3271 + incompatible features. (Can be overriden with the3272 + EXT2_FLAG_FORCE3273 +3274 +Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3275 +3276 + * block.c (ext2fs_block_iterate2): Added new function3277 + ext2fs_block_iterate2 which changes the function3278 + signature of the callback function to include the3279 + referencing block and offset.3280 +3281 + * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function3282 + ext2fs_inode_scan_goto_blockgroup which allows an3283 + application to jump to a particular block group while3284 + doing an inode scan.3285 +3286 +Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>3287 +3288 + * dirblock.c: Include string.h, since we use memcpy().3289 +3290 +Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3291 +3292 + * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns3293 + a long not an int; this doesn't matter on i386 machines,3294 + but it does on Alpha's.3295 +3296 +Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3297 +3298 + * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode3299 + table pointer is NULL, then return an error indicating3300 + that the inode table is missing.3301 + (get_next_blockgroup, get_next_blocks,3302 + ext2fs_get_next_inode): Don't treat a missing inode table3303 + as permanent error. Return MISSING_INODE_TABLE, but as an3304 + advisory error code, much like BAD_BLOCK_IN_INODE_TABLE.3305 +3306 + * rw_bitmaps.c (ext2fs_write_block_bitmap,3307 + ext2fs_write_inode_bitmap): If the inode or block bitmap3308 + block is zero, then don't write out the inode or block3309 + bitmap. The idea here is to avoid stomping on the3310 + superblock.3311 + (read_bitmaps): If the inode or block bitmap block is3312 + zero, then fill in that portion of the inode or block3313 + bitmap with all zeros.3314 +3315 + * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad3316 + blocks in inode table when the inode table size is3317 + non-standard (and can therefore span blocks).3318 +3319 +Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3320 +3321 + * alloc.c (ext2fs_new_block): Fix fencepost error in3322 + ext2fs_new_block; make sure we don't try to allocate the3323 + first block beyond the end of the filesystem.3324 +3325 +Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3326 +3327 + * inode.c (check_for_inode_bad_blocks): New function called by3328 + get_next_blocks() to avoid reading in bad blocks marked in3329 + fs->badblocks. Inodes located in bad blocks are returned3330 + by ext2fs_get_next_inode() returns the error code3331 + EXT2_ET_BAD_BLOCK_IN_INODE_TABLE.3332 +3333 + * alloc_tables.c (ext2fs_allocate_tables): New function which3334 + performs the part of mke2fs's job of allocating the3335 + filesystem tables.3336 +3337 + * test_io.c (test_close): IO manager which is used for testing3338 + purposes.3339 +3340 +Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3341 +3342 + * inode.c (ext2fs_get_next_inode): Separate out the function of3343 + setting up for a new block group to get_next_blockgroup().3344 + Separate out the function of reading in blocks of the3345 + inode table to get_next_blocks().3346 +3347 + * ext2fs.h: Add the badblocks list to the ext2_filsys entry3348 +3349 + * badblocks.c (badblocks_list_add, badblocks_list_test): Add3350 + blocks to the badblock list in sorted order. This allows3351 + badblocks_list_test to be coded using a binary search for3352 + speed.3353 +3354 +Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3355 +3356 + * Release of E2fsprogs version 1.063357 +3358 +Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3359 +3360 + * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c,3361 + open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for3362 + consistency's sake.3363 +3364 + * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is3365 + set, then only write out the master superblock.3366 +3367 +Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3368 +3369 + * block.c (ext2fs_block_iterate): Fixed bug which caused3370 + block_iterate to fail to handle HURD created filesystems;3371 + it tested the inode translator field before the inode was3372 + loaded.3373 +3374 +Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3375 +3376 + * initialize.c (ext2fs_initialize): Make sure the description for3377 + the inode bitmap is set correctly.3378 +3379 + * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo.3380 +3381 +Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3382 +3383 + * Release of E2fsprogs version 1.053384 +3385 +Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3386 +3387 + * initialize.c: Override the kernel's idea of default3388 + checkinterval from 0 (never) to 180 days.3389 +3390 +Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3391 +3392 + * namei.c (ext2fs_namei_follow): New function which follows3393 + symbolic link (if any) at the target.3394 +3395 +Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3396 +3397 + * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support3398 + for shortcut function fs->read_inode() and fs->write_inode().3399 + Added inode_cache to reduce CPU time spent in doing3400 + byte swapping.3401 +3402 + * swapfs.c (ext2fs_swap_super): Swap the new fields in a V23403 + superblock.3404 +3405 + * namei.c (ext2fs_follow_link): New function.3406 + (ext2fs_namei): Extended to have support for chasing3407 + symbolic links. ext2fs_namei() still returns an inode3408 + which is a symbolic link. Symbolic links are only chased3409 + while resolving the containing directory. To chase3410 + symbolic links of the final result, use3411 + ext2fs_follow_link().3412 +3413 +Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3414 +3415 + * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP.3416 +3417 + * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines3418 + provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru).3419 +3420 +Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3421 +3422 + * initialize.c (ext2fs_initialize): On systems where the byte3423 + order is not i386 compatible, set the swap_byte flag.3424 +3425 + * inode.c (inocpy_with_swap): Check to see if inode contains a3426 + fast symlink before swapping the inode block fields. This3427 + required adding a new argument to inocpy_with_swap to3428 + determine whether the mode field is in host order or not.3429 +3430 +Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3431 +3432 + * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On3433 + the sparc, if EXT2_STD_BITOPS set, use the standard3434 + i386-compatible bitmask operations, instead on the3435 + non-standard native bitmask operators.3436 +3437 +Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3438 +3439 + * block.c (ext2fs_block_iterate): Cause block iterator to return3440 + the HURD translator block (along with everything else).3441 + If the flag BLOCK_FLAG_DATA_ONLY is passed to the block3442 + iterator, then don't return any meta data blocks3443 + (including the HURD translator).3444 +3445 +Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3446 +3447 + * gen_uuid.c: New file, which generates DCE-compatible UUIDs.3448 +3449 + * uuid.c: New file, containing UUID utility functions.3450 +3451 +Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3452 +3453 + * ext2fs.h: Add a definition of the "real" ext2 superblock.3454 +3455 +Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3456 +3457 + * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type.3458 +3459 +Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3460 +3461 + * openfs.c (ext2fs_open): If the blocksize in the superblock is3462 + zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since3463 + that's a basic value that must be correct for the rest of3464 + the library to work.3465 +3466 + * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error3467 + code.3468 +3469 +Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>3470 +3471 + * Release of E2fsprogs version 1.043472 +3473 +Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu>3474 +3475 + * Release of E2fsprogs version 1.033476 +3477 +Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu>3478 +3479 + * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit):3480 + Change the m68k bit numbering for bitmasks to match with3481 + the bit numbering used by all other ext2 implementations.3482 +3483 +Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu>3484 +3485 + * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan,3486 + ext2fs_open_inode_scan): Support dynamically-sized inodes.3487 +3488 +Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu>3489 +3490 + * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support3491 + dynamically-sized inodes.3492 +3493 + * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be3494 + loaded.3495 +3496 +Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu>3497 +3498 + * initialize.c (ext2fs_initialize): Catch an error condition where3499 + the passed in size is *really* too small.3500 +3501 + * alloc.c (ext2fs_new_inode):3502 + * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to3503 + get first inode.3504 +3505 +Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu>3506 +3507 + * getsize.c (ext2fs_get_device_size): Open the device read-only3508 + when trying to determine its size.3509 +3510 +Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu>3511 +3512 + * Release of E2fsprogs version 1.023513 +3514 +Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu>3515 +3516 + * rw_bitops.c (ext2fs_write_block_bitmap):3517 + * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):3518 + * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit):3519 + Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit,3520 + to avoid conflicts with with kernel include files. Also3521 + rename ADDR and CONST_ADDR to EXT2FS_ADDR and3522 + EXT2FS_CONST_ADDR.3523 +3524 +Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu>3525 +3526 + * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c3527 +3528 + * swapfs.c (ext2fs_swap_super): Put an #ifdef check around3529 + s_def_resuid and s_def_resgid for backwards compatibility.3530 +3531 +Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu>3532 +3533 + * bitops.h: Added #ifdef's for Sparc.3534 +3535 +Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu>3536 +3537 + * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl()3538 + declaration3539 +3540 + * closefs.c: #include <string.h> to pick up memset() declaration3541 +3542 +Mon Sep 4 21:45:29 1995 Remy Card <card@bbj>3543 +3544 + * Makefile.in: Added support for BSD shared libraries.3545 +3546 + * initialize.c (ext2fs_initialize): Correctly set the s_creator_os3547 + flag.3548 +3549 +Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu>3550 +3551 + * unix_io.c (unix_open): Add a double check; if the passed in name3552 + is NULL, return EXT2_ET_BAD_DEVICE_NAME.3553 +3554 + * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code3555 +3556 +Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu>3557 +3558 + * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of3559 + S_ISDIR.3560 +3561 +Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu>3562 +3563 + * getsize.c (ext2fs_get_device_size): Add support for reading the3564 + partition size from a BSD disk label.3565 +3566 +Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>3567 +3568 + * getsize.c (ext2fs_get_device_size): New function that determins3569 + the size of a device. Used by mke2fs and e2fsck.3570 +3571 +Sat Aug 12 03:09:54 1995 Remy Card <card@bbj>3572 +3573 + * Makefile.in (install): Install static libraries in $(ulibdir)3574 + (/usr/lib on Linux) instead of $(libdir) (/lib on Linux).3575 +3576 +Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl>3577 +3578 + * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap):3579 + Move these functions to freefs.c.3580 +3581 + * closefs.c (ext2fs_flush): If swapping blocks, clear the group3582 + descriptors shadow memory to keep purify quiet. (This3583 + also has the nice benefit that the unused portion of the3584 + shadow descriptors are zeroed out.)3585 +3586 + * dirblock.c (ext2fs_write_dir_block): We need to use3587 + dirent->rec_len *before* it's byteswapped to find the3588 + location of the next directory structure!3589 +3590 + * alloc.c (ext2fs_new_inode): Fix bug which could potentially3591 + cause ext2fs_new_inode to loop infinitely if we're trying3592 + to allocate an inode in group #0 and there are no free3593 + inodes at all in the system.3594 +3595 + * closefs.c: #include <errno.h> if it exists.3596 +3597 +Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>3598 +3599 + * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for3600 + BLOCK_FLAG_APPEND. Added documentation for the block3601 + interator flags.3602 +3603 +Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>3604 +3605 + * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the3606 + installation directories correctly.3607 +3608 +Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu>3609 +3610 + * namei.c (process_dir_block):3611 + * mkdir.c (ext2fs_mkdir):3612 + * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block3613 + to read/write the directory block.3614 +3615 + * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New3616 + file containing functions for reading and writing3617 + directory blocks (byte swapping if necesssary)3618 +3619 + * block.c (block_iterate_ind, block_iterate_dind,3620 + block_iterate_tind): Byte swap the block addresses if3621 + EXT2_SWAP_BYTES is set (and swap them back before writing3622 + them out.)3623 +3624 + * inode.c (inocpy_with_swap): New function.3625 + (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode):3626 + Call inocpy_with_swap if EXT2_SWAP_BYTES if set.3627 +3628 + * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap3629 + the superblock and group descriptors before writing it out.3630 +3631 + * openfs.c (ext2fs_open): If the magic number is byte-swapped,3632 + then set the EXT2_SWAP_BYTES and byte-swap the superblock3633 + and group descriptors.3634 +3635 + * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions3636 + to desp ext2 filesystem structures.3637 +3638 + * bitops.c (set_bit, clear_bit, test_bit): Use modifications3639 + supplied by Pete A. Zaitcev so that the C language3640 + versions of these functions are more portable. They will3641 + now work on both little and big endian systems, and the3642 + assumption that 32-bit integers are used is gone.3643 +3644 + * bitops.h (ext2_swab16, ext2_swab32): Added new functions for3645 + doing byte swapping.3646 +3647 + * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that3648 + byte swapping should take place.3649 +3650 +Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu>3651 +3652 + * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end,3653 + ext2fs_compare_inode_bitmap_end): Added new file3654 + containing routines to compare bitmaps.3655 +3656 + * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP):3657 + Added new error codes.3658 +3659 +Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu>3660 +3661 + * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer;3662 + if the magic number is correct, it will be allocated.3663 +3664 +Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu>3665 +3666 + * block.c (block_iterate_ind, block_iterate_dind,3667 + block_iterate_tind): Don't recompute block_nr each loop;3668 + just increment it! Factor check of BLOCK_FLAG_APPEND out3669 + of the loop. Factor mask of BLOCK_CHANGED into changed3670 + variable out of the loop. (block_iterate_ind, in3671 + particular, gets called a lot, so every little3672 + optimization helps.)3673 +3674 +Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu>3675 +3676 + * block.c (block_iterate_ind, block_iterate_dind,3677 + block_iterate_tind): Precompute limit of loop to speed up3678 + block_iterate_ind and company.3679 +3680 + * bitops.h (ext2fs_fast_mark_block_bitmap,3681 + ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap,3682 + ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap,3683 + ext2fs_fast_test_inode_bitmap): Add fast version of these3684 + functions, which don't do range checking.3685 +3686 + * bitops.h (ext2fs_get_block_bitmap_start,3687 + ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end,3688 + ext2fs_get_inode_bitmap_end): Add new accessor functions3689 + which return the start and end points of the bitmaps.3690 +3691 +Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu>3692 +3693 + * llseek.c (ext2_llseek): If the offset is small enough, use lseek3694 + instead of llseek. The errno if the offset is too large3695 + and lseek is not supported should be EINVAL, not -EINVAL.3696 +3697 +Thu Jun 15 23:43:02 1995 Remy Card <card@bbj>3698 +3699 + * Makefile.in: Added support for ELF shared libraries.3700 + Fixed typos in the compilation rules.3701 + (distclean): Added Makefile.3702 +3703 + * llseek.c (llseek): New function, if llseek() does not exist in the3704 + C library.3705 + (ext2_llseek): Changed to call llseek().3706 +3707 +Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>3708 +3709 + * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long.3710 +3711 +Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>3712 +3713 + * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR.3714 +3715 + * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of3716 + the S_*, which are normally defined in <sys/stat.h>. This3717 + allows us to compile e2fsprogs on a non-Linux system,3718 + which may have a different value for S_IFDIR.3719 +3720 +Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu>3721 +3722 + * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti();3723 + this is a user-mode application!3724 +3725 +Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>3726 +3727 + * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef3728 + __linux__ so that non-linux systems won't see it.3729 +3730 + * alloc.c: Include <errno.h> if possible.3731 + * badblocks.c: Ditto.3732 + * bb_inode.c: Ditto.3733 + * bitmaps.c: Ditto.3734 + * block.c: Ditto.3735 + * expanddir.c: Ditto.3736 + * get_pathname.c: Ditto.3737 + * initialize.c: Ditto.3738 + * inode.c: Ditto.3739 + * llseek.c: Ditto.3740 + * mkdir.c: Ditto.3741 + * namei.c: Ditto.3742 + * newdir.c: Ditto.3743 + * openfs.c: Ditto.3744 + * rw_bitmaps.c: Ditto.3745 + * unix_io.c: Ditto.3746 +3747 + * Makefile.in: Rewritten to conform to GNU coding standards and3748 + support separate compilation directories.3749 +3750 +Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu>3751 +3752 + * initialize.c (ext2fs_initialize): Don't allow more than one3753 + bitmaps's worth of inodes in a group.3754 +3755 +Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost>3756 +3757 + * llseek.c (ext2_llseek): Added error checking to the llseek()3758 + compat code to protect against overflow. This only3759 + applies to 1.0 and early 1.1 kernels, which don't support3760 + the llseek() system call.3761 +3762 +Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11)3763 +3764 + * unix_io.c (unix_open): Initialize the read_error and write_error3765 + io_channel pointers to be null.3766 +3767 + * bb_inode.c (clear_bad_block_proc): If an illegal block number is3768 + found, clear it but don't try to update the filesystem3769 + accounting information, since that's hopeless anyway.3770 +3771 + * block.c (bloblock_iterate_ind, bloblock_iterate_dind,3772 + bloblock_iterate_tind): Check to see if the indirect blocks are3773 + valid before trying to read them.3774 +3775 + * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK,3776 + EXT2_ET_BAD_TIND_BLOCK): Add new error codes.3777 +3778 + * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap,3779 + ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap,3780 + ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an3781 + illegal block or inode number is passed in, return instead3782 + of trying to test, set, or clear the bit.3783 +3784 +Mon Nov 7 21:32:33 1994 Remy Card <card@bbj>3785 +3786 + * Makefile: Added a dummy install target in case shared libraries3787 + are not built.3788 +3789 +Mon Oct 24 14:11:44 1994 (tytso@rsx-11)3790 +3791 + * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how3792 + the real last block of the bitmap should be calculated.3793 +3794 +Wed Sep 7 10:05:36 1994 (tytso@rsx-11)3795 +3796 + * bitmaps.c (ext2fs_fudge_inode_bitmap_end,3797 + ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap,3798 + ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap,3799 + ext2fs_free_block_bitmap): Add magic number checking for3800 + the inode and block bitmaps.3801 +3802 + * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct3803 + magic number for a block bitmap instead of an inode bitmap.3804 +3805 + * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add3806 + magic number checking for the inode_scan structure.3807 +3808 + * badblocks.c (badblocks_list_free, badblocks_list_add,3809 + badblocks_list_test, badblocks_list_iterate_begin,3810 + badblocks_list_iterate, badblocks_list_iterate_end): Add3811 + magic number checking for the badblocks_list and3812 + badblocks_iterate structures.3813 +3814 + * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL):3815 + * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk,3816 + unix_write_blk, unix_flush): Add magic number checking3817 + both for io_channel structure and unix_private_data3818 + structure.3819 +3820 + * openfs.c (ext2fs_open): Add check for io_manager structure's3821 + magic number.3822 +3823 + * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap,3824 + ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap,3825 + ext2fs_read_bitmaps, ext2fs_write_bitmaps):3826 + * read_bb.c (ext2fs_read_bb_inode):3827 + * read_bb_file.c (ext2fs_read_bb_FILE):3828 + * newdir.c (ext2fs_new_dir_block):3829 + * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei):3830 + * link.c (ext2fs_link, ext2fs_unlink):3831 + * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode,3832 + ext2fs_write_inode, ext2fs_get_blocks,3833 + ext2fs_check_directory):3834 + * get_pathname.c (ext2fs_get_pathname):3835 + * expanddir.c (ext2fs_expand_dir):3836 + * block.c (ext2fs_block_iterate):3837 + * bitmaps.c (ext2fs_allocate_inode_bitmap,3838 + ext2fs_allocate_block_bitmap):3839 + * bb_inode.c (ext2fs_update_bb_inode):3840 + * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks):3841 + * check_desc.c (ext2fs_check_desc):3842 + * closefs.c (ext2fs_close, ext2fs_flush):3843 + * freefs.c (ext2fs_free): Add check for ext2_filsys magic number.3844 +3845 + * Makefile:3846 + * ext2fs.h:3847 + * openfs.c:3848 + * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from3849 + openfs.c into its own file.3850 +3851 + * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for3852 + structure magic numbers.3853 +3854 + * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear3855 + the EXT2_VALID_FS flag in the backup superblock blocks, so that if3856 + someone uses the -b option to specify the use of the backup3857 + superblock --- this usually means that the main superblock is3858 + toast. :-)3859 +3860 + * ext2fs.h:3861 + * ext2_err.et (EXT2_ET_REV_TOO_HIGH):3862 + * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a3863 + revision level to the superblock.3864 +3865 +Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11)3866 +3867 + * ext2fs.h:3868 + * bitmaps.c:3869 + * bitops.c3870 + * bitops.h:3871 + * openfs.c:3872 + * initialize.c: Completely revamped the inode and block bitmap3873 + structures, so that they can be better chance of being extensible3874 + in a shared library. They are now their own type, instead of3875 + being a char *. Also, the function signatures of3876 + ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap,3877 + ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap,3878 + ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were3879 + changed to eliminate the ext2_filsys argument, since it is no3880 + longer necessary.3881 +3882 +Wed Aug 17 21:46:44 1994 Remy Card (card@bbj)3883 +3884 + * unix_io.c (unix_read_blk and unix_write_blk): use the llseek3885 + system call if available.3886 +3887 + * llseek.c: new file. This is the stub calling the llseek system3888 + call which allows supports for 2GB+ file systems.3889 +3890 + * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores3891 + the creator operating system.3892 +3893 +Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11)3894 +3895 + * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up3896 + the group descriptor statistics in addition to everything else.3897 + This relieves mke2fs of the responsibility of doing it.3898 +3899 + * bitops.c, bitops.h: Add assembly inline functions for the 68000.3900 + Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or3901 + not the generic C function equivalents should be included or not.3902 +3903 + * openfs.c (ext2fs_open): If a superblock is specified, then use3904 + the backup group descriptors that go along with this superblock,3905 + instead of using the primary group descriptors. This allows3906 + e2fsck to recover filesystems where the primary group descriptors3907 + have been trashed.3908 +3909 +3910 diff -Naur silo-1.4.13.orig/libext2fs/Makefile silo-1.4.13/libext2fs/Makefile3911 --- silo-1.4.13.orig/libext2fs/Makefile 1969-12-31 16:00:00.000000000 -08003912 +++ silo-1.4.13/libext2fs/Makefile 2006-11-02 19:21:44.212761475 -08003913 @@ -0,0 +1,21 @@3914 +3915 +include ../Rules.make3916 +3917 +DEFS = -DLOCALEDIR=\"$(localedir)\" -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DENABLE_HTREE=1 -DENABLE_SWAPFS=1 -DPACKAGE=\"e2fsprogs\" -DVERSION=\"0.14.1\" -DHAVE_LONG_LONG=1 -DHAVE_LONG_DOUBLE=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=1 -DHAVE_UNSIGNED_LONG_LONG=1 -DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_ARGZ_H=1 -DHAVE_LIMITS_H=1 -DHAVE_LOCALE_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_MALLOC_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_STPCPY=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE_WCSLEN=1 -DHAVE___ARGZ_COUNT=1 -DHAVE___ARGZ_STRINGIFY=1 -DHAVE___ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_FEOF_UNLOCKED=1 -DHAVE_DECL_FGETS_UNLOCKED=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDARG_H=1 -DHAVE_STDINT_H=1 -DHAVE_ERRNO_H=1 -DHAVE_MALLOC_H=1 -DHAVE_MNTENT_H=1 -DHAVE_PATHS_H=1 -DHAVE_DIRENT_H=1 -DHAVE_GETOPT_H=1 -DHAVE_SETJMP_H=1 -DHAVE_SIGNAL_H=1 -DHAVE_TERMIOS_H=1 -DHAVE_LINUX_FD_H=1 -DHAVE_LINUX_MAJOR_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_SYS_QUEUE_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_SYSMACROS_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_NETINET_IN_H=1 -DHAVE_SYS_MOUNT_H=1 -DHAVE_NET_IF_H=1 -DHAVE_VPRINTF=1 -DHAVE_RECLEN_DIRENT=1 -DHAVE_TYPE_SSIZE_T=1 -DHAVE_LSEEK64_PROTOTYPE=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -DHAVE_INTTYPES_H=1 -DHAVE_INTPTR_T=1 -DHAVE_GETRUSAGE=1 -DHAVE_LLSEEK=1 -DHAVE_LSEEK64=1 -DHAVE_OPEN64=1 -DHAVE_STRTOULL=1 -DHAVE_STRCASECMP=1 -DHAVE_SRANDOM=1 -DHAVE_FCHOWN=1 -DHAVE_MALLINFO=1 -DHAVE_FDATASYNC=1 -DHAVE_STRNLEN=1 -DHAVE_STRPTIME=1 -DHAVE_SYSCONF=1 -DHAVE_PATHCONF=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_MEMALIGN=1 -DHAVE_VALLOC=1 -DHAVE___SECURE_GETENV=1 -DHAVE_PRCTL=1 -DHAVE_DLOPEN=1 -DHAVE_EXT2_IOCTLS=13918 +3919 +DEBUGFS_LIB_OBJS = inode_io.o namei.o write_bb_file.o3920 +RESIZE_LIB_OBJS = rs_bitmap.o dupfs.o test_io.o3921 +E2IMAGE_LIB_OBJS = imager.o3922 +OBJS= $(DEBUGFS_LIB_OBJS) $(RESIZE_LIB_OBJS) $(E2IMAGE_LIB_OBJS) ext2_err.o alloc.o alloc_sb.o alloc_stats.o alloc_tables.o badblocks.o bb_inode.o bitmaps.o bitops.o block.o bmap.o check_desc.o closefs.o dblist.o dblist_dir.o dirblock.o dirhash.o dir_iterate.o expanddir.o ext_attr.o finddev.o flushb.o freefs.o gen_bitmap.o get_pathname.o getsize.o getsectsize.o icount.o ind_block.o initialize.o inline.o inode.o io_manager.o ismounted.o link.o llseek.o lookup.o mkdir.o mkjournal.o native.o newdir.o openfs.o read_bb.o read_bb_file.o res_gdt.o rw_bitmaps.o swapfs.o unix_io.o unlink.o valid_blk.o version.o3923 +3924 +all: libext2fs.a3925 +3926 +libext2fs.a: $(OBJS)3927 + $(RM) libext2fs.a3928 + $(AR) rc libext2fs.a $(OBJS)3929 +3930 +clean:3931 + $(RM) -f libext2fs.a $(OBJS)3932 +3933 +.c.o:3934 + $(CC-SILO) $(CFLAGS) $(DEFS) -c $< -o $@3935 580 diff -Naur silo-1.4.13.orig/libext2fs/alloc.c silo-1.4.13/libext2fs/alloc.c 3936 --- silo-1.4.13.orig/libext2fs/alloc.c 1969-12-31 1 6:00:00.000000000 -08003937 +++ silo-1.4.13/libext2fs/alloc.c 200 6-11-02 19:21:44.212761475 -0800581 --- silo-1.4.13.orig/libext2fs/alloc.c 1969-12-31 19:00:00.000000000 -0500 582 +++ silo-1.4.13/libext2fs/alloc.c 2007-04-03 17:02:53.000000000 -0400 3938 583 @@ -0,0 +1,173 @@ 3939 584 +/* … … 4111 756 + 4112 757 diff -Naur silo-1.4.13.orig/libext2fs/alloc_sb.c silo-1.4.13/libext2fs/alloc_sb.c 4113 --- silo-1.4.13.orig/libext2fs/alloc_sb.c 1969-12-31 1 6:00:00.000000000 -08004114 +++ silo-1.4.13/libext2fs/alloc_sb.c 200 6-11-02 19:21:44.212761475 -0800758 --- silo-1.4.13.orig/libext2fs/alloc_sb.c 1969-12-31 19:00:00.000000000 -0500 759 +++ silo-1.4.13/libext2fs/alloc_sb.c 2007-04-03 17:02:53.000000000 -0400 4115 760 @@ -0,0 +1,57 @@ 4116 761 +/* … … 4172 817 +} 4173 818 diff -Naur silo-1.4.13.orig/libext2fs/alloc_stats.c silo-1.4.13/libext2fs/alloc_stats.c 4174 --- silo-1.4.13.orig/libext2fs/alloc_stats.c 1969-12-31 1 6:00:00.000000000 -08004175 +++ silo-1.4.13/libext2fs/alloc_stats.c 200 6-11-02 19:21:44.212761475 -0800819 --- silo-1.4.13.orig/libext2fs/alloc_stats.c 1969-12-31 19:00:00.000000000 -0500 820 +++ silo-1.4.13/libext2fs/alloc_stats.c 2007-04-03 17:02:53.000000000 -0400 4176 821 @@ -0,0 +1,52 @@ 4177 822 +/* … … 4228 873 +} 4229 874 diff -Naur silo-1.4.13.orig/libext2fs/alloc_tables.c silo-1.4.13/libext2fs/alloc_tables.c 4230 --- silo-1.4.13.orig/libext2fs/alloc_tables.c 1969-12-31 1 6:00:00.000000000 -08004231 +++ silo-1.4.13/libext2fs/alloc_tables.c 200 6-11-02 19:21:44.212761475 -0800875 --- silo-1.4.13.orig/libext2fs/alloc_tables.c 1969-12-31 19:00:00.000000000 -0500 876 +++ silo-1.4.13/libext2fs/alloc_tables.c 2007-04-03 17:02:53.000000000 -0400 4232 877 @@ -0,0 +1,117 @@ 4233 878 +/* … … 4349 994 + 4350 995 diff -Naur silo-1.4.13.orig/libext2fs/badblocks.c silo-1.4.13/libext2fs/badblocks.c 4351 --- silo-1.4.13.orig/libext2fs/badblocks.c 1969-12-31 1 6:00:00.000000000 -08004352 +++ silo-1.4.13/libext2fs/badblocks.c 200 6-11-02 19:21:44.212761475 -0800996 --- silo-1.4.13.orig/libext2fs/badblocks.c 1969-12-31 19:00:00.000000000 -0500 997 +++ silo-1.4.13/libext2fs/badblocks.c 2007-04-03 17:02:53.000000000 -0400 4353 998 @@ -0,0 +1,327 @@ 4354 999 +/* … … 4680 1325 +} 4681 1326 diff -Naur silo-1.4.13.orig/libext2fs/bb_compat.c silo-1.4.13/libext2fs/bb_compat.c 4682 --- silo-1.4.13.orig/libext2fs/bb_compat.c 1969-12-31 1 6:00:00.000000000 -08004683 +++ silo-1.4.13/libext2fs/bb_compat.c 200 6-11-02 19:21:44.212761475 -08001327 --- silo-1.4.13.orig/libext2fs/bb_compat.c 1969-12-31 19:00:00.000000000 -0500 1328 +++ silo-1.4.13/libext2fs/bb_compat.c 2007-04-03 17:02:53.000000000 -0400 4684 1329 @@ -0,0 +1,63 @@ 4685 1330 +/* … … 4747 1392 +} 4748 1393 diff -Naur silo-1.4.13.orig/libext2fs/bb_inode.c silo-1.4.13/libext2fs/bb_inode.c 4749 --- silo-1.4.13.orig/libext2fs/bb_inode.c 1969-12-31 1 6:00:00.000000000 -08004750 +++ silo-1.4.13/libext2fs/bb_inode.c 200 6-11-02 19:21:44.212761475 -08001394 --- silo-1.4.13.orig/libext2fs/bb_inode.c 1969-12-31 19:00:00.000000000 -0500 1395 +++ silo-1.4.13/libext2fs/bb_inode.c 2007-04-03 17:02:53.000000000 -0400 4751 1396 @@ -0,0 +1,267 @@ 4752 1397 +/* … … 5018 1663 + 5019 1664 diff -Naur silo-1.4.13.orig/libext2fs/bitmaps.c silo-1.4.13/libext2fs/bitmaps.c 5020 --- silo-1.4.13.orig/libext2fs/bitmaps.c 1969-12-31 1 6:00:00.000000000 -08005021 +++ silo-1.4.13/libext2fs/bitmaps.c 200 6-11-02 19:21:44.212761475 -08001665 --- silo-1.4.13.orig/libext2fs/bitmaps.c 1969-12-31 19:00:00.000000000 -0500 1666 +++ silo-1.4.13/libext2fs/bitmaps.c 2007-04-03 17:02:53.000000000 -0400 5022 1667 @@ -0,0 +1,212 @@ 5023 1668 +/* … … 5234 1879 +} 5235 1880 diff -Naur silo-1.4.13.orig/libext2fs/bitops.c silo-1.4.13/libext2fs/bitops.c 5236 --- silo-1.4.13.orig/libext2fs/bitops.c 1969-12-31 1 6:00:00.000000000 -08005237 +++ silo-1.4.13/libext2fs/bitops.c 200 6-11-02 19:21:44.212761475 -08001881 --- silo-1.4.13.orig/libext2fs/bitops.c 1969-12-31 19:00:00.000000000 -0500 1882 +++ silo-1.4.13/libext2fs/bitops.c 2007-04-03 17:02:53.000000000 -0400 5238 1883 @@ -0,0 +1,91 @@ 5239 1884 +/* … … 5329 1974 + 5330 1975 diff -Naur silo-1.4.13.orig/libext2fs/bitops.h silo-1.4.13/libext2fs/bitops.h 5331 --- silo-1.4.13.orig/libext2fs/bitops.h 1969-12-31 1 6:00:00.000000000 -08005332 +++ silo-1.4.13/libext2fs/bitops.h 200 6-11-02 19:21:44.212761475 -08001976 --- silo-1.4.13.orig/libext2fs/bitops.h 1969-12-31 19:00:00.000000000 -0500 1977 +++ silo-1.4.13/libext2fs/bitops.h 2007-04-03 17:02:53.000000000 -0400 5333 1978 @@ -0,0 +1,617 @@ 5334 1979 +/* … … 5950 2595 + 5951 2596 diff -Naur silo-1.4.13.orig/libext2fs/block.c silo-1.4.13/libext2fs/block.c 5952 --- silo-1.4.13.orig/libext2fs/block.c 1969-12-31 1 6:00:00.000000000 -08005953 +++ silo-1.4.13/libext2fs/block.c 200 6-11-02 19:21:44.216761341 -08002597 --- silo-1.4.13.orig/libext2fs/block.c 1969-12-31 19:00:00.000000000 -0500 2598 +++ silo-1.4.13/libext2fs/block.c 2007-04-03 17:02:53.000000000 -0400 5954 2599 @@ -0,0 +1,437 @@ 5955 2600 +/* … … 6391 3036 + 6392 3037 diff -Naur silo-1.4.13.orig/libext2fs/bmap.c silo-1.4.13/libext2fs/bmap.c 6393 --- silo-1.4.13.orig/libext2fs/bmap.c 1969-12-31 1 6:00:00.000000000 -08006394 +++ silo-1.4.13/libext2fs/bmap.c 200 6-11-02 19:21:44.216761341 -08003038 --- silo-1.4.13.orig/libext2fs/bmap.c 1969-12-31 19:00:00.000000000 -0500 3039 +++ silo-1.4.13/libext2fs/bmap.c 2007-04-03 17:02:53.000000000 -0400 6395 3040 @@ -0,0 +1,270 @@ 6396 3041 +/* … … 6665 3310 + 6666 3311 diff -Naur silo-1.4.13.orig/libext2fs/bmove.c silo-1.4.13/libext2fs/bmove.c 6667 --- silo-1.4.13.orig/libext2fs/bmove.c 1969-12-31 1 6:00:00.000000000 -08006668 +++ silo-1.4.13/libext2fs/bmove.c 200 6-11-02 19:21:44.216761341 -08003312 --- silo-1.4.13.orig/libext2fs/bmove.c 1969-12-31 19:00:00.000000000 -0500 3313 +++ silo-1.4.13/libext2fs/bmove.c 2007-04-03 17:02:53.000000000 -0400 6669 3314 @@ -0,0 +1,160 @@ 6670 3315 +/* … … 6829 3474 + 6830 3475 diff -Naur silo-1.4.13.orig/libext2fs/brel.h silo-1.4.13/libext2fs/brel.h 6831 --- silo-1.4.13.orig/libext2fs/brel.h 1969-12-31 1 6:00:00.000000000 -08006832 +++ silo-1.4.13/libext2fs/brel.h 200 6-11-02 19:21:44.216761341 -08003476 --- silo-1.4.13.orig/libext2fs/brel.h 1969-12-31 19:00:00.000000000 -0500 3477 +++ silo-1.4.13/libext2fs/brel.h 2007-04-03 17:02:53.000000000 -0400 6833 3478 @@ -0,0 +1,86 @@ 6834 3479 +/* … … 6919 3564 + 6920 3565 diff -Naur silo-1.4.13.orig/libext2fs/brel_ma.c silo-1.4.13/libext2fs/brel_ma.c 6921 --- silo-1.4.13.orig/libext2fs/brel_ma.c 1969-12-31 1 6:00:00.000000000 -08006922 +++ silo-1.4.13/libext2fs/brel_ma.c 200 6-11-02 19:21:44.216761341 -08003566 --- silo-1.4.13.orig/libext2fs/brel_ma.c 1969-12-31 19:00:00.000000000 -0500 3567 +++ silo-1.4.13/libext2fs/brel_ma.c 2007-04-03 17:02:53.000000000 -0400 6923 3568 @@ -0,0 +1,197 @@ 6924 3569 +/* … … 7119 3764 + return 0; 7120 3765 +} 3766 diff -Naur silo-1.4.13.orig/libext2fs/ChangeLog silo-1.4.13/libext2fs/ChangeLog 3767 --- silo-1.4.13.orig/libext2fs/ChangeLog 1969-12-31 19:00:00.000000000 -0500 3768 +++ silo-1.4.13/libext2fs/ChangeLog 2007-04-03 17:02:53.000000000 -0400 3769 @@ -0,0 +1,3311 @@ 3770 +2006-06-30 Theodore Ts'o <tytso@mit.edu> 3771 + 3772 + * Release of E2fsprogs 1.38 3773 + 3774 +2005-06-30 Theodore Ts'o <tytso@mit.edu> 3775 + 3776 + * bitops.h, bitops.c (ext2fs_set_bit, ext2fs_clear_bit, 3777 + ext2fs_test_bit): Change these function prototypes to be 3778 + unsigned int's. Negative bit numbers were never allowed 3779 + (and never made any sense), so this should be a safe 3780 + change. This is needed to allow safe use of block numbers 3781 + greater than or equal to 2**31. 3782 + 3783 +2005-06-27 Stephen Tweedie <sct@redhat.com> 3784 + 3785 + * ext2fs.h (ext2fs_resize_mem): Fix C99 strict type aliasing 3786 + problems. Addresses Red Hat Bugzilla #161183. 3787 + 3788 +2005-06-19 Theodore Ts'o <tytso@mit.edu> 3789 + 3790 + * getsectsize.c (BLKSSZGET): Clean up test for when to manually 3791 + define the BLKSSZGET ioctl. 3792 + 3793 +2005-05-29 Theodore Ts'o <tytso@mit.edu> 3794 + 3795 + * ismounted.c (ext2fs_check_mount_point): Add test to see if the 3796 + device appears to be busy; this only works on Linux 2.6+ 3797 + systems, but provides some additional bullet-proofing in 3798 + those cases. 3799 + 3800 +2005-05-08 Theodore Ts'o <tytso@mit.edu> 3801 + 3802 + * test_io.c (safe_getenv): Fix bug so it would fetch the right 3803 + environment variable. 3804 + 3805 +2005-04-09 Theodore Ts'o <tytso@mit.edu> 3806 + 3807 + * inode.c (ext2fs_write_new_inode), 3808 + ind_block.c (ext2fs_read_ind_block): Add missing return 3809 + value in error return case. (Otherwise we return garbage 3810 + instead of the error code.) 3811 + 3812 +2005-03-31 Theodore Ts'o <tytso@mit.edu> 3813 + 3814 + * test_io.c (test_open): If called by a setuid/setgid or an 3815 + otherwise privileged program, be paranoid and ignore the 3816 + TEST_IO_* environment variables. 3817 + 3818 +2005-03-21 Theodore Ts'o <tytso@mit.edu> 3819 + 3820 + * Release of E2fsprogs 1.37 3821 + 3822 +2005-03-21 Theodore Ts'o <tytso@mit.edu> 3823 + 3824 + * ext2_ext_attr.h (EXT2_XATTR_LEN, EXT2_XATTR_SIZE): Add new 3825 + convenience cpp macros. 3826 + 3827 +2005-03-20 Theodore Ts'o <tytso@mit.edu> 3828 + 3829 + * mkdir.c (ext2fs_mkdir): Call ext2fs_write_new_inode() instead of 3830 + ext2fs_write_inode(). 3831 + 3832 + * inode.c (ext2fs_write_new_inode): New function which should be 3833 + used when the caller is writing an inode for the first 3834 + time. It makes sure that the extra portion of the large 3835 + inode is initialized properly. 3836 + 3837 +2005-03-18 Theodore Ts'o <tytso@mit.edu> 3838 + 3839 + * Makefile.in: Fix clean target to remove tst_getsectsize. 3840 + 3841 + * getsize.c (ext2fs_get_device_size): Check to see if the number 3842 + of blocks is greater than 2**32 when we are doing a binary 3843 + search to determine the device size. Thanks to Stephen 3844 + Tweedie for the patch. 3845 + 3846 +2006-02-05 Theodore Ts'o <tytso@mit.edu> 3847 + 3848 + * Release of E2fsprogs 1.36 3849 + 3850 +2005-02-05 Theodore Ts'o <tytso@mit.edu> 3851 + 3852 + * Makefile.in: Remove ext2fs.pc on a "make distclean" 3853 + 3854 +2005-02-04 Theodore Ts'o <tytso@mit.edu> 3855 + 3856 + * Makefile.in (clean): Remove tst_getsize when doing a make clean 3857 + 3858 +2005-02-03 Theodore Ts'o <tytso@mit.edu> 3859 + 3860 + * bitops.c: Make the generic functions more efficient. 3861 + 3862 + * bitops.h: Drop SPARC assembly code. It's less efficient than GCC 3863 + 3.4 compiled code and also triggers nasty compiler 3864 + warnings on sparc64. Thanks to Matthias Andree for his 3865 + analysis and suggestion. 3866 + 3867 +2005-01-27 Theodore Ts'o <tytso@mit.edu> 3868 + 3869 + * res_gdt.c (ext2fs_create_resize_inode): Create the resize inode 3870 + even if s_reserved_gdt_blocks is zero. 3871 + 3872 +2005-01-26 Theodore Ts'o <tytso@mit.edu> 3873 + 3874 + * ext2fs.pc.in: Add pkg-config files. 3875 + 3876 +2005-01-25 Theodore Ts'o <tytso@mit.edu> 3877 + 3878 + * ext2fs.h: Add definition of struct ext2_inode_large 3879 + 3880 + * ext2_fs.h: Add new function prototypes 3881 + 3882 + * ext_attr.c (ext2fs_read_ext_attr, ext2fs_write_ext_attr): The 3883 + ext2fs_swap_ext_attr() has been moved to swapfs.c, and 3884 + given a new argument, has_header. 3885 + 3886 + * swapfs.c (ext2fs_swap_ext_attr): Moved from ext_attr.c, and 3887 + takes an argument which controls whether or not there is 3888 + an EA header which needs to be byteswaped. 3889 + (ext2fs_swap_inode_full): New function which byte-swaps 3890 + the EA in inode. 3891 + 3892 + * inode.c (ext2fs_get_next_inode_full, ext2fs_read_inode_full, 3893 + ext2fs_write_inode_full): New functions, originally from 3894 + Alex Tomas, but which needed to be substantially fixed so 3895 + that the tests wouldn't cause major stack overwrite bugs 3896 + in byte-swapping is enabled. 3897 + 3898 +2005-01-18 Theodore Ts'o <tytso@mit.edu> 3899 + 3900 + * Makefile.in: Fix the kernel compile-time echo commands to be 3901 + consistent and portable 3902 + 3903 +2005-01-07 Theodore Ts'o <tytso@mit.edu> 3904 + 3905 + * unlink.c (ext2fs_unlink): If both the name and the inode number 3906 + are unspecified, then return an error, so that we don't do 3907 + something surprising such as unconditionally deleting the 3908 + first directory entry. 3909 + (unlink_proc): Delete directory entries by coalescing it 3910 + with the previous entry, to avoid directory fragmentation. 3911 + 3912 +2005-01-06 Theodore Ts'o <tytso@mit.edu> 3913 + 3914 + * version.c (ext2fs_parse_version_string): Change parsing 3915 + algorithm so that version strings such as 1.36-rc1 returns 3916 + a non-surprising result (i.e., 136, and not 1361). 3917 + 3918 +2005-01-05 Theodore Ts'o <tytso@mit.edu> 3919 + 3920 + * block.c (block_iterate_ind, block_iterate_dind, 3921 + block_iterate_tind): Move the code which byte swaps and 3922 + read/writes indirect blocks to ext2fs_{read,write}_ind_block. 3923 + This saves 400 bytes, and we need them for the 3924 + resize_inode handling. 3925 + 3926 + * ind_block.c (ext2fs_read_ind_block, ext2fs_write_ind_block): New 3927 + functions. 3928 + 3929 + * res_gdt.c (ext2fs_create_resize_inode): Use 3930 + ext2fs_{read,write}_ind_block so that byte swapping is 3931 + handled on big-endian systems. 3932 + 3933 + * dupfs.c (ext2fs_dup_handle): Make sure the new filesystem handle 3934 + has its own copy of the orig_super data structure. (This 3935 + is a better way of fixing a double-free problem in 3936 + resize2fs which Fedora attempted to fix in 3937 + e2fsprogs-1.35-double_free.patch. Addresses Red Hat 3938 + Bugzilla #132707.) 3939 + 3940 +2004-12-23 Theodore Ts'o <tytso@mit.edu> 3941 + 3942 + * inode.c (ext2fs_flush_icache): When flushing the icache, clear 3943 + the last-read block information as well. 3944 + 3945 + * ext2fs.h (BMAP_SET), bmap.c (ext2fs_bmap): Add support for new 3946 + flag, BMAP_SET, which allows the caller to set a 3947 + particular logical->physical block mapping. 3948 + 3949 + * ext2_err.et.in (EXT2_ET_SET_BMAP_NO_IND): New error code 3950 + 3951 + * initialize.c (calc_reserved_gdt_blocks): #ifdef out all 3952 + debugging printf statements. 3953 + 3954 + * res_gdt.c (ext2fs_create_resize_inode): Return 3955 + EXT2_ET_RESIZE_INODE_CORRUPT if the resize inode is not 3956 + what we expect. #ifdef out all debugging printf 3957 + statements. 3958 + 3959 + * ext2_err.et.in (EXT2_ET_RESIZE_INODE_CORRUPT): Add new error code. 3960 + 3961 +2004-12-22 Theodore Ts'o <tytso@mit.edu> 3962 + 3963 + * swapfs.c (ext2fs_swap_super): Byteswap the reserved_gdt_blocks 3964 + superblocks field. 3965 + 3966 +2004-12-15 Theodore Ts'o <tytso@mit.edu> 3967 + 3968 + * sparse.c (ext2fs_list_backups, ext2fs_bg_has_super), 3969 + res_gdt.c (list_backups), closefs.c (ext2fs_bg_has_super), 3970 + ext2fs.h: Move ext2fs_list_backups() to res_gdt.c, and 3971 + ext2fs_bg_has_super() back to closefs.c. There's no 3972 + reason for the new file, since list_backups() isn't being 3973 + used by any other functions, and can be made static, and 3974 + all users of the ext2fs filesystem will have to call 3975 + ext2fs_close() anyway. 3976 + 3977 +2004-12-15 Theodore Ts'o <tytso@mit.edu> 3978 + 3979 + * Applied resize inode patch from Andreas Dilger 3980 + 3981 + * res_gdt.c (ext2fs_create_resize_inode): New function that 3982 + creates the resize inode. 3983 + 3984 + * initialize.c (ext2fs_initialize): Reserve space for the resize 3985 + inode. 3986 + 3987 + * ext2fs.h (EXT2_LIB_FEATURE_COMPAT_SUPP): Add 3988 + EXT2_FEATURE_COMPAT_RESIZE_INODE to the list of supported 3989 + capabilities. 3990 + Add function prototypes for res_gdt.c and sparse.c. 3991 + 3992 + * closefs.c (ext2fs_super_and_bgd_loc): Take the reserved blocks 3993 + into account when calculating the number of overhead 3994 + blocks. 3995 + 3996 + * closefs.c (ext2fs_bg_has_super, test_root), sparse.c: Move these 3997 + functions to the new file sparse.c 3998 + 3999 + * alloc_sb.c (ext2fs_reserve_super_and_bgd): Reserve the blocks 4000 + saved in the resize inode as being in use. 4001 + 4002 + * ext2_err.et.in (EXT2_ET_RES_GDT_BLOCKS): Add new error code. 4003 + 4004 + * Makefile.in (srcdir): Add res_gdt.c and sparse.c to the ext2fs 4005 + library. 4006 + 4007 +2004-12-14 Theodore Ts'o <tytso@mit.edu> 4008 + 4009 + * Makefile.in: Use Linux-kernel-style makefile output for "make 4010 + install" 4011 + 4012 + * Makefile.in (installdirs): Use $(MKINSTALLDIRS) macro 4013 + Update dependencies. 4014 + 4015 +2004-11-30 Theodore Ts'o <tytso@mit.edu> 4016 + 4017 + * unix_io.c (unix_set_option): Add support for the offset option. 4018 + 4019 + * test_io.c (test_set_option): Add support for the set_option method. 4020 + 4021 + * ext2_io.h: Add new io_channel method, set_option(), and change 4022 + io_channel_write_byte() from a macro to a library function. 4023 + 4024 + * ext2fs.h, openfs.c(ext2fs_open2): New version of ext2fs_open 4025 + which adds a new parameter, io_options. 4026 + (ext2fs_open): If there is a question mark in the 4027 + filename, and no io_options are specified, assumed that 4028 + the text following the question mark are io_options. 4029 + 4030 + * io_manager.c, Makefile.in: New source file which contains 4031 + high-level functions for the io_channel layer. 4032 + 4033 + * freefs.c (ext2fs_free): Make sure we don't free the io_channel 4034 + if image_io is NULL. 4035 + 4036 + * Makefile.in: Use Linux-kernel-style makefile output to make it 4037 + easier to see errors/warnings. 4038 + 4039 +2004-11-29 Theodore Ts'o <tytso@mit.edu> 4040 + 4041 + * ext2_fs.h (EXT2_EXTENTS_FL, EXT3_FEATURE_INCOMPAT_EXTENTS, 4042 + EXT2_MAX_BLOCK_LOG_SIZE): Add definition for extent 4043 + feature and inode flag. Change maximum allowable block 4044 + size to be 65536. 4045 + 4046 +2004-10-08 Theodore Ts'o <tytso@mit.edu> 4047 + 4048 + * getsize.c (ext2fs_get_device_size): Add support for Windows 4049 + 9x/NT under Cygwin. Thanks to Sam Robb 4050 + (samrobb@users.sourceforge.net) for pointing this and the 4051 + suggested code patch. 4052 + 4053 +2004-09-17 Theodore Ts'o <tytso@mit.edu> 4054 + 4055 + * getsize.c: Clean up header #include's. 4056 + 4057 + * llseek.c (ext2fs_llseek): On non-linux systems, use lseek64() if 4058 + it is present. (Addresses Debian bug #269044) 4059 + 4060 +2004-07-28 Theodore Ts'o <tytso@mit.edu> 4061 + 4062 + * rw_bitmaps.c (read_bitmaps), block.c (block_iterate_ind, 4063 + block_iterate_dind, block_iterate_tind), inode.c 4064 + (ext2fs_read_inode): If EXT2_FLAG_IMAGE_FILE is set, so 4065 + read the metadata from fs->image_io instead of fs->io. 4066 + 4067 + * initialize.c (ext2fs_initialize), openfs.c (ext2fs_open): 4068 + Initialize fs->image_io to be the same as fs->io. 4069 + 4070 + * ext2_err.et.in (EXT2_ET_NOT_IMAGE_FILE): Add new error code. 4071 + 4072 + * openfs.c (ext2fs_get_data_io, ext2fs_set_data_io, 4073 + ext2fs_rewrite_to_io): New functions that allow 4074 + applications to manipulate fs->image_io and fs->io safely. 4075 + 4076 + * freefs.c (ext2fs_free): If fs->image_io is different fs->io, 4077 + then call io_channel_close on fs->image_io. 4078 + 4079 + * ext2fs.h: Add image_io element to the ext2_filsys data 4080 + structure. Add ext2fs_get_data_io() ext2fs_set_data_io(), 4081 + and ext2fs_rewrite_to_io() prototypes. 4082 + 4083 +2004-05-26 Theodore Ts'o <tytso@mit.edu> 4084 + 4085 + * closefs.c (ext2fs_flush): Make sure the master superblock is 4086 + written last, and only after other I/O has been flushed to 4087 + disk. Thanks to Junfeng Yang from the Stanford 4088 + Metacompilation group for pointing a potential ordering 4089 + constraint problem if we don't write things out in the 4090 + right order. 4091 + 4092 + * test_io.c: Implement the ability to abort after n reads or 4093 + writes to a particular block. The block is specified by 4094 + TEST_IO_BLOCK environment variable, and the read/write 4095 + count by the TEST_IO_READ_ABORT and TEST_IO_WRITE_ABORT 4096 + environment variables. The block data is now only dumped 4097 + if the 0x10 bit is set in TEST_IO_FLAGS. 4098 + 4099 +2004-04-03 Theodore Ts'o <tytso@mit.edu> 4100 + 4101 + * ext2_types.h.in: Remove check for _UUID_TYPES since uuid_types.h 4102 + is no longer used. 4103 + 4104 +2004-03-08 Theodore Ts'o <tytso@mit.edu> 4105 + 4106 + * getsize.c (ext2fs_get_device_size): Only use the BLKGETSIZE64 4107 + ioctl on Linux 2.6 since it is unreliable in Linux 2.4. 4108 + (Addresses Debian Bug #236528). Fix typo in the ioctl 4109 + used for Mac OS X. 4110 + 4111 +2004-03-02 Theodore Ts'o <tytso@mit.edu> 4112 + 4113 + * getsize.c (ext2fs_get_device_size): Update getsize functions to 4114 + use Apple Darwin and Linux 64-bit ioctl's 4115 + 4116 +2004-02-29 Brian Bergstrand <brian@bergstrand.org> 4117 + 4118 + * Makefile.in: Use $(BSDLIB_PIC_FLAG) to determine whether to use 4119 + -fpic or -fPIC 4120 + 4121 +2004-02-28 Theodore Ts'o <tytso@mit.edu> 4122 + 4123 + * Release of E2fsprogs 1.35 4124 + 4125 +2004-02-21 Theodore Ts'o <tytso@mit.edu> 4126 + 4127 + * ext2fs.h (ext2fs_resize_mem): Fix C++ problem. (Addresses Red 4128 + Hat Bugzilla #112448; thanks Thomas Woerner from Red Hat.) 4129 + 4130 +2004-02-14 Theodore Ts'o <tytso@mit.edu> 4131 + 4132 + * namei.c (follow_link): Correctly deal with symlinks that have 4133 + extended attribute information. (Addresses Debian Bug 4134 + #232328) 4135 + 4136 +2004-01-30 Theodore Ts'o <tytso@mit.edu> 4137 + 4138 + * ext2_fs.h: Reserve an extra 4 bytes for the journal backup, 4139 + which we're using due to a typo in the e2fsck code. (Oops) 4140 + 4141 + * swapfs.c (ext2fs_swap_inode): Fix byte swap bug which causes SE 4142 + Linux created symlinks with mandatory attributes to fail 4143 + to be properly handled on big endian systems. (Addresses 4144 + Debian Bug #228723). 4145 + (ext2fs_swap_super): Byte swap some new fields in the 4146 + superblock, including the journal backup fields. 4147 + 4148 +2003-12-02 Theodore Ts'o <tytso@mit.edu> 4149 + 4150 + * alloc.c, bb_inode.c, bitops.c, block.c, check_desc.c, closefs.c, 4151 + dir_iterate.c, dirblock.c, expanddir.c, ext2fs.h, 4152 + get_pathname.c, icount.c, imager.c, initalize.c, inode.c, 4153 + lookup.c, openfs.c, read_bb.c, read_bb_file.c, 4154 + rw_bitmaps.c, unix_io.c, unlink.c, write_bb_file.c: Fix 4155 + gcc -Wall complaints. Mainly marking variables as being 4156 + unsued, and catching signed vs. unsigned comparisons. 4157 + 4158 +2003-09-03 Theodore Ts'o <tytso@mit.edu> 4159 + 4160 + * closefs.c (ext2fs_super_and_bgd_loc): New function which 4161 + centralizes the calculation of the superblock and block 4162 + group descriptors. 4163 + (ext2fs_flush): Use ext2fs_super_and_bgd_lock to figure 4164 + out where to write the superblock and block group 4165 + descriptors. 4166 + 4167 + * alloc_sb.c (ext2fs_reserve_super_and_bgd): New function which 4168 + reserves space in the block bitmap using 4169 + ext2fs_super_and_bgd_loc. 4170 + 4171 + * initialize.c (ext2fs_initialize): Use 4172 + ext2fs_reserve_super_and_bgd to initialize the block bitmap. 4173 + 4174 +2003-08-20 Theodore Ts'o <tytso@mit.edu> 4175 + 4176 + * inode_io.c (ext2fs_inode_io_intern2), ext2fs.h: Add new function 4177 + allows the caller to pass in the inode data structure. 4178 + 4179 + * fileio.c (ext2fs_file_open2), ext2fs.h: Add new function which 4180 + allows the caller to pass in the inode to be used in the 4181 + file I/O. 4182 + 4183 + * ext2_fs.h: Add a backup of the location of the journal inode 4184 + blocks to the superblock. 4185 + 4186 + * mkjournal.c (write_journal_inode): Save the location of the 4187 + journal inode to the backup location in the superblock. 4188 + 4189 +2003-08-01 Philipp Thomas <pthomas@suse.de> 4190 + 4191 + * alloc.c, badblocks.c, bb_inode.c, bitmaps.c, block.c, bmap.c, 4192 + bmove.c, brel_ma.c, closefs.c, dblist.c, dblist_dir.c, 4193 + dir_iterate.c, dirblock.c, dupfs.c, expanddir.c, ext2fs.h, 4194 + ext_attr.c, fileio.c, freefs.c, get_pathname.c, icount.c, 4195 + initialize.c, inode.c, inode_io.c, irel_ma.c, mkdir.c, 4196 + mkjournal.c, namei.c, newdir.c, openfs.c, rs_bitmap.c, 4197 + rw_bitmaps.c, test_io.c, unix_io.c: ext2fs_getmem(), 4198 + ext2fs_free_mem(), and ext2fs_resize_mem() all now take a 4199 + 'void *' instead of a 'void **' in order to avoid pointer 4200 + aliasing problems with GCC 3.x. 4201 + 4202 +2003-07-25 Theodore Ts'o <tytso@mit.edu> 4203 + 4204 + * Release of E2fsprogs 1.34 4205 + 4206 +2003-07-06 Theodore Ts'o <tytso@mit.edu> 4207 + 4208 + * kernel-jbd.h, flushb.c: Fix gcc -Wall nitpicks (indented cpp 4209 + directives) 4210 + 4211 + * ext2_types.h.in, initialize.c: Fix gcc -Wall nitpicks 4212 + (don't use #elsif) 4213 + 4214 + * ismounted.c: Fix gcc -Wall nitpicks (Don't use exit as a goto label) 4215 + 4216 + * llseek.c: Fix gcc -Wall nitpicks (don't use #elsif) 4217 + 4218 + * lookup.c, read_bb.c: Fix gcc -Wall nitpicks (indent 4219 + non-traditional #pragma) 4220 + 4221 + * test_io.c: Fix gcc -Wall nitpicks (const/unsigned type issues) 4222 + 4223 +2003-06-24 <tytso@snap.thunk.org> 4224 + 4225 + * badblocks.c, ext2fs.h (ext2fs_u32_list_find, 4226 + ext2fs_u32_list_test, ext2fs_u32_list_del, 4227 + ext2fs_badblocks_list_del): Add functions to delete a 4228 + block from the badblocks list. 4229 + * tst_badblocks.c: Add test cases for ext2fs_badblocks_list_del(). 4230 + 4231 +2003-05-21 Theodore Ts'o <tytso@mit.edu> 4232 + 4233 + * getsectsize.c (ext2fs_get_device_sectsize): New function which 4234 + returns the hardware sector size (if it is available). 4235 + 4236 +2003-05-13 Theodore Ts'o <tytso@mit.edu> 4237 + 4238 + * unix_io.c: Add #ifdef NO_IO_CACHE which disables all userspace 4239 + caching by the unix_io layer. Not enabled, only for 4240 + debugging. 4241 + 4242 +2003-05-05 Theodore Ts'o <tytso@mit.edu> 4243 + 4244 + * test_io.c: Pay attention to the environment variables 4245 + TEST_IO_LOGFILE, TEST_IO_FLAGS, and TEST_IO_BLOCK to 4246 + determine whether or not we should log io activity, and to 4247 + where. 4248 + 4249 +2003-05-03 Theodore Ts'o <tytso@mit.edu> 4250 + 4251 + * tst_badblocks.c (file_test): Use tmpfile() instead of mktemp(). 4252 + 4253 +2003-04-29 Theodore Ts'o <tytso@mit.edu> 4254 + 4255 + * getsize.c (ext2fs_get_device_size): Allow windows code to get 4256 + the resize for filesystems that are in regular files. 4257 + 4258 +2003-04-21 Theodore Ts'o <tytso@mit.edu> 4259 + 4260 + * Release of E2fsprogs 1.33 4261 + 4262 +2003-04-21 Theodore Ts'o <tytso@mit.edu> 4263 + 4264 + * Makefile.in: Use DYLD_LIBRAY_PATH so that "make check" works on 4265 + Darwin systems when building with shared libraries. 4266 + 4267 +2003-04-18 Theodore Ts'o <tytso@mit.edu> 4268 + 4269 + * unix_io.c: Use __CYGWIN__ instead of CYGWIN. 4270 + 4271 +2003-04-17 Theodore Ts'o <tytso@mit.edu> 4272 + 4273 + * getsize.c: Add Cygwin/Windows version of ext2fs_get_device_size() 4274 + 4275 +2003-04-12 Theodore Ts'o <tytso@mit.edu> 4276 + 4277 + * unix_io.c (raw_read_blk): Add Cygwin support (the Windows block 4278 + device only accepts sector aligned read requests. 4279 + 4280 + * ismounted.c (check_mntent_file): Deal with OS's that don't 4281 + define MNTOPT_RO. 4282 + 4283 + * imager.c: If the OS doesn't define ssize_t, typedef it to int. 4284 + 4285 +2003-04-11 Theodore Ts'o <tytso@mit.edu> 4286 + 4287 + * ext2_fs.h (EXT2_FEATURE_RO_COMPAT_BTREE_DIR): Comment out unused 4288 + feature flag 4289 + 4290 +2003-03-30 Theodore Ts'o <tytso@mit.edu> 4291 + 4292 + * Makefile.in: Use the compile_et --build-tree option. 4293 + 4294 +2003-03-14 Theodore Ts'o <tytso@mit.edu> 4295 + 4296 + * getsize.c: Add support for Apple Darwin's ioctl to get the hard 4297 + disk size. 4298 + 4299 + * badblocks.c (ext2fs_u32_list_count), ext2fs.h: Add new function 4300 + which returns the number of entries in the list. 4301 + 4302 +2003-03-10 Theodore Ts'o <tytso@mit.edu> 4303 + 4304 + * fileio.c (ext2fs_file_lseek): Fix bug added when adding 64-bit 4305 + support; avoid null dereference when ret_pos is NULL. 4306 + 4307 +2003-03-06 Theodore Tso <tytso@mit.edu> 4308 + 4309 + * ext2_types.h.in: Don't redefine types if other e2fsprogs 4310 + *_types.h files have been included already. 4311 + 4312 + * kernel-jbd.h: Use C99 variadic cpp macros if not using GCC. 4313 + (Older GCC's don't support the C99 variadic macros.) 4314 + 4315 + * flushb.c (ext2fs_sync_device), 4316 + ismounted.c (ext2fs_check_mount_point): Avoid GCC extension: 4317 + #warning not supported by Solaris suncc 4318 + 4319 + * ext2_ext_attr.h: Avoid GCC extension: 0 length arrays in 4320 + structure definition. Not needed for now in 4321 + ext2_ext_attr_entry. 4322 + 4323 +2003-01-25 Theodore Ts'o <tytso@mit.edu> 4324 + 4325 + * dirhash.c: Fix gcc -Wall nits. 4326 + 4327 +2003-01-22 Theodore Ts'o <tytso@mit.edu> 4328 + 4329 + * unix_io.c (unix_write_blk): Fix up GCC -Wall nits. 4330 + 4331 +2003-01-21 Theodore Ts'o <tytso@mit.edu> 4332 + 4333 + * fileio.c (ext2fs_file_read, ext2_file_lseek, 4334 + ext2_file_get_size): Add 64-bit support. 4335 + 4336 + * ext2fs.h (EXT2_I_SIZE): Add macro which caluates a 64bit size 4337 + from i_size and i_size_high. 4338 + 4339 +2003-01-19 Theodore Ts'o <tytso@mit.edu> 4340 + 4341 + * initialize.c (ext2fs_initialize): If the user specifies a really 4342 + large number of inodes, then reduce the number of blocks 4343 + per group until we find a workable set of filesystem 4344 + parameters. 4345 + 4346 + * ext2_err.et.in (EXT2_ET_TOO_MANY_INODES): Add new error code. 4347 + 4348 +2002-11-09 Theodore Ts'o <tytso@mit.edu> 4349 + 4350 + * Release of E2fsprogs 1.32 4351 + 4352 +2002-11-09 Theodore Ts'o <tytso@mit.edu> 4353 + 4354 + * unix_io.c (find_cached_block, reuse_cache, unix_read_blk, 4355 + unix_write_blk): Optimize routines so that we don't end up 4356 + searching the cache twice when a block isn't in the 4357 + cache. If reads are larger than READ_DIRECT_SIZE, don't 4358 + let them go through the cache. 4359 + 4360 + * unix_io.c (find_cached_block): Fixed bug which caused some clean 4361 + blocks to be erroneously marked as dirty, so they would 4362 + get written back to the disk before they are evicted from 4363 + the cache. Harmless, but it slows down e2fsck 4364 + significantly. 4365 + 4366 +2002-11-08 Theodore Ts'o <tytso@mit.edu> 4367 + 4368 + * Release of E2fsprogs 1.31 4369 + 4370 +2002-11-08 <tytso@snap.thunk.org> 4371 + 4372 + * Makefile.in (check): Skip trying to compile test_byteswap 4373 + if --disable-byteswaap had been given to configure. 4374 + 4375 +2002-11-07 <tytso@snap.thunk.org> 4376 + 4377 + * closefs.c (write_bgdesc, ext2fs_flush): Fix bug in meta_bg 4378 + support when the MASTER_SB_ONLY flag is set. Some of 4379 + the descriptor blocks that should have been written out 4380 + were getting skipped. 4381 + 4382 +2002-10-31 Theodore Ts'o <tytso@mit.edu> 4383 + 4384 + * Release of E2fsprogs 1.30 4385 + 4386 +2002-10-31 Theodore Ts'o <tytso@mit.edu> 4387 + 4388 + * ext2_fs.h: Add support for a new inode flag, which is to be used 4389 + for indicating the top of directory hierarchies for the 4390 + Orlov block allocator. 4391 + 4392 + * ismounted.c (check_mntent, check_mntent_file): Add better 4393 + support for loopback-mounted filesystems. Check /etc/mtab 4394 + if /proc/mounts doesn't turn up any mount flags, since 4395 + /etc/mtab has the loopback image filename, instead of 4396 + /dev/loop0. Also, check based on st_dev and st_ino, so 4397 + that if a relative pathname or a pathnames using symbolic 4398 + links are used, we can detect the the filesystem correctly 4399 + in those cases. (Addresses Sourceforge bug #619119) 4400 + 4401 + * flushb.c (ext2fs_sync_device): If the BLKFLSBUF ioctl succeeds, 4402 + don't try the FDFLUSH ioctl that was required for floppies 4403 + with older kernels. This avoids needless whining from the 4404 + MD device driver. (Addresses Sourceforge bug #545832). 4405 + 4406 + * openfs.c (ext2fs_open): Fix bug which caused us to pass the 4407 + wrong group_block to ext2fs_descriptor_block_loc if we're 4408 + using the backup superblock/block group descriptors. 4409 + (ext2fs_descriptor_block_loc): If we're using the backup 4410 + superblock descriptors, use the backup descriptor block in 4411 + the next block group. 4412 + 4413 +2002-10-30 Theodore Ts'o <tytso@mit.edu> 4414 + 4415 + * alloc_tables.c (ext2fs_allocate_group_table): Allocate the inode 4416 + table so that it buts up against the bitmap blocks, to 4417 + avoid block fragmentation. 4418 + 4419 + * closefs.c (write_bgdesc), initalize.c (ext2fs_initialize): Fix 4420 + bug; only allocate group descriptor blocks up to 4421 + s_first_meta_bg. 4422 + 4423 +2002-10-25 Theodore Ts'o <tytso@mit.edu> 4424 + 4425 + * ext2_fs.h: Add a new superblock field, s_mkfs_time, so that we 4426 + know when a filesystem was created. (Sometimes this can 4427 + be useful...) 4428 + 4429 + * initialize.c (ext2fs_initialize): Set the s_mkfs_time field. 4430 + 4431 +2002-10-20 Theodore Ts'o <tytso@valinux.com> 4432 + 4433 + * ext2_fs.h (EXT3_DEFM_JMODE): Add new default mount options for 4434 + the journal data mode. 4435 + 4436 + * closefs.c (ext2fs_flush, write_bgdesc), ext2_fs.h, ext2fs.h, 4437 + openfs.c (ext2fs_descriptor_block_loc, ext2fs_open), initialize.c 4438 + (ext2fs_initialize), swapfs.c (ext2fs_swap_super): Add support for 4439 + the meta_blockgroup filesystem format. 4440 + 4441 +2002-10-15 <tytso@snap.thunk.org> 4442 + 4443 + * ext2_fs.h: Add new field in superblock for default mount options. 4444 + 4445 +2002-10-13 Theodore Ts'o <tytso@mit.edu> 4446 + 4447 + * ext2fs.h: Add #include of header files necessary for ext2fs.h to 4448 + compile cleanly. 4449 + 4450 +2002-10-02 Theodore Y. Ts'o <tytso@mit.edu> 4451 + 4452 + * rw_bitmaps.c (ext2fs_write_block_bitmap, 4453 + ext2fs_read_block_bitmap): Don't set the CHANGED bit just 4454 + because the bitmap is getting written to disk. Make 4455 + ext2fs_swap_bitmap be a static function, since it's not 4456 + intended to be exported. 4457 + 4458 + * swapfs.c (ext2fs_swap_super): Byte-swap the hash seed 4459 + 4460 +2001-09-24 Theodore Tso <tytso@mit.edu> 4461 + 4462 + * Release of E2fsprogs 1.29 4463 + 4464 +2001-08-31 Theodore Tso <tytso@thunk.org> 4465 + 4466 + * Release of E2fsprogs 1.28 4467 + 4468 +2002-08-31 Theodore Ts'o <tytso@valinux.com> 4469 + 4470 + * dblist.c (ext2fs_dblist_sort): New function which allows the 4471 + caller to pass in a special sort comparison function. 4472 + 4473 +2002-08-20 Theodore Ts'o <tytso@mit.edu> 4474 + 4475 + * valid_blk.c (ext2fs_inode_has_valid_blocks): Fix bug which 4476 + failed to accurately characterize non-standard slow 4477 + symlinks. (Which don't appear in practice on real-life 4478 + systems, fortunately.) 4479 + 4480 +2002-08-17 Theodore Ts'o <tytso@mit.edu> 4481 + 4482 + * Makefile.in: Remove inode_io.o from the standard object files, 4483 + and only build it if debugfs is enabled (it requires 4484 + fileio.o, which is only built if --disable-debugfs isn't 4485 + specified to configure). 4486 + 4487 + * dirhash.c (ext2fs_dirhash): Change the MD4 hash in a backwards 4488 + incompatible way so that it is no longer 4489 + endian-dependent. Add the TEA hash. Allow the seed 4490 + parameter to be optional. 4491 + 4492 + * ext2_fs.h: Remove the HALF_MD4_SEED and HALF_MD4_64 hashes. 4493 + These features are all now in the HALF_MD4 hash. Add 4494 + definition for EXT2_HASH_TEA. 4495 + 4496 + * ext2fs.h (ext2fs_dirhash): Change function prototype so it takes 4497 + a pointer instead of an array. 4498 + 4499 +2002-08-16 Theodore Ts'o <tytso@mit.edu> 4500 + 4501 + * ext2_err.et.in (EXT2_ET_BAD_EA_BLOCK_NUM): New error code 4502 + 4503 + * ext2fs.h (ext2fs_inode_data_blocks): New function which returns 4504 + the number of data blocks used by an inode exclusive of 4505 + the EA block. 4506 + 4507 + * ext_attr.c (ext2fs_adjust_ea_refcount): New function which 4508 + adjusts the reference count in an extended attribute block. 4509 + 4510 + * valid_blk.c (ext2fs_inode_has_valid_blocks): Add code to 4511 + correctly deal with extended attribute blocks in symbolic 4512 + links. 4513 + 4514 +2002-08-13 <tytso@snap.thunk.org> 4515 + 4516 + * Makefile.in: Move dupfs.o and test_io.o from the 4517 + needed-by-debugfs object list to the needed-by-resizer 4518 + object list. Fixes compile problem if the system is built 4519 + with only --disable-debugfs. 4520 + 4521 +2002-07-29 Theodore Ts'o <tytso@mit.edu> 4522 + 4523 + * link.c (ext2fs_link): When adding a new link to a directory, 4524 + clear the HTREE bit. 4525 + 4526 +2002-07-23 Theodore Ts'o <tytso@mit.edu> 4527 + 4528 + * dirhash.c (ext2fs_dirhash): Fix bug which caused MD4 4529 + calculations for names > 32 characters to be completely 4530 + bogus. Changed MD4 calculation to match what is currently 4531 + being used in the CVS gkernel tree. 4532 + 4533 +2002-07-19 Theodore Ts'o <tytso@mit.edu> 4534 + 4535 + * ext2_fs.h: Add s_hash_seed and s_def_hash_version to the 4536 + superblock definition. 4537 + 4538 + * badblocks.c, freefs.c, ext2fs.h: Use the badblocks functions to 4539 + create a set of u32_list functions. 4540 + 4541 + * dirhash.c (halfMD4Transform): Shift the hash by one bit, 4542 + since that's required by the directory indexing code. 4543 + 4544 +2002-07-14 Theodore Ts'o <tytso@mit.edu> 4545 + 4546 + * ext2fs.h, read_bb_file.c: Change private to priv_data, to avoid 4547 + using a C++ reserved word. 4548 + 4549 + * unix_io.c (unix_open): Only attempt the setrlimit workaround if 4550 + the kernel version is 2.4.10 -- 2.4.17, since otherwise an 4551 + old version of glibc (built against 2.2 headers) will 4552 + interact badly with the workaround to actually cause more 4553 + problems. I hate it when the glibc folks think they're 4554 + being smarter than the kernel.... 4555 + 4556 +2002-06-28 Andreas Dilger <adilger@clusterfs.com> 4557 + 4558 + * ext2_fs.h: Add superblock field for reserved group descriptors. 4559 + 4560 +2002-06-28 Theodore Ts'o <tytso@mit.edu> 4561 + 4562 + * bitops.h: Add #define's for ext2fs_{l,b}e{32,16}_to_cpu and 4563 + ext2fs_cpu_to_{l,b}e{32,16} 4564 + 4565 +2002-06-27 Theodore Ts'o <tytso@mit.edu> 4566 + 4567 + * ismounted.c (check_mntent): In AIX 4.3, MOUNTED isn't defined. 4568 + Add appropriate fallbacks in this case. 4569 + 4570 +2002-06-26 Theodore Ts'o <tytso@mit.edu> 4571 + 4572 + * dirhash.c (ext2fs_dirhash): Change function signature to support 4573 + a hash seed, and to return the minor hash (for 64-bit hash 4574 + support). Add support for the half MD4, half MD4 with 4575 + seed, and half MD4 with seed and 64 bits. 4576 + 4577 +2002-06-15 Theodore Ts'o <tytso@mit.edu> 4578 + 4579 + * ext2_fs.h (EXT2_DIRSYNC_FL): Add new file. 4580 + 4581 +2002-06-09 Andreas Dilger <adilger@clusterfs.com> 4582 + 4583 + * ext2_fs.h: Add macros for maximum block/inode counts: 4584 + EXT2_INODES_PER_BLOCK, EXT2_MAX_BLOCKS_PER_GROUP, 4585 + and EXT2_MAX_INODES_PER_GROUP. 4586 + 4587 + * openfs.c (ext2fs_open): Check that the number of blocks in a group 4588 + is less than 2^16, otherwise we need an INCOMPAT flag (not 4589 + in existence yet, if ever) to open such a filesystem. 4590 + 4591 + * initialize.c (ext2fs_initialize): Limit the number of blocks and 4592 + inodes in a group to less than 2^16. 4593 + 4594 +2002-06-09 Andreas Dilger <adilger@clusterfs.com> 4595 + 4596 + * ext2_fs.h: Further minor cleanups of the header. Consolidate 4597 + some checks for __KERNEL__ into one place. 4598 + 4599 +2002-05-22 Andreas Dilger <adilger@clusterfs.com> 4600 + 4601 + * ext2_fs.h: Remove macros accessing u.ext2_sb field and use 4602 + the EXT2_SB() macro instead. Remove kernel function 4603 + prototypes also. This matches the 2.5 kernel, and 4604 + is also cleaner for other reasons. Whitespace cleanup. 4605 + 4606 +2002-05-21 Theodore Ts'o <tytso@mit.edu> 4607 + 4608 + * ext2_ext_attr.h: Update to V2 version of the Bestbits format. 4609 + 4610 +2002-05-16 Andreas Dilger <adilger@clusterfs.com> 4611 + 4612 + * ext2_fs.h: Change limits to support filesystems with 8k blocks. 4613 + 4614 + * initialize.c (ext2fs_initialize): Remove assumption that 4615 + blocksizes are always <= 4k. 4616 + 4617 +2002-05-11 Theodore Ts'o <tytso@mit.edu> 4618 + 4619 + * bmap.c (ext2fs_bmap): Fix bug which caused ext2fs_bmap to fail 4620 + silently if inode pointer is NULL (and ext2fs_bmap is 4621 + expected to read the inode itself). 4622 + 4623 +2002-04-27 Theodore Ts'o <tytso@mit.edu> 4624 + 4625 + * ismounted.c (check_mntent_file, is_swap_device): Verify that the 4626 + file we are checking is a block device file before looking 4627 + at st_rdev, since it's not valid for normal files. 4628 + (is_swap_device): Move so that it is outside the 4629 + HAVE_MNTENT_H, so that it is always built. 4630 + 4631 +2002-03-11 Theodore Tso <tytso@mit.edu> 4632 + 4633 + * dirblock.c (ext2fs_read_dir_block2, ext2fs_write_dir_block): New 4634 + functions which take an extra flags argument. The flag 4635 + EXT2_DIRBLOCK_V2_STRUCT will reverse when the name_len 4636 + field is byte swampped on big-endian machines, since in 4637 + the V2 structure, name_len is a char field which is 4638 + doesn't need to be byte swapped --- except if an 4639 + old-style kernel had byte-swapped the name_len field 4640 + as part of the V1 structure. 4641 + 4642 + * ext2_err.et.in (EXT2_ET_DIRHASH_UNSUPP): New error code 4643 + 4644 + * dirhash.c (ext2fs_dirhash): New function which calculates the 4645 + hash for a filename in an indexed directory. 4646 + 4647 +2002-03-08 Theodore Tso <tytso@mit.edu> 4648 + 4649 + * Release of E2fsprogs 1.27 4650 + 4651 +2002-03-07 Theodore Tso <tytso@mit.edu> 4652 + 4653 + * ext2fs.h (ext2fs_inode_io_intern): Add missing function prototype. 4654 + 4655 + * bmap.c, fileio.c, inode_io.c, tst_badblocks.c, 4656 + tst_byteswap.c: Fix gcc -Wall complaints 4657 + 4658 + * Makefile.in (check): Use LD_LIBRARY_PATH to run test programs. 4659 + (From Philipp Thomas <pthomas@suse.de>) 4660 + 4661 +2002-02-25 Theodore Tso <tytso@mit.edu> 4662 + 4663 + * ext2_fs.h: Add structure definitions for the directory indexing 4664 + extension. 4665 + 4666 +2002-02-23 Theodore Tso <tytso@mit.edu> 4667 + 4668 + * unix_io.c (unix_open): Fix 2.4 resource limit workaround so that 4669 + it doesn't break things on mis32, sparc32, and alpha 4670 + platforms. 4671 + 4672 +2002-02-21 Theodore Tso <tytso@mit.edu> 4673 + 4674 + * ismounted.c (is_swap_device): Fix file descriptor/memory leak; 4675 + we were missing an fclose(). 4676 + 4677 +2002-02-20 Theodore Tso <tytso@mit.edu> 4678 + 4679 + * Makefile.in, inode_io.c, ext2fs.h, ext2_err.et.in: Add new io 4680 + abstraction interface which exports an ext2 inode. 4681 + 4682 + * ext2fs.h, fileio.c (ext2fs_file_flush): Export ext2fs_file_flush 4683 + as a public interface. Change void * to const void * in 4684 + ext2fs_file_write's interface. 4685 + 4686 + * test_io.c (test_close), unix_io.c (unix_close): Remove unneeded 4687 + conditional; save a few bytes. 4688 + 4689 +2002-02-12 Theodore Tso <tytso@mit.edu> 4690 + 4691 + * Makefile.in (tst_badblocks): Add some extra .o files when 4692 + linking the debugging program tst_badblocks which are 4693 + needed if we aren't compiling with inline functions enable. 4694 + 4695 + * kernel-list.h (__inline__): On non-gcc and non-Watcom compilers, 4696 + define away __inline__ since it may not be supported. 4697 + 4698 + * kernel-jbd.h (jbd_debug): For systems that don't do STDC, use a 4699 + stripped down jbd_debug that doesn't use variadic 4700 + arguments. This will cause warnings under AIX, but things 4701 + should still build. 4702 + 4703 +2002-02-03 Theodore Tso <tytso@thunk.org> 4704 + 4705 + * Release of E2fsprogs 1.26 4706 + 4707 +2002-02-03 Theodore Tso <tytso@mit.edu> 4708 + 4709 + * mkdir.c (ext2fs_mkdir): Change to use ext2fs_inode_alloc_stats2 4710 + so that the number of directories in use is adjusted 4711 + appropriately. 4712 + 4713 + * alloc_stats.c (ext2fs_inode_alloc_stats2): Add new function 4714 + which optionally will modify the number of directories 4715 + count. 4716 + 4717 +2002-01-03 Theodore Tso <tytso@mit.edu> 4718 + 4719 + * dir_iterate.c (ext2fs_dir_iterate2, ext2fs_process_dir_block): 4720 + Add support for a new flag, DIRENT_FLAG_INCLUDE_REMOVED, 4721 + which will return deleted directory entries. 4722 + ext2fs_dir_iterate2 takes a new callback function which 4723 + is identical with the one used by 4724 + ext2fs_dblist_dir_iterate(). If the directory entry is 4725 + deleted, the callback function will be called with the 4726 + entry paraemter set to DIRENT_DELETED_FILE. 4727 + 4728 + * Makefile.in, alloc_stats.c (ext2fs_inode_alloc_stats, 4729 + ext2fs_block_alloc_stats): New functions which update 4730 + block/inode allocation statistics in the bitmaps, block 4731 + group descriptors, and superblock. 4732 + 4733 + * mkjournal.c (mkjournal_proc), mkdir.c (ext2fs_mkdir), 4734 + expanddir.c (expand_dir_proc), bb_inode.c 4735 + (clear_bad_block_proc, set_bad_block_proc, 4736 + ext2fs_update_bb_inode), alloc.c (ext2fs_alloc_block): 4737 + Update to use new block/inode allocation statistics. 4738 + 4739 +2001-12-24 Theodore Tso <tytso@mit.edu> 4740 + 4741 + * ismounted.c (is_swap_device): New function used by 4742 + ext2fs_check_if_mounted and ext2fs_check_mount_point which 4743 + determines whether or not the specified device is a swap 4744 + device by using /proc/swaps. More bulletproofing for 4745 + idiotic/careless system administrators! 4746 + 4747 + * ext2fs.h, openfs.c (ext2fs_open), initialize.c 4748 + (ext2fs_initialize), mkdir.c (ext2fs_mkdir): Add a new 4749 + field to struct_ext2_filsys, umask. This field is 4750 + initialize to 022, and affects ext2fs_mkdir in the obvious 4751 + way. (In the future umask should also affect new file 4752 + creation routines, but the fileio functions don't 4753 + currently support this yes.) 4754 + 4755 + * ismounted.c (check_mntent_file): Stat all of the entries in 4756 + /etc/mtab and/or /proc/mounts in order to catch dim-witted 4757 + system administrators who might have created alias 4758 + devices. 4759 + 4760 +2001-12-23 Theodore Tso <tytso@mit.edu> 4761 + 4762 + * Makefile.in, jfs_user.h: Move linux/jbd.h to 4763 + ext2fs/kernel-jbd.h, to avoid using the system header 4764 + file version of hbd.h when using diet glibc (since it 4765 + forcibly adds /usr/include to the beginning of the 4766 + include search path.) 4767 + 4768 + * kernel-jbd.h, kernel-list.h, jfs_compat.h: Move files from 4769 + include/linux directory. 4770 + 4771 +2001-12-16 Theodore Tso <tytso@mit.edu> 4772 + 4773 + * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap), 4774 + ext_attr.c (ext2fs_read_ext_attr, ext2fs_write_ext_attr), 4775 + fileio.c (ext2fs_file_write): Fix gcc -Wall nits 4776 + 4777 + * Makefile.in, jfs_user.h: linux/jfs.h has been renamed to 4778 + linux/jbd.h 4779 + 4780 +2001-12-03 Theodore Tso <tytso@mit.edu> 4781 + 4782 + * unix_io.c (unix_open): Make sure the ulimit workaround works 4783 + regardless of the version of glibc which is used to 4784 + compild e2fsprogs. 4785 + 4786 +2001-11-26 Theodore Tso <tytso@mit.edu> 4787 + 4788 + * unix_io.c (unix_open): Work around a bug in 2.4.10+ kernels by 4789 + trying to unset the filesize limit if at all possible, 4790 + if a block device is getting opened. (The filesize limit 4791 + shouldn't be applied against writes to a block device, but 4792 + starting in 2.4.10, the kernel is doing this.) 4793 + 4794 +2001-11-05 Theodore Tso <tytso@mit.edu> 4795 + 4796 + * mkjournal.c (ext2fs_add_journal_inode): When creating a .journal 4797 + file on adding a journal to an already-mounted filesystem, 4798 + try to clear the ext2 file attributes on an already 4799 + existing .journal file so that we don't fail if on a 4800 + partially added journal to the filesystem. 4801 + 4802 + * ext2_fs.h: Define a new ext2 file attribute, EXT2_NOTAIL_FL, 4803 + which signals that a particular inode should not have the 4804 + last bits of data (the "tail") be merged with another 4805 + file. This is necessary to keep LILO happy. 4806 + 4807 +2001-09-20 Theodore Tso <tytso@thunk.org> 4808 + 4809 + * Release of E2fsprogs 1.25 4810 + 4811 +2001-09-16 Theodore Tso <tytso@mit.edu> 4812 + 4813 + * ext2_ext_attr.h: Remove unneeded #include of <linux/config.h> 4814 + which was breaking the build on the Hurd. (Addresses 4815 + Debian bug #112414). 4816 + 4817 +2001-09-13 Theodore Ts'o <tytso@mit.edu> 4818 + 4819 + * ismounted.c (check_mntent_file): We now validate the entry in 4820 + /etc/mtab to make sure the filesystem is really mounted, 4821 + since some broken distributions (read: Slackware) have 4822 + buggy boot scripts that don't initialize /etc/mtab before 4823 + checking non-root filesystems. (Slackware also doesn't 4824 + check the root filesystem separately, and reboot if the 4825 + root filesystem had changes applied to it, which is 4826 + dangerous and broken.) 4827 + 4828 +2001-09-02 Theodore Tso <tytso@thunk.org> 4829 + 4830 + * Release of E2fsprogs 1.24a 4831 + 4832 +2001-08-30 Theodore Tso <tytso@thunk.org> 4833 + 4834 + * Release of E2fsprogs 1.24 4835 + 4836 +2001-08-30 Theodore Tso <tytso@valinux.com> 4837 + 4838 + * getsize.c (ext2fs_get_device_size): Back out BLKGETSIZE64 4839 + changes, since the ioctl number has been reused by another 4840 + unofficial patch. 4841 + 4842 +2001-08-15 Theodore Tso <tytso@valinux.com> 4843 + 4844 + * Release of E2fsprogs 1.23 4845 + 4846 +2001-08-05 Theodore Tso <tytso@valinux.com> 4847 + 4848 + * alloc.c (ext2fs_new_inode, ext2fs_new_block): Use the fast 4849 + version of the bitmap test routines to speed up these 4850 + routines. (At some point I may want to make these 4851 + routines use the find_first_bit functions, but that will 4852 + add a lot of complexity since it means that these 4853 + functions will have to break the bitmap abstraction 4854 + boundary. It's not clear it's worth it.) 4855 + 4856 + * mkjournal.c (mkjournal_proc): Remember the last block allocated 4857 + to speed up ext2fs_new_block(). 4858 + 4859 +2001-07-29 Theodore Tso <tytso@valinux.com> 4860 + 4861 + * finddev.c (scan_dir): Fix memory leak; we weren't calling 4862 + closedir() when exiting the function in all cases. 4863 + 4864 +2001-07-27 Theodore Tso <tytso@valinux.com> 4865 + 4866 + * mkjournal.c (ext2fs_create_journal_superblock): Set the first 4867 + block usable in the journal for external journals to be 2 4868 + or 3, depending on the blocksize, so that the existing 4869 + kernel code does the right thing. 4870 + 4871 + * getsize.c (ext2fs_get_device_size): Add support for the 4872 + BLKGETSIZE64 ioctl. (Ioctl defined by unofficial patches 4873 + from Ben LaHaise, but it's likely this interface won't 4874 + change.) 4875 + 4876 + * mkjournal.c (ext2fs_add_journal_device): Use the correct block 4877 + when writing the journal superblock, too. (Oops! Needed 4878 + to make 1k filesystems with external journal to work.) 4879 + 4880 +2001-07-26 Theodore Tso <tytso@valinux.com> 4881 + 4882 + * mkjournal.c (ext2fs_add_journal_device): Use the correct block 4883 + to find the journal superblock if the blocksize is 1024. 4884 + 4885 +2001-07-21 Theodore Tso <tytso@valinux.com> 4886 + 4887 + * ext2_err.et.in (EXT2_ET_LOAD_EXT_JOURNAL): Add new error code 4888 + 4889 +2001-07-20 Theodore Tso <tytso@valinux.com> 4890 + 4891 + * ext_attr.c (ext2fs_write_ext_attr): When writing the extended 4892 + attribute block, set the filesystem changed bit. 4893 + 4894 + * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set): 4895 + Comment out these functions since we're not using them. 4896 + 4897 +2001-07-10 Theodore Tso <tytso@valinux.com> 4898 + 4899 + * closefs.c (write_primary_superblock): After writing changes to 4900 + the primary superblock, update the original superblock 4901 + copy so we don't have to re-write those changes in the 4902 + future. 4903 + (ext2fs_flush): Clear the superblock dirty flag after 4904 + we've flushed out changes to disk. 4905 + 4906 +2001-07-07 Theodore Tso <tytso@valinux.com> 4907 + 4908 + * bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx 4909 + to avoid register conflicts when compiling in PIC mode. 4910 + 4911 +2001-07-04 Theodore Tso <tytso@valinux.com> 4912 + 4913 + * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set): 4914 + Add new functions (C and in i386 assembler) which quickly 4915 + find bits set in a bitmask. 4916 + 4917 +2001-06-23 Theodore Tso <tytso@valinux.com> 4918 + 4919 + * Makefile.in, ext_attr.c, ext2_attr.c, ext2fs.h: Add new files 4920 + ext2_ext_attr.h and ext_attr.c for extended attributes 4921 + support. 4922 + 4923 + * Release of E2fsprogs 1.22 4924 + 4925 +2001-06-22 Theodore Tso <tytso@valinux.com> 4926 + 4927 + * mkjournal.c (ext2fs_add_journal_inode): Move close of file 4928 + descriptor so that adding a journal to a mounted 4929 + filesystem doesn't die. (Fixes a bug accidentally 4930 + introduced in e2fsprogs 1.21.) 4931 + 4932 + * mkjournal.c (ext2fs_add_journal_inode): Only use fchflags if 4933 + HAVE_CHFLAGS and UF_NODUMP are defined, since the Hurd has 4934 + fchflags without defining UF_NODUMP. (Addresses Debian 4935 + bug #101361) 4936 + 4937 + * flushb.c: Use platform independent method of defining the 4938 + BLKFLSBUF and FDFLUSH ioctl's. Also include sys/mount.h 4939 + since on newer glibc's BLKFLSBUF is defined there. 4940 + 4941 + * bitops.h: The C language versions of ext2fs_swab16/32 need to be 4942 + included if EXT2FS_ENABLE_SWAPFS is defined, since we need 4943 + to support byte swapping even if we don't support the 4944 + conversion functions. (Fixes Debian bug #101686). 4945 + 4946 + * dirblock.c (ext2fs_read_dir_block): Remove use of dir_entry_2 4947 + since the byte-swapping code all assumes the 4948 + ext2_dir_entry structure. (It's a question of whether or 4949 + not name_len should be byte-swapped or not, and whether 4950 + it's a 16 bit or 8 bit field.) 4951 + 4952 +2001-06-15 Theodore Tso <tytso@valinux.com> 4953 + 4954 + * Release of E2fsprogs 1.21 4955 + 4956 +2001-06-15 Theodore Tso <tytso@valinux.com> 4957 + 4958 + * Makefile.in: Fix bug in installation of ext2_types.h. It is a 4959 + file which is generated and is therefore found in the 4960 + build directory, not source directory. 4961 + 4962 + * ismounted.c (check_mntent_file): Use a test file in / to check 4963 + to see if the root filesystem is mounted read-only. This 4964 + protects against the case where /etc might not be on /, as 4965 + well as the case where /etc/mtab doesn't exist. (Both are 4966 + should-never happen scenarios, but you never know...) 4967 + 4968 +2001-06-14 Theodore Tso <tytso@valinux.com> 4969 + 4970 + * ismounted.c (ext2fs_check_if_mounted): Fix grammer in comment. 4971 + Remove unneeded #pragma argsused, since the arguments are 4972 + always used. 4973 + 4974 +2001-06-13 Theodore Tso <tytso@valinux.com> 4975 + 4976 + * ext2_types.h.in: If linux/types.h has been defined, then don't 4977 + try to redefine the typedefs. 4978 + 4979 + * Makefile.in (HFILES): Add ext2_types.h to the list of files 4980 + which should be installed. 4981 + 4982 + * ismounted.c (check_mntent_file): Work around GNU hurd brain 4983 + damage. Addresses Debian bug #100304. 4984 + 4985 + * Makefile.in: Limit some .o files from being included into the 4986 + library if --disable-debugfs, --disable-swapfs, 4987 + --disable-imager, or --disable-resizer are used. 4988 + 4989 +2001-06-12 Theodore Tso <tytso@valinux.com> 4990 + 4991 + * inode.c, tst_iscan.c: Stop using the compatibility badblocks 4992 + function, and use the ext2fs_badblocks_* functions 4993 + instead. 4994 + 4995 +2001-06-11 Theodore Tso <tytso@valinux.com> 4996 + 4997 + * Makefile.in, gen_bitmap.c, bitops.h: Move inline functions 4998 + ext2fs_mark_generic_bitmap and 4999 + ext2fs_unmark_generic_bitmap to gen_bitmap.c as normal 5000 + functions. (This saves space and doesn't significantly 5001 + change the speed of e2fsck on a P-III.) 5002 + 5003 + * ext2fs.h, bitops.h, block.c, bmap.c, closefs.c, dirblock.c, 5004 + inode.c, native.c, openfs.c, rw_bitmaps.c, swapfs.c: Only 5005 + include the byte-swapping logic if ENABLE_SWAPFS is turned 5006 + on or if we're on a big-endian machine. 5007 + 5008 + * initialize.c (ext2fs_initialize):Use WORDS_BIGENDIAN directly to 5009 + set EXT2_FLAG_SWAP_BYTES, instead of using 5010 + ext2fs_native_flag. 5011 + 5012 + * native.c (ext2fs_native_flag): Use WORDS_BIGENDIAN provided by 5013 + autoconf to determine whether or not return 5014 + EXT2_FLAG_SWAP_BYTES. 5015 + 5016 +2001-06-10 Theodore Tso <tytso@valinux.com> 5017 + 5018 + * Makefile.in: Remove the dependence on the libe2p library. 5019 + 5020 + * mkjournal.c (ext2fs_add_journal_inode): Replace use of fsetflags 5021 + with direct usage of the ioctl/fchflags so that we don't 5022 + have to depend on the libe2p library. 5023 + 5024 +2001-06-08 Theodore Tso <tytso@valinux.com> 5025 + 5026 + * ext2_types.h.in: Use unsigned ints in favor of unsigned longs 5027 + when trying to find a 32-bit wide type. 5028 + 5029 + * icount.c (insert_icount_el): Fix the code used to estimate the 5030 + size of the new icount array to be more intelligent, to 5031 + avoid reallocating the array too many times. Thanks to 5032 + Enrique Perez-Terron for pointing this out. 5033 + 5034 +2001-06-02 Theodore Tso <tytso@valinux.com> 5035 + 5036 + * valid_blk.c (ext2fs_inode_has_valid_blocks): Only check i_blocks 5037 + for a symlink to determine whether it is a fast symlink. 5038 + 5039 +2001-06-01 Theodore Tso <tytso@valinux.com> 5040 + 5041 + * Makefile.in, dosio.c, ext2_fs.h, ext2_types.h.in, ext2fs.h: 5042 + Move include/asm/types.h.in to lib/ext2fs/ext2_types.h.in. 5043 + 5044 +2001-05-25 Theodore Tso <tytso@valinux.com> 5045 + 5046 + * Release of E2fsprogs 1.20 5047 + 5048 +2001-05-25 Theodore Tso <tytso@valinux.com> 5049 + 5050 + * ismounted.c: More cleanups for ismounted.c, some from Andreas, 5051 + some to clean up Andreas's patches. Use strncpy instead 5052 + of strcpy to save the root's mountpoint. Clean up #ifdef 5053 + structure. Remove uneeded variable in testing/debug driver. 5054 + 5055 +2001-05-24 Andreas Dilger <adilger@turbolinux.com> 5056 + 5057 + * ismounted.c: Add check for root device which doesn't depend on 5058 + /etc/fstab or /proc/mounts to be correct. Don't call 5059 + endmntent() before we are done with mnt struct. 5060 + 5061 +2001-05-23 Theodore Tso <tytso@valinux.com> 5062 + 5063 + * ext2_err.et.in (EXT2_ET_JOURNAL_UNSUPP_VERSION): Added new error 5064 + code. 5065 + 5066 +2001-05-21 Theodore Tso <tytso@valinux.com> 5067 + 5068 + * ext2_fs.h: Change assignment of EXT2_FEATURE_COMPAT_DIR_INDEX to 5069 + make room for pre-existing usage of 5070 + EXT2_FEATURE_COMPAT_EXT_ATTR. Add flag EXT2_INDEX_FL with 5071 + the same codepoint as EXT2_BTREE_FL. 5072 + 5073 +2001-05-20 Theodore Tso <tytso@valinux.com> 5074 + 5075 + * ext2fs.h: #include <> instead of "" for ext2fs and et header 5076 + files, since they will be installed in /usr/include 5077 + 5078 +2001-05-14 Theodore Tso <tytso@valinux.com> 5079 + 5080 + * alloc.c, alloc_tables.c, badblocks.c, bb_compat.c, bb_inode.c, 5081 + bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c, 5082 + check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c, 5083 + dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c, 5084 + expanddir.c, ext2_fs.h, fileio.c, finddev.c, flushb.c, 5085 + freefs.c, get_pathname.c, getsize.c, icount.c, imager.c, 5086 + initialize.c, inline.c, inode.c, irel_ma.c, ismounted.c, 5087 + link.c, lookup.c, mkdir.c, mkjournal.c, namei.c, native.c, 5088 + newdir.c, nt_io.c, openfs.c, read_bb.c, read_bb_file.c, 5089 + rs_bitmap.c, rw_bitmaps.c, swapfs.c, test_io.c, 5090 + tst_badblocks.c, tst_byteswap.c, tst_getsize.c, 5091 + tst_iscan.c, unix_io.c, unlink.c, valid_blk.c, version.c, 5092 + write_bb_file.c, ext2_fs.h: Moved file from include/linux. 5093 + Adjust all files in this directroy to include this file. 5094 + 5095 + * mkjournal.c (ext2fs_create_journal_superblock): Remove redundant 5096 + code. 5097 + 5098 +2001-05-05 Theodore Tso <tytso@valinux.com> 5099 + 5100 + * fileio.c (ext2fs_file_read): Factored out common code and 5101 + cleaned up function. Fixed a bug where if there was an 5102 + error reading from the disk, the number of bytes read 5103 + wasn't reliably set. (Fixes Debian bug #79163) 5104 + (ext2fs_file_write): Factored out common code and made 5105 + function more efficient; if writing a full block, don't 5106 + bother to do a read-modify-write cycle. 5107 + 5108 +2001-05-04 Theodore Tso <tytso@valinux.com> 5109 + 5110 + * dirblock.c (ext2fs_read_dir_block): Check for an directory 5111 + record length which isn't a multiple four, and treat that 5112 + as an invalid. Scan the directory and return an error 5113 + (EXT2_ET_DIR_CORRUPTED) if the directory records are 5114 + corrupted. 5115 + (ext2fs_write_dir_block): If while byte-swapping the 5116 + directory block, if there's an error, abort and return 5117 + EXT2_ET_DIR_CORRUPTED. 5118 + 5119 +2001-05-02 Theodore Tso <tytso@valinux.com> 5120 + 5121 + * ext2fs.h (EXT2_FLAG_IMAGE_FILE): Add new flag, and add 5122 + image_header field in the ext2_filsys structure 5123 + 5124 + * block.c (block_iterate_ind, block_iterate_dind, block_iterate_tind): 5125 + * inode.c (ext2fs_read_inode): 5126 + * rw_bitmaps.c (read_bitmaps): 5127 + * openfs.c (ext2fs_open): Add support for EXT2_FLAG_IMAGE_FILE 5128 + 5129 + * imager.c (ext2fs_image_bitmap_read): Fix bug in imager to make 5130 + sure the full bitmap is saved. 5131 + 5132 +2001-05-01 Theodore Tso <tytso@valinux.com> 5133 + 5134 + * e2image.h (struct ext2_image_hdr): Add space for the device name 5135 + in the image header. 5136 + 5137 + * dir_iterate.c (ext2fs_process_dir_block): Add a double-check to 5138 + make sure the rec_len is a multiple of 4, to prevent 5139 + bus-errors on architectures which care about mis-aligned 5140 + pointer references. 5141 + 5142 +2001-04-25 Theodore Tso <tytso@valinux.com> 5143 + 5144 + * getsize.c (ext2fs_get_device_size): Use an unsigned long to 5145 + query the device sizes using the BLKGETSIZE ioctl. 5146 + 5147 +2001-04-16 Theodore Tso <tytso@valinux.com> 5148 + 5149 + * ismounted.c (check_mntent): Check /proc/mounts on Linux systems 5150 + before checking /etc/mtab. The EXT2_MF_READONLY flag is 5151 + now set from the /etc/mtab options field for all 5152 + filesystems, not just the root filesystem. Add debugging 5153 + code to make it easier to test ext2fs_check_if_mounted(). 5154 + 5155 + * mkjournal.c (ext2fs_create_journal_superblock): Add safety 5156 + check; return an error if there's an attempt to create a 5157 + journal less than 1024 filesystem blocks. 5158 + 5159 + * ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and 5160 + EXT2_NO_JOURNAL_SB to be EXT2_ET_*. 5161 + 5162 +2001-02-20 Theodore Tso <tytso@valinux.com> 5163 + 5164 + * bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly 5165 + inline functions. 5166 + 5167 + * tst_byteswap.c: New function to test the byteswap functions. 5168 + Add to regression test suite. 5169 + 5170 +2001-02-08 Theodore Tso <tytso@valinux.com> 5171 + 5172 + * e2image.h (struct ext2_image_hdr): Fix type for fs_hostname 5173 + 5174 +2001-02-07 Theodore Tso <tytso@valinux.com> 5175 + 5176 + * mkjournal.c (ext2fs_create_journal_superblock): Fix the setting 5177 + of s_first for external devices to always be 1, since 5178 + jsb->s_first is always relative to the start of the 5179 + journal superblock. Use htonl(1) when setting s_nr_users. 5180 + 5181 +2001-01-17 Theodore Ts'o <tytso@valinux.com> 5182 + 5183 + * mkjournal.c (ext2fs_add_journal_device): Fix bug where the 5184 + device number of the filesystem (instead of the journal) 5185 + was being dropped into s_journal_dev. 5186 + 5187 +2001-01-15 Theodore Ts'o <tytso@valinux.com> 5188 + 5189 + * initialize.c (ext2fs_initialize): Add support for initializing 5190 + the ext2 superblock for external journal devices. This 5191 + basically means we don't bother to allocate any block 5192 + group descriptors. 5193 + 5194 + * openfs.c (ext2fs_open): Only open external journal devices if 5195 + the new flag EXT2_FLAG_JOURNAL_DEV_OK is passed to 5196 + ext2fs_open. When opening such devices, don't try to read 5197 + the block group descriptors, since they're not there. 5198 + 5199 + * ext2_err.et.in (EXT2_NO_JOURNAL_SB): Add new error code 5200 + 5201 + * mkjournal.c: Export a new function, 5202 + ext2fs_create_journal_superblock(), which allocates and 5203 + returns a buffer containing a journal superblock. This is 5204 + needed by mke2fs to create an external journal. Rewrote 5205 + ext2fs_add_journal_device() so that it no longer creates 5206 + the external journal, but rather adds a filesystem to an 5207 + existing external journal. It handles all of the UUID 5208 + manipulation. 5209 + 5210 + * ext2fs.h: List the EXT3_FEATURE_JOURNAL_DEV as a flag supported 5211 + by the library. Define the EXT2_FLAG_JOURNAL_DEV_OK. 5212 + Changed function prototype for ext2fs_add_journal_device(). 5213 + 5214 +2001-01-14 Theodore Ts'o <tytso@valinux.com> 5215 + 5216 + * closefs.c (ext2fs_flush): Don't write out anything beyond the 5217 + primary superblock if EXT2_INCOMPAT_JOURNAL_DEV is 5218 + listed. 5219 + 5220 +2001-01-12 Theodore Ts'o <tytso@valinux.com> 5221 + 5222 + * imager.c: Fix gcc -Wall complaints and a series of bugs where 5223 + retval wasn't set correctly. (Thanks to Andreas Dilger 5224 + for pointing this out.) 5225 + 5226 +2001-01-11 <tytso@snap.thunk.org> 5227 + 5228 + * flushb.c (ext2fs_sync_device): New function which centralizes 5229 + all of the places which might try to use the BLKFLSBUF 5230 + or FDFLUSH ioctls (and usually failing to define them 5231 + since the system header files don't usually do this for 5232 + us, and we're trying to avoid usage of kernel include 5233 + files now). 5234 + 5235 +2001-01-10 <tytso@snap.thunk.org> 5236 + 5237 + * alloc.c, bb_inode.c, bitmaps.c, bitops.h, block.c, bmap.c, 5238 + bmove.c, brel.h, cmp_bitmaps.c, dblist.c, dblist_dir.c, 5239 + dir_iterate.c, expanddir.c, ext2fs.h, ext2fsP.h, fileio.c, 5240 + finddev.c, get_pathname.c, icount.c, inode.c, irel.h, 5241 + irel_ma.c, ismounted.c, link.c, lookup.c, mkdir.c, 5242 + mkjournal.c, namei.c, newdir.c, read_bb_file.c, test_io.c, 5243 + tst_iscan.c, unix_io.c, unlink.c: Change use of ino_t to 5244 + ext2_ino_t, to protect applications that attempt to 5245 + compile -D_FILE_OFFSET_BITS=64, since this inexplicably 5246 + changes ino_t(!?). So we use ext2_ino_t to avoid an 5247 + unexpected ABI change. 5248 + 5249 +2001-01-05 <tytso@snap.thunk.org> 5250 + 5251 + * dirblock.c (ext2fs_read_dir_block): Fix a potential case where 5252 + we may overrun allocated memory in case of a corrupted 5253 + filesystem (or an e2fsck test case :-) when byte-swapping 5254 + the directory block. 5255 + 5256 + * ext2fs.h: Indent the #warning to fix gcc -Wall complaint. 5257 + 5258 + * mkjournal.c (ext2fs_add_journal_device): Fix various gcc -Wall 5259 + complaints including a missing return 0 at the end of 5260 + ext2fs_add_journal_device. 5261 + 5262 +2001-01-03 <tytso@snap.thunk.org> 5263 + 5264 + * Makefile.in: Link in libe2p when creating libext2fs as a shared 5265 + library, since mkjournal.c now references fsetflags(). 5266 + 5267 + * mkjournal.c (ext2fs_add_journal_inode): Folded in Andreas 5268 + Dilger's changes (with fixups) to allow on-line creation 5269 + of a journal file. 5270 + 5271 + * ext2fs.h, closefs.c (ext2fs_flush): Add new flag, 5272 + EXT2_FLAG_SUPER_ONLY, which the close routines to only 5273 + update the superblock, and not the group descriptors. 5274 + 5275 +2000-12-30 Andreas Dilger <adilger@turbolinux.com> 5276 + 5277 + * ismounted.c: add ext2fs_check_mount_point() function, which will 5278 + optionally return the mount point of a device if mounted 5279 + 5280 +2000-12-14 Andreas Dilger <adilger@turbolinux.com> 5281 + 5282 + * mkjournal.c: rename ext2fs_add_journal_fs() to the more descriptive 5283 + ext2fs_add_journal_inode() 5284 + 5285 +2001-01-01 <tytso@snap.thunk.org> 5286 + 5287 + * ext2fs.h: Remove definition of ext2fs_sb. Note: this may break 5288 + source (but not binary) compatibility of some users of the 5289 + ext2 library. They should just simply do a global search 5290 + and replace of struct ext2fs_sb with struct 5291 + ext2_super_block, and use their own private copy of 5292 + ext2_fs.h if they aren't already. 5293 + 5294 + * closefs.c, initialize.c, link.c, newdir.c, openfs.c, swapfs.c: 5295 + Replace use of ext2fs_sb with ext2_super_block. 5296 + 5297 +2000-12-31 <tytso@snap.thunk.org> 5298 + 5299 + * ext2fs.h: Cleaned up header file by removing definitions of 5300 + feature flags that might not have been defined in older 5301 + ext2 header files. Now that we're using our own 5302 + include/linux/ext2fs.h header file, this can never happen. 5303 + 5304 + * jfs_dat.h: Removed old header file which is no longer needed. 5305 + 5306 +2000-12-13 Theodore Ts'o <tytso@valinux.com> 5307 + 5308 + * closefs.c (ext2fs_update_dynamic_rev): New function suggested 5309 + by Andreas Dilger to update the filesystem revision to 5310 + EXT2_DYNAMIC_REV. 5311 + 5312 + * swapfs.c (ext2fs_swap_super): Add byte swapping for the journal 5313 + fields. 5314 + 5315 +2000-12-09 <tytso@snap.thunk.org> 5316 + 5317 + * ext2fs.h, mkjournal.c (ext2fs_add_journal_inode, 5318 + ext2fs_add_journal_device): Add a new argument to the APIs 5319 + of these function, which is a flags word. This is used to 5320 + allow the creation of a V1 superblock for those folks who 5321 + are using ext3 0.3b in production. Note, the user-land 5322 + interface for getting at this flag won't be documented, as 5323 + the V1 superblock is deprecated. 5324 + 5325 + * mkjournal.c (init_journal_superblock): Sync Stephen's changes 5326 + which creates a V2 superblock instead of a V1 superblock. 5327 + 5328 +2000-11-21 <tytso@snap.thunk.org> 5329 + 5330 + * test_io.c (test_write_blk, test_write_byte): Fix typos pointed 5331 + out by Andreas Dilger. 5332 + 5333 +2000-11-05 <tytso@snap.thunk.org> 5334 + 5335 + * imager.c (ext2fs_image_{inode,super,bitmap}_{read,write}, 5336 + ext2_fs.h, Makefile.in: New file that has routines that 5337 + save ext2fs metadata to a file. 5338 + 5339 + * ext2_err.et.in (EXT2_ET_MAGIC_E2IMAGE): New error code assigned. 5340 + 5341 + * e2image.h: New file which defines the file format for the ext2 5342 + image file. (Saved copy of ext2 metadata to a file as a 5343 + saving throw against worst-case damage.) 5344 + 5345 +2000-11-01 <tytso@snap.thunk.org> 5346 + 5347 + * inode.c (ext2fs_flush_icache): Add new function 5348 + ext2fs_flush_icache() which flushes the internal inode 5349 + cache. Applications which modify the inode table blocks 5350 + directly must call this function. 5351 + 5352 +2000-10-26 <tytso@snap.thunk.org> 5353 + 5354 + * mkjournal.c: Add #include of netinet/in.h, since Solaris 5355 + requires it for ntohl(). 5356 + 5357 + * ext2_io.h (io_channel_write_byte): Add new interface to allow 5358 + callers to write specific byte ranges. This is an 5359 + optional interface, which not all IO channels may 5360 + implement. 5361 + 5362 + * unix_io.c (unix_write_byte): 5363 + * test_io.c (test_write_byte): Add implementation of the 5364 + write_byte function. 5365 + 5366 + * closefs.c (write_primary_superblock, ext2fs_flush): Add a new 5367 + function which writes the primary superblock. If the IO 5368 + channel supports writing raw bytes directly, only fields 5369 + which were modified are written to the disk. This makes 5370 + it safe(r) to use utilities like tune2fs on a mounted 5371 + filesystem. 5372 + 5373 + * freefs.c (ext2fs_free): Free the original superblock if it is 5374 + available. 5375 + 5376 + * openfs.c (ext2fs_open): Store a copy of the original superblock 5377 + when opening it. 5378 + 5379 + * ext2fs.h: Add a field to store the original superblock in the 5380 + ext2 context structure. 5381 + 5382 +2000-10-24 <tytso@snap.thunk.org> 5383 + 5384 + * llseek.c: Add #ifdef's for IA64 (it's a 64-bit platform, so we 5385 + don't need to use llseek). 5386 + 5387 +2000-10-24 <tytso@valinux.com> 5388 + 5389 + * Makefile.in, ext2fs.h, jfs_dat.h, mkjournal.c: Add functions for 5390 + creating an ext3 journal on a filesystem. 5391 + 5392 +2000-08-21 <tytso@valinux.com> 5393 + 5394 + * ext2_err.et.in (EXT2_JOURNAL_NOT_BLOCK): Add new error code. 5395 + 5396 +2000-08-22 <tytso@valinux.com> 5397 + 5398 + * unix_io.c: Make massive changes to support a multiple block 5399 + writethrough cacheing. 5400 + 5401 + * ext2_io.h: Added flags field to the io_channel structure. 5402 + 5403 +2000-08-19 <tytso@valinux.com> 5404 + 5405 + * finddev.c, ext2fs.h, Makefile.in: Add new file, finddev.c, which 5406 + provides the function ext2fs_find_block_device(). This 5407 + function returns the pathname to a block device, given its 5408 + device number. 5409 + 5410 +2000-07-13 <tytso@valinux.com> 5411 + 5412 + * Release of E2fsprogs 1.19 5413 + 5414 +2000-07-07 Theodore Ts'o <tytso@valinux.com> 5415 + 5416 + * ext2fs.h (EXT2_LIB_FEATURE_INCOMPAT_SUPP): Add 5417 + EXT3_FEATURE_INCOMPAT_RECOVER (aka needs_recovery) to the 5418 + list of filesystem flags supported by the library. 5419 + 5420 +2000-07-04 Theodore Ts'o <tytso@valinux.com> 5421 + 5422 + * ext2fs.h: Update to include latest journalling additions to the 5423 + superblock. 5424 + 5425 + * dll/jump.funcs: Add new jumptable entries for 5426 + ext2fs_write_bb_FILE, ext2fs_read_bb_FILE2, and 5427 + ext2fs_badblocks_equal. 5428 + 5429 + * tst_badblocks.c: Update test program to test 5430 + ext2fs_read_bb_FILE2 and ext2fs_write_FILE. 5431 + 5432 + * write_bb_file.c (ext2fs_write_bb_FILE): New function which 5433 + writes out bad blocks list to a file. 5434 + 5435 + * read_bb_file.c (ext2fs_read_bb_FILE2): Add new function which 5436 + changes the callback function to take two additional 5437 + arguments; a private blind pointer supplied by the caller, 5438 + and pointer to a char * containing a pointer to the 5439 + invalid string. 5440 + 5441 + * badblocks.c (ext2fs_badblocks_equal): Add new function which 5442 + returns true if two badblocks list are equal. 5443 + 5444 + * Makefile.in: Remove explicit link of -lc in the shared library. 5445 + (It shouldn't be necessary, and is harmful in some cases). 5446 + 5447 +2000-06-10 Theodore Ts'o <tytso@valinux.com> 5448 + 5449 + * getsize.c (main): Add debugging code under #ifdef DEBUG 5450 + 5451 +2000-05-27 Theodore Ts'o <tytso@valinux.com> 5452 + 5453 + * mkdir.c (ext2fs_mkdir): Read the parent directory's inode 5454 + earlier, so that if there's an error reading it, we can 5455 + more cleanly back out of the operation. 5456 + 5457 +2000-05-25 <tytso@snap.thunk.org> 5458 + 5459 + * getsize.c (ext2fs_get_device_size): Use open64() instead of 5460 + open() if it exists. Under linux, manually define the 5461 + ioctl for BLKGETSIZE if it isn't already defined and it's 5462 + safe to do so. 5463 + 5464 + * unix_io.c (unix_open): Use open64() instead of open() if it 5465 + exists. 5466 + 5467 + * llseek.c: Simplify header includes of unistd.h. If lseek64 is 5468 + available (and prototypes are defined) use it in 5469 + preference to llseek. 5470 + 5471 + * Makefile: Add hack dependency rule so that parallel makes work 5472 + correctly. 5473 + 5474 +2000-05-18 Theodore Ts'o <tytso@valinux.com> 5475 + 5476 + * ext2fs.h: Add appropriate ifdef's to support C++ compilation. 5477 + 5478 +2000-04-03 Theodore Ts'o <tytso@valinux.com> 5479 + 5480 + * block.c: Readibility tweak in conditionals involving 5481 + ctx->fs->flags. 5482 + 5483 + * ext2fs.h: Use AUTOCONF SIZEOF_* macros if available to determine 5484 + how to define __s64 and __u64. Turn off "compression is 5485 + experimental" warning if the cpp macro 5486 + I_KNOW_THAT_COMPRESSION_IS_EXPERIMENTAL is defined. 5487 + 5488 +2000-02-11 <tytso@snap.thunk.org> 5489 + 5490 + * ext2fs.h: Define EXT2FS_COMPRESSED_BLKADDR and HOLE_BLKADDR. 5491 + Conditionally include Compression as a supported type if 5492 + ENABLE_COMPRESSION (via --enable-compression) is turned on. 5493 + 5494 + * swapfs.c (ext2fs_swap_super): Swap the compression usage bitmap. 5495 + 5496 +2000-02-08 <tytso@snap.thunk.org> 5497 + 5498 + * bitops.h (ext2fs_mark_generic_bitmap, ext2fs_unmark_generic_bitmap, 5499 + ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap, 5500 + ext2fs_mark_inode_bitmap, ext2fs_unmark_inode_bitmap): 5501 + Change to return the previous state of the bit that is 5502 + being marked or unmarked. For speed optimization. 5503 + 5504 +2000-02-02 Theodore Ts'o <tytso@valinux.com> 5505 + 5506 + * getsize.c, ismounted.c: Remove unneeded include of linux/fs.h 5507 + 5508 + * swapfs.c: Remove #ifdef HAVE_EXT2_INODE_VERSION since it's not 5509 + needed any more; we know it will always be i_generation. 5510 + Add support for swapping the high bits of the uid and gid. 5511 + 5512 +1999-11-19 <tytso@valinux.com> 5513 + 5514 + * mkdir.c (ext2fs_mkdir): Only update the parent's inode link 5515 + counts if the link was successful. Patch suggested by 5516 + jeremy@goop.org. 5517 + 5518 + * Makefile.in (distclean): Remove TAGS and Makefile.in.old from 5519 + the source directory. 5520 + 5521 +1999-11-10 <tytso@valinux.com> 5522 + 5523 + * Release of E2fsprogs 1.18 5524 + 5525 +1999-11-08 <tytso@valinux.com> 5526 + 5527 + * Makefile.in (tst_badblocks): Add freefs.o to the object list, 5528 + since ext2fs_badblocks_list_free was moved to freefs.c. 5529 + 5530 + * tst_badblocks.c: Use the newer badblocks API names. Add 5531 + duplicate blocks to the test inputs to test dealing with 5532 + adding blocks which are already in the badblocks list. 5533 + 5534 + * badblocks.c (ext2fs_badblocks_list_add): If appending to the end 5535 + of the list, use a shortcut O(1) operations instead of an 5536 + O(n) operation. (Idea suggested by David Beattie.) 5537 + 5538 + * freefs.c (ext2fs_free): Use ext2fs_badblocks_list_free() instead 5539 + of badblocks_list_free(), to save a procedure call. 5540 + 5541 +1999-10-26 <tytso@valinux.com> 5542 + 5543 + * Release of E2fsprogs 1.17 5544 + 5545 +1999-10-26 <tytso@valinux.com> 5546 + 5547 + * ext2fs.h: Add kludge to deal with the fact that egcs cpp doesn't 5548 + seem to handle ~0UL the same way as they used to. 5549 + 5550 +1999-10-25 <tytso@valinux.com> 5551 + 5552 + * nt_io.c (_OpenNtName): Open the device using 5553 + FILE_SYNCHRONOUS_IO_NONALERT instead of 5554 + FILE_SYNCHRONOUS_IO_ALERT 5555 + (nt_open): At the end of the device open routine, unlock 5556 + the drive but do not dismount it. 5557 + 5558 + * initialize.c (CREATOR_OS): Use __GNU__ instead of __gnu__ to 5559 + detect the Hurd OS. 5560 + 5561 +1999-10-22 <tytso@valinux.com> 5562 + 5563 + * Release of E2fsprogs 1.16 5564 + 5565 +1999-10-22 <tytso@valinux.com> 5566 + 5567 + * mkdir.c (ext2fs_mkdir): Pass EXT2_FT_DIR flag to ext2fs_link(). 5568 + 5569 + * link.c (ext2fs_link): This call now uses the low three bits of 5570 + the flags parameter to pass the directory filetype 5571 + information; it will set the directory entry FILETYPE 5572 + information if the filesystem supports it. 5573 + 5574 + * newdir.c (ext2fs_new_dir_block): If the FILETYPE superblock 5575 + option is set, then create the '.' and '..' entries with 5576 + the filetype set to EXT2_FT_DIR. 5577 + 5578 +1999-09-24 <tytso@valinux.com> 5579 + 5580 + * nt_io.c: New file which supports I/O under Windows NT. 5581 + 5582 +1999-09-07 <tytso@valinux.com> 5583 + 5584 + * ext2fs.h: Add new fields for journalling and define new 5585 + feature bits used by newer filesystems: IMAGIC_INODES, 5586 + HAS_JOURNAL, RECOVER. 5587 + 5588 + * expanddir.c (ext2fs_expand_dir, expand_dir_proc): Change where 5589 + we update the inode block count and size files so that the 5590 + block count field is updated correctly when we create an 5591 + indirect block. 5592 + 5593 +1999-07-18 Theodore Ts'o <tytso@valinux.com> 5594 + 5595 + * Release of E2fsprogs 1.15 5596 + 5597 +1999-06-23 <tytso@valinux.com> 5598 + 5599 + * swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3 5600 + kernels that use i_generation instead of i_version. Patch 5601 + supplied by Jon Bright <sircus@sircus.demon.co.uk>. 5602 + 5603 +1999-06-21 <tytso@valinux.com> 5604 + 5605 + * dir_iterate.c (ext2fs_process_dir_block): Check for corrupted 5606 + directory entry before calling the callback function. 5607 + This should prevent some core dumps of insufficiently 5608 + paranoid callback functions. 5609 + 5610 +1999-05-29 <tytso@rsts-11.mit.edu> 5611 + 5612 + * ext2fs.h: Add feature definition for AFS IMAGIC inodes. 5613 + 5614 + * fileio.c (ext2fs_file_open): Remove obsolete comment stating 5615 + that we don't handle writing yet (we do). Fixed bug where 5616 + we weren't allocating a big enough buffer for ext2_bmap. 5617 + 5618 +1999-05-03 <tytso@rsts-11.mit.edu> 5619 + 5620 + * openfs.c (ext2fs_open): Check to make sure that the number of 5621 + blocks per group is not zero --- if so, it must be a bad 5622 + superblock! 5623 + 5624 +1999-01-09 Theodore Ts'o <tytso@rsts-11.mit.edu> 5625 + 5626 + * Release of E2fsprogs 1.14 5627 + 5628 +1999-01-07 Theodore Ts'o <tytso@rsts-11.mit.edu> 5629 + 5630 + * inode.c (ext2fs_read_inode, ext2fs_write_inode): Check to see if 5631 + the inode number is zero; if it's zero, return 5632 + EXT2_ET_BAD_INODE_NUM. 5633 + 5634 +1998-12-30 Theodore Ts'o <tytso@rsts-11.mit.edu> 5635 + 5636 + * initialize.c (ext2fs_initialize): Use EXT2_FIRST_INODE instead 5637 + of EXT2_FIRST_INO to ensure compatibility with Linux 1.2 5638 + header files. 5639 + 5640 +Mon Jan 4 02:32:09 1999 Theodore Y. Ts'o <tytso@mit.edu> 5641 + 5642 + * llseek.c (ext2fs_llseek): Change ext2fs_llseek() in the 5643 + non-Linux case to use EINVAL by default, unless it isn't 5644 + defined, in which case we use EXT2_ET_INVALID_ARGUMENT 5645 + instead. 5646 + 5647 +1998-12-15 Theodore Ts'o <tytso@rsts-11.mit.edu> 5648 + 5649 + * Release of E2fsprogs 1.13 5650 + 5651 +1998-12-03 Theodore Ts'o <tytso@rsts-11.mit.edu> 5652 + 5653 + * Makefile.in: Updated dependencies. 5654 + 5655 +1998-09-22 Theodore Ts'o <tytso@rsts-11.mit.edu> 5656 + 5657 + * initialize.c (ext2fs_initialize): Make sure that we allocate 5658 + enough inodes so that we can make a valid filesystem. 5659 + 5660 +1998-09-02 Theodore Ts'o <tytso@rsts-11.mit.edu> 5661 + 5662 + * rw_bitmaps.c: Fixed signed/unsigned warnings. 5663 + 5664 + * fileio.c (ext2fs_file_set_size): Remove unneeded extern from the 5665 + function declaration. 5666 + 5667 + * dblist.c (make_dblist): Add safety check in case the dblist 5668 + pointer passed in is null (in which case, assign it to 5669 + fs->dblist). Fixed some signed/unsigned warnings. 5670 + 5671 + * bmap.c: Make addr_per_block be of type blk_t to avoid 5672 + signed/unsigned warnings. 5673 + 5674 + * namei.c (ext2fs_follow_link): Remove uneeded extern from the 5675 + function declaration. 5676 + 5677 + * get_pathname.c (get_pathname_proc): Use return value from 5678 + ext2fs_get_mem, instead of checking if &gp->name is 5679 + NULL. 5680 + 5681 + * dir_iterate.c (ext2fs_process_dir_block): 5682 + * dblist_dir.c (ext2fs_dblist_dir_iterate): Remove uneeded extern 5683 + from the function declaration. 5684 + 5685 + * block.c (ext2fs_block_iterate2): If the read_inode call fails, 5686 + return the error directly instead of jumping to the 5687 + cleanup routine, since we don't need to do any cleanup. 5688 + 5689 + * alloc_table.c (ext2fs_allocate_group_table): Make this 5690 + function take a dgrp_t for its group argument. 5691 + 5692 + * ext2fs.h: Make dgrp_t an __u32 type, and make 5693 + fs->desc_group_count be of type dgrp_t. 5694 + 5695 +1998-07-27 Theodore Ts'o <tytso@rsts-11.mit.edu> 5696 + 5697 + * badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment 5698 + than 10 blocks when we need to expand the size of the 5699 + badblocks list. 5700 + 5701 +1998-07-09 Theodore Ts'o <tytso@rsts-11.mit.edu> 5702 + 5703 + * Release of E2fsprogs 1.12 5704 + 5705 +1998-06-30 Theodore Ts'o <tytso@rsts-11.mit.edu> 5706 + 5707 + * closefs.c (ext2fs_flush): Update the s_block_group_nr field as 5708 + appropriate for all of the block group copies, so that 5709 + it's clear where the beginning of the filesystem is on the 5710 + disk. (For when the partition table gets scrod.) 5711 + 5712 + * ext2fs.h: Change the name of the feature from 5713 + EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE to 5714 + EXT2_FEATURE_INCOMPAT_FILESIZE (to match with the kernel). 5715 + 5716 +1998-06-18 Theodore Ts'o <tytso@rsts-11.mit.edu> 5717 + 5718 + * inode.c (get_next_blockgroup): Fix bug where if 5719 + get_next_blockgroup() is called early because of a missing 5720 + inode table in a block group, the current_inode counter 5721 + wasn't incremented correctly. 5722 + 5723 +1998-06-16 Theodore Ts'o <tytso@rsts-11.mit.edu> 5724 + 5725 + * read_bb.c (ext2fs_read_bb_inode): Make function more robust 5726 + against a completely trashed bad block inode. 5727 + 5728 +1998-06-10 Theodore Ts'o <tytso@rsts-11.mit.edu> 5729 + 5730 + * alloc_tables.c (ext2fs_allocate_group_table): Fix bug so that if 5731 + the stride length hits a bad value, we retry the block 5732 + allocation starting at the beginning of the block group. 5733 + 5734 + * ext2fs.h, bb_inode.c, block.c, bmove.c, dir_iterate.c, 5735 + expanddir.c, ext2fsP.h, read_bb.c: Change blkcnt_t to be 5736 + e2_blkcnt_t to avoid collision with LFS API. 5737 + 5738 +1998-05-01 Theodore Ts'o <tytso@rsts-11.mit.edu> 5739 + 5740 + * initialize.c (ext2fs_initialize): Initialize s_inodes_count in a 5741 + way that avoids overflows on disk sizes greater than 4GB. 5742 + 5743 +1998-04-28 Theodore Ts'o <tytso@rsts-11.mit.edu> 5744 + 5745 + * ext2fs.h: Define EXT2_QSORT_TYPE appropriately for the 5746 + return type for comparison functions for qsort. 5747 + 5748 + * dblist.c (dir_block_cmp): Use EXT2_QSORT_TYPE in function 5749 + declaration. 5750 + 5751 +1998-04-26 Theodore Ts'o <tytso@rsts-11.mit.edu> 5752 + 5753 + * ext2fs.h, bitops.h: Add support for the Watcom C compiler to do 5754 + inline functions. 5755 + 5756 + * ext2fs.h, dosio.c: Use asm/types.h instead of linux/types.h to 5757 + evade a potential problem with glibc's header files trying 5758 + to spike out linux/types.h. 5759 + 5760 + * ext2fs.h (ext2fs_resize_mem): Change the function prototype to 5761 + include the old size of the memory, which is needed for 5762 + some braindamaged memory allocation systems that don't 5763 + support realloc(). 5764 + 5765 + * badblocks.c (ext2fs_badblocks_list_add): 5766 + bb_inode.c (clear_bad_block_proc): 5767 + dblist.c (ext2fs_add_dir_block): 5768 + icount.c (insert_icount_el): 5769 + irel_ma.c (ima_put): 5770 + rs_bitmap.c (ext2fs_resize_generic_bitmap): Update functions to 5771 + pass the old size of the memory to be resized to 5772 + ext2fs_resize_mem(). 5773 + 5774 +1998-03-30 Theodore Ts'o <tytso@rsts-11.mit.edu> 5775 + 5776 + * Makefile.in: Change to use new installation directory variables 5777 + convention. Fix uninstall rules to take $(DESTDIR) into 5778 + account. 5779 + 5780 +1998-03-29 Theodore Ts'o <tytso@rsts-11.mit.edu> 5781 + 5782 + * ext2fs.h: If __STRICT_ANSI__ is defined and we're on a platform 5783 + with 32 bit longs, then we need to manually define __s64 5784 + and __u64, since the current kernel header files don't 5785 + define these if __STRICT_ANSI__ is defined. This is a 5786 + problem if we are compiling with full GCC warnings, since 5787 + we do need 64 bit support. 5788 + 5789 + * Makefile.in (OBJS): Remove bmove.o from files to be built, 5790 + since we're not using ext2fs_move_blocks() and there 5791 + is some question as to its usefulness in its current 5792 + form. 5793 + 5794 + * bmap.c (block_bmap): Remove unused function. 5795 + 5796 + * bmove.c (process_block): Fix -Wall warning. 5797 + 5798 +1998-03-23 Theodore Ts'o <tytso@rsts-11.mit.edu> 5799 + 5800 + * block.c (ext2fs_block_iterate3): Make the ref_offset field 5801 + contain the offset into the inode.i_blocks array when 5802 + ref_block is zero. Since we haven't done a formal 5803 + release of e2fsprogs since block_iterate2 was first 5804 + introduced, I removed block_iterate2, and renamed 5805 + block_iterate3 to be block_iterate2. 5806 + 5807 + * bb_inode.c, bmove.c, dblist_dir.c, dir_iterate.c, 5808 + expanddir.c, ext2fs.h, ext2fsP.h, read_bb.c: Change 5809 + use of block_iterate and block_iterate2 to 5810 + block_iterate2 with the new prototype for the 5811 + interator function. (using blkcnt_t forr blockcount) 5812 + 5813 +1998-03-21 Theodore Ts'o <tytso@rsts-11.mit.edu> 5814 + 5815 + * ext2fs.h: Add new superblock fields (s_algorithm_usage_bitmap, 5816 + s_prealloc_blocks, s_prealloc_dir_blocks). Added 5817 + conditional defines of new features COMPAT_DIR_PREALLOC, 5818 + RO_COMPAT_LARGE_FILE RO_COMPAT_BTREE_DIR, 5819 + INCOMPAT_COMPRESSION, INCOMPAT_DIRNAME_SIZE. Changed 5820 + the library to declare that we support COMPAT_DIR_PREALLOC, 5821 + INCOMPAT_DIRNAME_SIZE, RO_COMPAT_LARGE_FILE. 5822 + 5823 + * fileio.c: Rename function ext2fs_file_llseek to be 5824 + ext2fs_file_lseek, which is more accurate. 5825 + 5826 + * block.c: Add new function ext2fs_block_iterate3 which calls 5827 + the iterator function with the blockcount argument of 5828 + type blkcnt_t. This version of the function is 5829 + allowed to handle large files; the other fucntions are 5830 + not. 5831 + 5832 + * ext2fs.h: Add new type blkcnt_t 5833 + 5834 + * ext2_err.et.in: Add error code EXT2_ET_FILE_TOO_BIG 5835 + 5836 + * block.c (ext2fs_block_iterate2): Fix bug where the block count 5837 + field wasn't getting correctly incremented for sparse 5838 + files when the indirect or doubly-indirect block 5839 + specified in the inode was zero. 5840 + 5841 +Sun Mar 8 22:42:47 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> 5842 + 5843 + * unlink.c (unlink_proc): 5844 + * lookup.c (lookup_proc): 5845 + * link.c (link_proc): 5846 + * get_pathname.c (get_pathname_proc): 5847 + * dir_iterate.c (ext2fs_process_dir_block): Mask off high 8 bits 5848 + from dirent->name_len, so it can be used for other 5849 + purposes. 5850 + 5851 + * ext2fs.h: Add definition of EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE, 5852 + and indicate that we have support for this incompatible 5853 + option. 5854 + 5855 +Mon Feb 23 08:46:33 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> 5856 + 5857 + * ext2_err.et.in: Added new error code, EXT2_ET_CANCEL_REQUESTED. 5858 + 5859 +Fri Feb 20 23:58:01 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> 5860 + 5861 + * dblist.c (ext2fs_get_num_dirs): Improve the estimation of the 5862 + number of directories when the block group information is 5863 + unreliable. 5864 + 5865 +1998-02-20 Theodore Y. Ts'o <tytso@edt.mit.edu> 5866 + 5867 + * inode.c (ext2fs_get_next_inode): Always do the check to see if the 5868 + inode table is missing so that we catch the case where the 5869 + first block group is missing. 5870 + 5871 + * getsize.c, ismounted.c, unix_io.c: #include errno.h since it's 5872 + needed. 5873 + 5874 +Mon Feb 16 16:16:00 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> 5875 + 5876 + * ext2_io.h, ext2fs.h: Protect against being included multiple times. 5877 + 5878 + * bmove.c: #include ext2fsP.h instead of "ext2fs/ext2fs.h" 5879 + 5880 + * test_io.c (test_flush): Add a debugging printf when the flush 5881 + method is called. 5882 + 5883 + * rw_bitmaps.c (ext2fs_read_bitmaps): If the bitmaps are already 5884 + read in, return right away. 5885 + 5886 +Sun Feb 1 08:20:24 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> 5887 + 5888 + * bitops.h: Don't try to do i386 inline asm functions if the 5889 + compiler isn't GCC. 5890 + 5891 + * ext2fs.h: If EXT2_FLAT_INCLUDES is defined, #include e2_types.h, 5892 + instead of linux/types.h, and e2_bitops.h instead of 5893 + ext2fs/bitops.h. 5894 + 5895 + * icount.c, version.c: Don't #include <et/com_err.h>, as it isn't 5896 + necessary. 5897 + 5898 +Sat Jan 17 13:13:31 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> 5899 + 5900 + * inode.c (ext2fs_open_inode_scan): Initialize the group variables 5901 + so that we don't need to call get_next_blockgroup() the 5902 + first time around. Saves a bit of time, and prevents us 5903 + from needing to assign -1 to current_group (which is an 5904 + unsigned value). 5905 + 5906 + * icount.c (insert_icount_el): Cast the estimated number of inodes 5907 + from a float to an ino_t. 5908 + 5909 + * alloc.c, alloc_tables.c, badlbocks.c, bb_compat.c, bb_inode.c, 5910 + bitmaps.c, bitops.c, block.c, bmap.c, bmove.c, brel_ma.c, 5911 + check_desc.c, closefs.c, cmp_bitmaps.c, dblist.c, 5912 + dblist_dir.c, dir_iterate.c, dirblock.c, dupfs.c, 5913 + expanddir.c, ext2fs.h, fileio.c, freefs.c, 5914 + get_pathname.c, getsize.c, icount.c, initialize.c, 5915 + inline.c, inode.c, irel_ma.c, ismounted.c, link.c, 5916 + lookup.c, mkdir.c, namei.c, native.c, newdir.c, 5917 + openfs.c, read_bb.c, read_bb_file.c, rs_bitmap.c, 5918 + rw_bitmaps.c, swapfs.c, test_io.c, tst_badblocks.c, 5919 + tst_getsize.c, tst_iscan.c, unix_io.c, unlink.c, 5920 + valid_blk.c, version.c: If EXT2_FLAT_INCLUDES is 5921 + defined, then assume all of the 5922 + ext2-specific header files are in a flat directory. 5923 + 5924 + * block.c, bmove.c, dirblock.c, fileio.c: Explicitly cast 5925 + all assignments from void * to be compatible with C++. 5926 + 5927 +Tue Jan 6 11:28:15 1998 Theodore Ts'o <tytso@rsts-11.mit.edu> 5928 + 5929 + * closefs.c (ext2fs_flush): Add a call to io_channel_flush() to 5930 + make sure the contents of the disk are flushed to disk. 5931 + 5932 +Mon Dec 29 14:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 5933 + 5934 + * dblist.c (ext2fs_add_dir_block): Change new to be new_entry to 5935 + avoid C++ namespace clash. 5936 + 5937 + * bitmaps.c (ext2fs_copy_bitmap): Change new to be new_map to 5938 + avoid C++ namespace clash. 5939 + 5940 + * ext2fs.h, bb_inode.c, block.c, bmove.c, brel.h, brel_ma.c, 5941 + irel.h, irel_ma.c, dblist.c, dblist_dir.c, dir_iterate.c, 5942 + ext2fsP.h, expanddir.c, get_pathname.c, inode.c, link.c, 5943 + unlink.c: Change private to be priv_data (to avoid C++ 5944 + namespace clash) 5945 + 5946 +Fri Nov 28 09:26:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 5947 + 5948 + * dblist.c (ext2fs_get_num_dirs): Make ext2fs_get_num_dirs more 5949 + paranoid about validating the directory counts from the 5950 + block group information. 5951 + 5952 + * all files: Don't include stdlib.h anymore; include it in 5953 + ext2_fs.h, since that file requires stdlib.h 5954 + 5955 +Thu Nov 20 16:07:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 5956 + 5957 + * expanddir.c (ext2fs_expand_dir): Check to make sure the block 5958 + bitmap is loaded, and return an error if it is not. 5959 + (expand_dir_proc): Only use ext2fs_write_dir_block when 5960 + writing a directory block, not when writing out a fresh 5961 + indirect block. 5962 + 5963 +Tue Nov 11 22:46:45 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 5964 + 5965 + * Makefile.in, tst_getsize.c: Added new file which is used to test 5966 + the ext2fs_get_device_size function. 5967 + 5968 + * ext2_err.et.in (EXT2_ET_UNIMPLEMENTED): Added new error code. 5969 + 5970 +Sun Nov 2 20:36:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 5971 + 5972 + * ext2fs.h: Make ext2fs_get_mem take an unsigned argument. 5973 + 5974 + * fileio.c (ext2fs_file_get_size, ext2fs_file_set_size, 5975 + ext2fs_file_get_fs): New functions added. 5976 + 5977 + 5978 +Fri Oct 31 12:16:52 1997 <tytso@EDT.MIT.EDU> 5979 + 5980 + * bitops.c (ext2fs_warn_bitmap, ext2fs_warn_bitmap2): Don't call 5981 + com_err if OMIT_COM_ERR is defined. 5982 + 5983 +Thu Oct 30 11:33:57 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 5984 + 5985 + * Rename new error codes to _ET_ in them for consistency. 5986 + 5987 +Sat Oct 25 00:06:58 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 5988 + 5989 + * [all files, basically]: Added definition of ext2fs_get_mem, 5990 + ext2fs_free_mem, and ext2fs_resize_mem in ext2fs.h, and 5991 + changed all library routines to use these wrapper functions. 5992 + 5993 + * dblist.c, mkdir.c: use EXT2_DIR_EXISTS and EXT2_DB_NOT_FOUND 5994 + instead of the system error messages. 5995 + 5996 + * ext2_err.et.in: Added new error messages EXT2_DIR_EXISTS and 5997 + EXT2_DB_NOT_FOUND 5998 + 5999 + * ext2fs.h: Added function declarations and constants for bmap.c 6000 + and fileio.c. 6001 + 6002 + * ext2_err.et.in: Added new error messages EXT2_FILE_RO and 6003 + EXT2_ET_MAGIC_EXT2_FILE 6004 + 6005 + * Makefile.in: Added files bmap.c and fileio.c, and temporarily 6006 + commented out brel_ma.c and irel_ma.c 6007 + 6008 + * bmap.c: New file which maps a file's logical block number to its 6009 + physical block number. 6010 + 6011 + * fileio.c: New file which implements simple file reading and 6012 + writing primitives. 6013 + 6014 + * alloc.c (ext2fs_alloc_block): New function which allocates a 6015 + block, zeros it, and updates the filesystem accounting 6016 + records appropriately. 6017 + 6018 +Wed Oct 22 16:47:27 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6019 + 6020 + * ext2_err.et.in: Added new error codes: EXT2_NO_MEMORY, 6021 + EXT2_INVALID_ARGUMENT, EXT2_BLOCK_ALLOC_FAIL, 6022 + EXT2_INODE_ALLOC_FAIL, EXT2_NOT_DIRECTORY 6023 + 6024 + * Change various library files to use these functions instead of 6025 + EINVAL, ENOENT, etc. 6026 + 6027 +Mon Oct 20 19:32:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6028 + 6029 + * llseek.c: Check HAVE_LLSEEK_PROTOTYPE to see whether or not we 6030 + need to declare llseek(). 6031 + 6032 +Sun Oct 19 18:56:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6033 + 6034 + * Rename io.h to be ext2_io.h (avoid namespace collisions) 6035 + 6036 + * Add #ifdef's for HAVE_SYS_STAT_H and HAVE_SYS_TYPES_H 6037 + 6038 +Fri Oct 3 13:35:59 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6039 + 6040 + * llseek.c (ext2fs_llseek): Fix type error for ext2fs_llseek() 6041 + 6042 + * icount.c (ext2fs_icount_validate): 6043 + * bmove.c (process_block): Fix lint error in type for fprintf(). 6044 + 6045 +Mon Sep 15 11:45:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6046 + 6047 + * inode.c (ext2fs_check_directory): Add support for the callback 6048 + to return the error code EXT2_ET_CALLBACK_NOTHANDLED. 6049 + 6050 +Thu Sep 4 12:28:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6051 + 6052 + * bitmaps.c (ext2fs_set_bitmap_padding): New function which sets the 6053 + padding of the bitmap to be all one's. 6054 + 6055 +Wed Sep 3 14:27:30 1997 Theodore Y. Ts'o <tytso@edt.mit.edu> 6056 + 6057 + * llseek.c: Added missing semicolon to glibc fixup declaration of 6058 + llseek(). 6059 + 6060 + * bmove.c: Add #include of errno.h 6061 + 6062 +Sat Aug 23 22:47:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6063 + 6064 + * Makefile.in (ELF_SO_VERSION): Bump version to be 2.4 since we've 6065 + added a new field to the io_channel (app_data). 6066 + 6067 + * io.h: Add a new element to the io_channel structure, app_data. 6068 + 6069 + * initialize.c, openfs.c: Set io->app_data to point at the 6070 + filesystem handle. 6071 + 6072 +Thu Aug 14 08:14:17 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6073 + 6074 + * io.h: Change the prototype of ext2fs_llseek() to use int's 6075 + instead of unsigned int's. 6076 + 6077 + * llseek.c: Change to allow PIC and !HAVE_LLSEEK. Add a prototype 6078 + to make life easer for GNU Libc 2. 6079 + 6080 + * rw_bitmaps.c: On the PowerPC, the big-endian variant of the ext2 6081 + filesystem has its bitmaps stored as 32-bit words with bit 6082 + 0 as the LSB of each word. Thus a bitmap with only bit 0 6083 + set would be, as a string of bytes, 00 00 00 01 00 ... To 6084 + cope with this, we byte-reverse each word of a bitmap if 6085 + we have a big-endian filesystem, that is, if we are *not* 6086 + byte-swapping other word-sized numbers. 6087 + 6088 +Mon Aug 11 03:30:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6089 + 6090 + * dosio.c: New file to do DOS/BIOS disk accesses. 6091 + 6092 + * namei.c (open_namei): Make pathlen be of type size_t. 6093 + 6094 + * llseek.c: Always #include stdlib.h since it's need to define 6095 + size_t. 6096 + 6097 + * io.h: Use errcode_t for magic numbers. 6098 + 6099 + * icount.c (get_icount_el): Use size_t where appropriate 6100 + 6101 + * dupfs.c (ext2fs_dup_handle): 6102 + * dblist.c (dir_block_cmp): Use size_t where appropriate. 6103 + 6104 + * read_bb.c (ext2fs_read_bb_inode): 6105 + * cmp_bitmaps.c (ext2fs_compare_inode_bitmap): Use blk_t, ino_t 6106 + and size_t where appropriate. 6107 + 6108 + * closefs.c (ext2fs_flush): Use dgrp_t instead of int where 6109 + appropriate. 6110 + 6111 + * openfs.c (ext2fs_open): 6112 + * check_desc.c (ext2fs_check_desc): Use blk_t instead of int where 6113 + appropriate. 6114 + 6115 + * rw_bitmaps.c (read_bitmaps): 6116 + * irel_ma.c: 6117 + * inode.c (ext2fs_write_inode): 6118 + * initialize.c (ext2fs_initialize): 6119 + * brel_ma.c: Fix to make be 16-bit safe. 6120 + 6121 + * link.c (ext2fs_link): 6122 + * unlink.c (ext2fs_unlink): 6123 + * lookup.c (lookup_proc): 6124 + * ismounted.c (ext2fs_check_if_mounted): 6125 + * block.c (xlate_func): Add #pragma argsused for Turbo C. 6126 + 6127 +Sun Aug 10 10:05:22 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6128 + 6129 + * block.c (ext2fs_block_iterate2): Use retval which is a errcode_t 6130 + type. 6131 + 6132 + * bitmaps.c (make_bitmap): Use size_t instead of int where 6133 + appropriate. 6134 + 6135 + * bb_inode.c (set_bad_block_proc): Add #pragma argsused for Turbo C. 6136 + 6137 + * alloc.c (ext2fs_new_inode): Use ino_t instead of int for the 6138 + group number. 6139 + 6140 + * get_pathname.c: Use ino_t instead of int where appropriate. 6141 + 6142 + * ext2fs.h: Make the magic structure element be errcode_t instead 6143 + of int. 6144 + 6145 + * alloc.c alloc_tables.c badblocks.c bb_compat.c bb_inode.c 6146 + bitmaps.c block.c bmove.c brel_ma.c check_desc.c closefs.c 6147 + cmp_bitmaps.c dblist.c dblist_dir.c dir_iterate.c 6148 + dirblock.c dupfs.c expanddir.c freefs.c get_pathname.c 6149 + icount.c initialize.c inline.c inode.c irel_ma.c link.c 6150 + llseek.c lookup.c mkdir.c namei.c newdir.c read_bb.c 6151 + read_bb_file.c rs_bitmap.c rw_bitmaps.c swapfs.c 6152 + test_io.c tst_badblocks.c tst_iscan.c unix_io.c unlink.c 6153 + valid_blk.c version.c: Add an #ifdef for HAVE_UNISTD_H 6154 + 6155 +Tue Jun 17 01:33:20 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6156 + 6157 + * unix_io.c (unix_read_blk): If ext2fs_llseek() fails, but errno 6158 + is zero, then return EXT2_IO_LLSEEK_FAILED. 6159 + 6160 + * ext2_err.et.in: Add a new error code, EXT2_IO_LLSEEK_FAILED. 6161 + 6162 + * Release of E2fsprogs 1.11 6163 + 6164 +Mon Jun 16 23:53:06 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6165 + 6166 + * dblist.c (ext2fs_dblist_count): Added new function which returns 6167 + the number of directory blocks in dblist. 6168 + 6169 +Sat Jun 14 01:39:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6170 + 6171 + * unix_io.c (unix_flush): Make the io_channel flush function do a 6172 + fsync to flush the kernel buffers to disk. 6173 + 6174 +Wed Jun 11 18:25:31 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6175 + 6176 + * inode.c (ext2fs_inode_scan_goto_blockgroup): Fix bug; the 6177 + current inode number wasn't being set by the 6178 + goto_blockgroup function. 6179 + 6180 +Mon Jun 9 10:45:48 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6181 + 6182 + * bmove.c (ext2fs_move_blocks): New function which takes a bitmap 6183 + of blocks which need to be moved, and moves those blocks 6184 + to another location in the filesystem. 6185 + 6186 + * rs_bitmap.c (ext2fs_resize_generic_bitmap): When expanding a 6187 + bitmap, make sure all of the new parts of the bitmap are 6188 + zero. 6189 + 6190 +Sun Jun 8 16:24:39 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6191 + 6192 + * bitmaps.c (ext2fs_copy_bitmap): Fix bug; the destination bitmap 6193 + wasn't being returned to the caller. 6194 + 6195 + * alloc_tables.c (ext2fs_allocate_group_table): Add new function 6196 + ext2fs_allocate_group_table() which sets the group tables 6197 + for a particular block group. The relevant code was 6198 + factored out of ext2fs_allocate_tables(). 6199 + 6200 + * dblist.c (make_dblist): Adjust the initial size of the directory 6201 + block list to be a bit more realistic (ten plus twice the 6202 + number of directories in the filesystem). 6203 + 6204 +Thu May 8 22:19:09 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6205 + 6206 + * badblocks.c (ext2fs_badblocks_list_test): Fix bug where 6207 + ext2fs_badblocks_list_test would test the list (and exceed 6208 + array boundaries) if there were no bad blocks on the bad 6209 + blocks list. (Showed up when user tried: mke2fs -c -b 4096). 6210 + 6211 +Thu Apr 24 12:16:42 1997 Theodre Ts'o <tytso@localhost.mit.edu> 6212 + 6213 + * Release of E2fsprogs version 1.10 6214 + 6215 +Thu Apr 24 10:13:42 1997 Theodre Ts'o <tytso@localhost.mit.edu> 6216 + 6217 + * alloc_tables.c (ext2fs_allocate_tables): Correctly place the 6218 + inode and block bitmaps based on the RAID 0 stride 6219 + parameter (which is passed by mke2fs). 6220 + 6221 + * ext2fs.h: Add "stride" parameter to ext2_filsys, to be used by 6222 + mke2fs to communicate the stride length to 6223 + ext2fs_allocate_tables() 6224 + 6225 +Wed Apr 23 21:50:42 1997 Theodre Ts'o <tytso@localhost.mit.edu> 6226 + 6227 + * initialize.c (ext2fs_initialize): Fix to compile under Linux 1.2 6228 + systems. (We can't assume that the new filesystem types 6229 + are supported.) 6230 + 6231 +Wed Apr 23 18:40:53 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6232 + 6233 + * alloc_tables.c (ext2fs_allocate_tables): Make sure that we 6234 + allocate the inode and block bitmaps inside block group at 6235 + all times. 6236 + 6237 +Mon Apr 21 00:06:28 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6238 + 6239 + * alloc.c (ext2fs_new_block): Fix bug where if goal==0 and the 6240 + filesystem has no free blocks, ext2fs_new_block would loop 6241 + forever. 6242 + 6243 + * dupfs.c (ext2fs_dup_handle): Duplicate an ext2 filesystem handle 6244 + 6245 + * freefs.c (ext2fs_free_inode_cache): Decrement refcount and only 6246 + free if refcount goes to zero. 6247 + 6248 + * inode.c (create_icache): Initialize refcount to 1. 6249 + 6250 + * ext2fsP.h: Added refcount to ext2_inode_cache 6251 + 6252 + * dblist.c (ext2fs_copy_dblist): New function to copy a directory 6253 + block list. 6254 + 6255 + * badblocks.c (ext2fs_badblocks_copy): New function to copy a 6256 + badblocks structure. 6257 + 6258 +Sun Apr 20 23:19:51 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6259 + 6260 + * bitmaps.c (ext2fs_copy_bitmap): New function to copy a bitmap. 6261 + 6262 + * unix_io.c, test_io.c (unix_open, test_open): Initialize the 6263 + refcount to 1. 6264 + (unix_close, test_close): Decrement the refcount and only 6265 + close the io_channel if the refcount goes to 0. 6266 + 6267 + * io.h: Add refcount to the io_channel structure. Add new macro 6268 + interface io_channel_bumpcount() to bump the refcount. 6269 + 6270 +Thu Apr 17 20:25:03 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6271 + 6272 + * inode.c (ext2fs_read_inode, ext2fs_write_inode): Use the inode 6273 + cache in the filesystem handle, instead of the inode cache 6274 + in a static variable. 6275 + 6276 + * freefs.c: Added static function to free the inode cache (called by 6277 + ext2fs_free). 6278 + 6279 + * ext2fsP.h: Added definition of the ext2_inode_cache structures. 6280 + 6281 + * ext2fs.h: Added pointer to the inode_cache structure. 6282 + 6283 + * block.c (block_iterate_ind, block_iterate_dind, 6284 + block_iterate_tind): If there are holes in the indirect, 6285 + doubly indirect, or triply indirect blocks, increment the 6286 + block count field automatically. 6287 + 6288 +Thu Apr 17 12:23:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6289 + 6290 + * Release of E2fsprogs version 1.09 6291 + 6292 +Mon Apr 14 20:38:56 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6293 + 6294 + * version.c (ext2fs_parse_version_string): Check the passed in 6295 + version string (instead of the hard-coded one). 6296 + 6297 + * alloc_tables.c (ext2fs_allocate_tables): If the last block is 6298 + greater filesystem size, clamp it to prevent allocating a 6299 + block or inode bitmap beyond the filesystem. 6300 + 6301 + * initialize.c (ext2fs_initialize): Fix bug where the metatdata 6302 + overhead calculation was accidentally removed. 6303 + 6304 +Fri Apr 11 18:56:26 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6305 + 6306 + * Release of E2fsprogs version 1.08 6307 + 6308 +Thu Apr 10 13:15:15 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6309 + 6310 + * dblist.c (ext2fs_set_dir_block): New function which sets the 6311 + block of a dblist entry, given the directory inode and 6312 + blockcnt. 6313 + 6314 +Sat Apr 5 12:42:42 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6315 + 6316 + * alloc_tables.c (ext2fs_allocate_tables): Allocate the bitmap and 6317 + inode bitmaps at staggered locations across the block 6318 + groups, to avoid concentrating the bitmaps on a small 6319 + number of disks when using striped RAID arrays. 6320 + 6321 + * initialize.c (ext2fs_initialize): By default, choose the maximum 6322 + possible number of blocks per group (based on the size of 6323 + the bitmaps in the blocksize). 6324 + 6325 +Fri Apr 4 11:28:16 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6326 + 6327 + * initialize.c (ext2fs_initialize): Add support for 6328 + EXT2_COMPAT_SPARSE_SUPER feature. 6329 + 6330 + * closefs.c (ext2fs_bg_has_super): New function to determine 6331 + whether or a particular block group should have a 6332 + superblock and block group descriptor. Used for the 6333 + EXT2_COMPAT_SPARSE_SUPER feature is turned on. 6334 + (ext2fs_flush): Check ext2fs_bg_has_super to see whether 6335 + or not the superblock should be written out for the block 6336 + group. 6337 + 6338 + * ext2fs.h (EXT2_COMPAT_SPARSE_SUPER): Define compatibility flag 6339 + for sparse duplicate superblocks. 6340 + 6341 + * version.c (ext2fs_get_library_version): New function which 6342 + returns the library version. 6343 + 6344 + * version.c (ext2fs_parse_version_string): New function which 6345 + parses a version string and returns a version number, 6346 + so application programs can compare version numbers as 6347 + integers. 6348 + 6349 +Wed Mar 26 00:43:52 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6350 + 6351 + * icount.c (ext2fs_create_icount): Change function so that it also 6352 + takes a new argument which contains a "hint" icount 6353 + structure. This "hint" icount allows the create function 6354 + to set up the sorted list in advance. This reduces 6355 + significantly the amount of data moving needed to insert 6356 + these inodes into the list later. 6357 + 6358 + * icount.c (ext2fs_icount_validate): New function which validates 6359 + that the icount structure's rep invariant. 6360 + 6361 + * icount.c (get_icount_el): Completely revamped implementation 6362 + to subsume put_icount_el(). Put_icount_el() used to 6363 + use an O(N) implementation to insert in the middle 6364 + of the icount list. It now uses a O(ln N) to search 6365 + for where the icount should be inserted, and then uses 6366 + a memcpy to move the list down (instead of a for loop). 6367 + 6368 + * icount.c (ext2fs_icount_fetch, ext2fs_icount_store, 6369 + ext2fs_icount_increment, ext2fs_icount_decrement): Check 6370 + to see if the inode is within bounds; if it isn't, return 6371 + EINVAL. 6372 + 6373 + * bitops.h (ext2fs_test_generic_bitmap): Fix error message given 6374 + when a bad inode number is passed to test_generic_bitmap 6375 + to be EXT2FS_TEST_ERROR instead of the wrong 6376 + EXT2FS_UNMARK_ERROR. 6377 + 6378 +Wed Mar 12 13:32:05 1997 Theodore Y. Ts'o <tytso@mit.edu> 6379 + 6380 + * Release of E2fsprogs version 1.07 6381 + 6382 +Sun Mar 2 16:46:18 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6383 + 6384 + * Makefile.in (ELF_VERSION): Change version to be 2.2 6385 + 6386 +Tue Feb 11 14:54:02 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6387 + 6388 + * alloc.c (ext2fs_get_free_blocks): Change routine to use 6389 + ext2fs_fast_test_block_bitmap_range(). 6390 + 6391 + * bitops.h (ext2fs_fast_test_block_bitmap_range, 6392 + ext2fs_test_block_bitmap_range: New inline functions which 6393 + test to see whether a contiguous range of blocks is 6394 + available. 6395 + 6396 +Thu Feb 6 10:00:13 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6397 + 6398 + * badblocks.c (ext2fs_badblocks_list_create): Rename sybmols to use 6399 + use ext2fs_badblocks_* instead of badblocks_* 6400 + 6401 + * bb_compat.c: New file which translates between old badblocks_*() 6402 + names to ext2fs_badblocks_*() 6403 + 6404 + * unlink.c (ext2fs_unlink): New file, moved ext2fs_unlink() from 6405 + link.c (since e2fsck doesn't use ext2fs_unlink()). 6406 + 6407 + * rs_bitmap.c (ext2fs_resize_generic_bitmap): New file, contains 6408 + bitmap resizing routine moved from bitmaps.c, since e2fsck 6409 + doesn't need to use this function. 6410 + 6411 + * lookup.c (ext2fs_lookup): Moved ext2fs_lookup to its own file, 6412 + since e2fsck only needs ext2fs_lookup. 6413 + 6414 +Mon Feb 3 10:11:40 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6415 + 6416 + * inode.c (ext2fs_open_inode_scan): Set fs->badblocks if it is not 6417 + already set; this is needed so that programs like dump 6418 + which use the inode scan functions will deal with 6419 + filesystems that have bad blocks in the inode table. 6420 + 6421 +Sun Feb 2 00:17:36 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6422 + 6423 + * ext2fs.h (struct_badblocks_list, struct_badblocks_iterate): 6424 + Moved to ext2fsP.h, since it doesn't need to be part of 6425 + the public interface. 6426 + 6427 + * dir_iterate.c: Move ext2_dir_iterate out of namei.c. 6428 + 6429 +Sat Feb 1 10:14:55 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6430 + 6431 + * dblist.c (ext2fs_get_num_dirs): New file, which implements a 6432 + directory block list abstraction. (Code moved from 6433 + e2fsck). 6434 + 6435 + * ext2fs.h, inode.c: Moved definition of ext2_struct_inode_scan to 6436 + to inode.c (since no one else should be peeking inside it!) 6437 + 6438 + * valid_blk.c (ext2_inode_has_valid_blocks): New function. 6439 + 6440 + * openfs.c (ext2fs_open): Check the feature set in the ext2 6441 + superblock, and refuse to open filesystems if they contain 6442 + incompatible features. (Can be overriden with the 6443 + EXT2_FLAG_FORCE 6444 + 6445 +Sun Jan 12 11:31:46 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6446 + 6447 + * block.c (ext2fs_block_iterate2): Added new function 6448 + ext2fs_block_iterate2 which changes the function 6449 + signature of the callback function to include the 6450 + referencing block and offset. 6451 + 6452 + * inode.c (ext2fs_inode_scan_goto_blockgroup): Added new function 6453 + ext2fs_inode_scan_goto_blockgroup which allows an 6454 + application to jump to a particular block group while 6455 + doing an inode scan. 6456 + 6457 +Wed Jan 1 23:50:12 1997 Theodore Ts'o <tytso@rsts-11.mit.edu> 6458 + 6459 + * dirblock.c: Include string.h, since we use memcpy(). 6460 + 6461 +Tue Dec 3 12:27:29 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6462 + 6463 + * getsize.c (ext2fs_get_device_size): The ioctl BLKGETSIZE returns 6464 + a long not an int; this doesn't matter on i386 machines, 6465 + but it does on Alpha's. 6466 + 6467 +Fri Nov 29 20:57:37 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6468 + 6469 + * inode.c (ext2fs_write_inode, ext2fs_read_inode): If the inode 6470 + table pointer is NULL, then return an error indicating 6471 + that the inode table is missing. 6472 + (get_next_blockgroup, get_next_blocks, 6473 + ext2fs_get_next_inode): Don't treat a missing inode table 6474 + as permanent error. Return MISSING_INODE_TABLE, but as an 6475 + advisory error code, much like BAD_BLOCK_IN_INODE_TABLE. 6476 + 6477 + * rw_bitmaps.c (ext2fs_write_block_bitmap, 6478 + ext2fs_write_inode_bitmap): If the inode or block bitmap 6479 + block is zero, then don't write out the inode or block 6480 + bitmap. The idea here is to avoid stomping on the 6481 + superblock. 6482 + (read_bitmaps): If the inode or block bitmap block is 6483 + zero, then fill in that portion of the inode or block 6484 + bitmap with all zeros. 6485 + 6486 + * inode.c (ext2fs_get_next_inode): Fix bug in handling of bad 6487 + blocks in inode table when the inode table size is 6488 + non-standard (and can therefore span blocks). 6489 + 6490 +Tue Oct 29 20:13:14 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6491 + 6492 + * alloc.c (ext2fs_new_block): Fix fencepost error in 6493 + ext2fs_new_block; make sure we don't try to allocate the 6494 + first block beyond the end of the filesystem. 6495 + 6496 +Mon Oct 14 11:00:48 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6497 + 6498 + * inode.c (check_for_inode_bad_blocks): New function called by 6499 + get_next_blocks() to avoid reading in bad blocks marked in 6500 + fs->badblocks. Inodes located in bad blocks are returned 6501 + by ext2fs_get_next_inode() returns the error code 6502 + EXT2_ET_BAD_BLOCK_IN_INODE_TABLE. 6503 + 6504 + * alloc_tables.c (ext2fs_allocate_tables): New function which 6505 + performs the part of mke2fs's job of allocating the 6506 + filesystem tables. 6507 + 6508 + * test_io.c (test_close): IO manager which is used for testing 6509 + purposes. 6510 + 6511 +Sun Oct 13 04:31:57 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6512 + 6513 + * inode.c (ext2fs_get_next_inode): Separate out the function of 6514 + setting up for a new block group to get_next_blockgroup(). 6515 + Separate out the function of reading in blocks of the 6516 + inode table to get_next_blocks(). 6517 + 6518 + * ext2fs.h: Add the badblocks list to the ext2_filsys entry 6519 + 6520 + * badblocks.c (badblocks_list_add, badblocks_list_test): Add 6521 + blocks to the badblock list in sorted order. This allows 6522 + badblocks_list_test to be coded using a binary search for 6523 + speed. 6524 + 6525 +Tue Oct 8 02:02:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6526 + 6527 + * Release of E2fsprogs version 1.06 6528 + 6529 +Mon Oct 7 00:44:17 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6530 + 6531 + * ext2fs.h, block.c, closefs.c, dirblock.c, inode.c, native.c, 6532 + open.c: Change EXT2_SWAP to EXT2_FLAG_SWAP for 6533 + consistency's sake. 6534 + 6535 + * closefs.c (ext2fs_flush): If the flag EXT2_MASTER_SB_ONLY is 6536 + set, then only write out the master superblock. 6537 + 6538 +Sun Oct 6 21:45:26 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6539 + 6540 + * block.c (ext2fs_block_iterate): Fixed bug which caused 6541 + block_iterate to fail to handle HURD created filesystems; 6542 + it tested the inode translator field before the inode was 6543 + loaded. 6544 + 6545 +Tue Sep 17 14:08:24 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6546 + 6547 + * initialize.c (ext2fs_initialize): Make sure the description for 6548 + the inode bitmap is set correctly. 6549 + 6550 + * bitmaps.c (ext2fs_allocate_generic_bitmap): Fix minor type typo. 6551 + 6552 +Thu Sep 12 15:23:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6553 + 6554 + * Release of E2fsprogs version 1.05 6555 + 6556 +Sat Sep 7 07:36:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6557 + 6558 + * initialize.c: Override the kernel's idea of default 6559 + checkinterval from 0 (never) to 180 days. 6560 + 6561 +Wed Aug 28 03:20:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6562 + 6563 + * namei.c (ext2fs_namei_follow): New function which follows 6564 + symbolic link (if any) at the target. 6565 + 6566 +Tue Aug 27 01:48:43 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6567 + 6568 + * inode.c (ext2fs_read_inode, ext2fs_write_inode): Add support 6569 + for shortcut function fs->read_inode() and fs->write_inode(). 6570 + Added inode_cache to reduce CPU time spent in doing 6571 + byte swapping. 6572 + 6573 + * swapfs.c (ext2fs_swap_super): Swap the new fields in a V2 6574 + superblock. 6575 + 6576 + * namei.c (ext2fs_follow_link): New function. 6577 + (ext2fs_namei): Extended to have support for chasing 6578 + symbolic links. ext2fs_namei() still returns an inode 6579 + which is a symbolic link. Symbolic links are only chased 6580 + while resolving the containing directory. To chase 6581 + symbolic links of the final result, use 6582 + ext2fs_follow_link(). 6583 + 6584 +Mon Aug 26 23:46:07 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6585 + 6586 + * ext2_err.et.in: Added new error code EXT2_ET_SYMLINK_LOOP. 6587 + 6588 + * bitops.h (ext2fs_set_bit, ext2fs_celar_bit): Use asm inlines 6589 + provided by Pete A. Zaitcev (zaitcev@lab.sun.mcst.ru). 6590 + 6591 +Thu Aug 22 00:40:18 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6592 + 6593 + * initialize.c (ext2fs_initialize): On systems where the byte 6594 + order is not i386 compatible, set the swap_byte flag. 6595 + 6596 + * inode.c (inocpy_with_swap): Check to see if inode contains a 6597 + fast symlink before swapping the inode block fields. This 6598 + required adding a new argument to inocpy_with_swap to 6599 + determine whether the mode field is in host order or not. 6600 + 6601 +Wed Aug 21 00:45:42 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6602 + 6603 + * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): On 6604 + the sparc, if EXT2_STD_BITOPS set, use the standard 6605 + i386-compatible bitmask operations, instead on the 6606 + non-standard native bitmask operators. 6607 + 6608 +Fri Aug 9 11:11:35 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6609 + 6610 + * block.c (ext2fs_block_iterate): Cause block iterator to return 6611 + the HURD translator block (along with everything else). 6612 + If the flag BLOCK_FLAG_DATA_ONLY is passed to the block 6613 + iterator, then don't return any meta data blocks 6614 + (including the HURD translator). 6615 + 6616 +Wed Jul 17 17:13:34 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6617 + 6618 + * gen_uuid.c: New file, which generates DCE-compatible UUIDs. 6619 + 6620 + * uuid.c: New file, containing UUID utility functions. 6621 + 6622 +Tue Jul 16 10:19:16 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6623 + 6624 + * ext2fs.h: Add a definition of the "real" ext2 superblock. 6625 + 6626 +Fri May 24 14:54:55 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6627 + 6628 + * ext2fs.h: Fix erroneous ino_t type used in block_bitmap type. 6629 + 6630 +Sun May 19 15:39:03 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6631 + 6632 + * openfs.c (ext2fs_open): If the blocksize in the superblock is 6633 + zero, return the error EXT2_ET_CORRUPT_SUPERBLOCK, since 6634 + that's a basic value that must be correct for the rest of 6635 + the library to work. 6636 + 6637 + * ext2_err.et.in (EXT2_ET_CORRUPT_SUPERBLOCK): Added new error 6638 + code. 6639 + 6640 +Thu May 16 11:12:30 1996 Theodore Ts'o <tytso@rsts-11.mit.edu> 6641 + 6642 + * Release of E2fsprogs version 1.04 6643 + 6644 +Wed Mar 27 00:33:40 1996 <tytso@rsts-11.mit.edu> 6645 + 6646 + * Release of E2fsprogs version 1.03 6647 + 6648 +Tue Mar 26 12:06:32 1996 <tytso@rsts-11.mit.edu> 6649 + 6650 + * bitops.h (ext2fs_set_bit, ext2fs_clear_bit, ext2fs_test_bit): 6651 + Change the m68k bit numbering for bitmasks to match with 6652 + the bit numbering used by all other ext2 implementations. 6653 + 6654 +Thu Mar 7 03:37:00 1996 <tytso@rsts-11.mit.edu> 6655 + 6656 + * inode.c (ext2fs_get_next_inode, ext2fs_close_inode_scan, 6657 + ext2fs_open_inode_scan): Support dynamically-sized inodes. 6658 + 6659 +Wed Mar 6 12:26:29 1996 <tytso@rsts-11.mit.edu> 6660 + 6661 + * inode.c (ext2fs_read_inode, ext2fs_write_inode): Support 6662 + dynamically-sized inodes. 6663 + 6664 + * openfs.c (ext2fs_open): Allow dynamic revision filesystem to be 6665 + loaded. 6666 + 6667 +Tue Mar 5 03:49:37 1996 <tytso@rsts-11.mit.edu> 6668 + 6669 + * initialize.c (ext2fs_initialize): Catch an error condition where 6670 + the passed in size is *really* too small. 6671 + 6672 + * alloc.c (ext2fs_new_inode): 6673 + * ext2fs.h (EXT2_FIRST_INODE): Add support for dynamic revision to 6674 + get first inode. 6675 + 6676 +Wed Feb 21 15:56:17 1996 <tytso@rsts-11.mit.edu> 6677 + 6678 + * getsize.c (ext2fs_get_device_size): Open the device read-only 6679 + when trying to determine its size. 6680 + 6681 +Wed Jan 31 11:06:08 1996 <tytso@rsts-11.mit.edu> 6682 + 6683 + * Release of E2fsprogs version 1.02 6684 + 6685 +Sat Dec 9 09:57:50 1995 <tytso@rsts-11.mit.edu> 6686 + 6687 + * rw_bitops.c (ext2fs_write_block_bitmap): 6688 + * bitops.c (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit): 6689 + * bitops.h (ext2fs_test_bit, ext2fs_clear_bit, ext2fs_set_bit): 6690 + Rename {test,set,clear}_bit to ext2fs_{test,set,clear}_bit, 6691 + to avoid conflicts with with kernel include files. Also 6692 + rename ADDR and CONST_ADDR to EXT2FS_ADDR and 6693 + EXT2FS_CONST_ADDR. 6694 + 6695 +Thu Oct 26 12:09:16 1995 <tytso@rsts-11.mit.edu> 6696 + 6697 + * ext2_err.et: Updated message in EXT2_ET_BASE to say version 0.5c 6698 + 6699 + * swapfs.c (ext2fs_swap_super): Put an #ifdef check around 6700 + s_def_resuid and s_def_resgid for backwards compatibility. 6701 + 6702 +Fri Oct 20 23:33:31 1995 <tytso@rsts-11.mit.edu> 6703 + 6704 + * bitops.h: Added #ifdef's for Sparc. 6705 + 6706 +Wed Sep 6 22:14:46 1995 <tytso@rsts-11.mit.edu> 6707 + 6708 + * getsize.c: #include <sys/ioctl.h> under Linux to pick up ioctl() 6709 + declaration 6710 + 6711 + * closefs.c: #include <string.h> to pick up memset() declaration 6712 + 6713 +Mon Sep 4 21:45:29 1995 Remy Card <card@bbj> 6714 + 6715 + * Makefile.in: Added support for BSD shared libraries. 6716 + 6717 + * initialize.c (ext2fs_initialize): Correctly set the s_creator_os 6718 + flag. 6719 + 6720 +Mon Sep 4 09:55:30 1995 <tytso@rsts-11.mit.edu> 6721 + 6722 + * unix_io.c (unix_open): Add a double check; if the passed in name 6723 + is NULL, return EXT2_ET_BAD_DEVICE_NAME. 6724 + 6725 + * ext2_err.et (EXT2_ET_BAD_DEVICE_NAME): Added new error code 6726 + 6727 +Wed Aug 16 15:44:10 1995 <tytso@rsts-11.mit.edu> 6728 + 6729 + * inode.c (ext2fs_check_directory): Use LINUX_S_ISDIR instead of 6730 + S_ISDIR. 6731 + 6732 +Tue Aug 15 13:08:36 1995 <tytso@rsts-11.mit.edu> 6733 + 6734 + * getsize.c (ext2fs_get_device_size): Add support for reading the 6735 + partition size from a BSD disk label. 6736 + 6737 +Thu Aug 10 09:33:26 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> 6738 + 6739 + * getsize.c (ext2fs_get_device_size): New function that determins 6740 + the size of a device. Used by mke2fs and e2fsck. 6741 + 6742 +Sat Aug 12 03:09:54 1995 Remy Card <card@bbj> 6743 + 6744 + * Makefile.in (install): Install static libraries in $(ulibdir) 6745 + (/usr/lib on Linux) instead of $(libdir) (/lib on Linux). 6746 + 6747 +Wed Aug 9 17:04:23 1995 Theodore Y. Ts'o <tytso@dcl> 6748 + 6749 + * bitmaps.c (ext2fs_free_inode_bitmap, ext2fs_free_block_bitmap): 6750 + Move these functions to freefs.c. 6751 + 6752 + * closefs.c (ext2fs_flush): If swapping blocks, clear the group 6753 + descriptors shadow memory to keep purify quiet. (This 6754 + also has the nice benefit that the unused portion of the 6755 + shadow descriptors are zeroed out.) 6756 + 6757 + * dirblock.c (ext2fs_write_dir_block): We need to use 6758 + dirent->rec_len *before* it's byteswapped to find the 6759 + location of the next directory structure! 6760 + 6761 + * alloc.c (ext2fs_new_inode): Fix bug which could potentially 6762 + cause ext2fs_new_inode to loop infinitely if we're trying 6763 + to allocate an inode in group #0 and there are no free 6764 + inodes at all in the system. 6765 + 6766 + * closefs.c: #include <errno.h> if it exists. 6767 + 6768 +Sun Aug 6 13:27:50 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> 6769 + 6770 + * ext2fs.h (BLOCK_FLAG_HOLE): Added new definition for 6771 + BLOCK_FLAG_APPEND. Added documentation for the block 6772 + interator flags. 6773 + 6774 +Sat Aug 5 11:44:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> 6775 + 6776 + * Makefile.in (DLL_INSTALL_DIR, ELF_INSTALL_DIR): Set the 6777 + installation directories correctly. 6778 + 6779 +Tue Jul 18 09:27:38 1995 <tytso@rsx-11.mit.edu> 6780 + 6781 + * namei.c (process_dir_block): 6782 + * mkdir.c (ext2fs_mkdir): 6783 + * expanddir.c (expand_dir_proc): Use ext2fs_{read,write}_dir_block 6784 + to read/write the directory block. 6785 + 6786 + * dirblock.c (ext2fs_read_dir_block), ext2fs_write_dir_block): New 6787 + file containing functions for reading and writing 6788 + directory blocks (byte swapping if necesssary) 6789 + 6790 + * block.c (block_iterate_ind, block_iterate_dind, 6791 + block_iterate_tind): Byte swap the block addresses if 6792 + EXT2_SWAP_BYTES is set (and swap them back before writing 6793 + them out.) 6794 + 6795 + * inode.c (inocpy_with_swap): New function. 6796 + (ext2fs_get_next_inode, ext2fs_read_inode, ext2fs_write_inode): 6797 + Call inocpy_with_swap if EXT2_SWAP_BYTES if set. 6798 + 6799 + * closefs.c (ext2fs_flush): If EXT2_SWAP_BYTES is set, then swap 6800 + the superblock and group descriptors before writing it out. 6801 + 6802 + * openfs.c (ext2fs_open): If the magic number is byte-swapped, 6803 + then set the EXT2_SWAP_BYTES and byte-swap the superblock 6804 + and group descriptors. 6805 + 6806 + * swapfs.c (ext2fs_swap_super, ext2fs_swap_group_desc): New functions 6807 + to desp ext2 filesystem structures. 6808 + 6809 + * bitops.c (set_bit, clear_bit, test_bit): Use modifications 6810 + supplied by Pete A. Zaitcev so that the C language 6811 + versions of these functions are more portable. They will 6812 + now work on both little and big endian systems, and the 6813 + assumption that 32-bit integers are used is gone. 6814 + 6815 + * bitops.h (ext2_swab16, ext2_swab32): Added new functions for 6816 + doing byte swapping. 6817 + 6818 + * ext2fs.h (EXT2_SWAP_BYTES): Add new flag which indicates that 6819 + byte swapping should take place. 6820 + 6821 +Sun Jul 16 06:21:43 1995 <tytso@rsx-11.mit.edu> 6822 + 6823 + * Makefile.in, cmp_bitmaps.c (ext2fs_compare_block_bitmap_end, 6824 + ext2fs_compare_inode_bitmap_end): Added new file 6825 + containing routines to compare bitmaps. 6826 + 6827 + * ext2_err.et (EXT2_ET_NEQ_BLOCK_BITMAP, EXT2_ET_NEQ_INODE_BITMAP): 6828 + Added new error codes. 6829 + 6830 +Sat Jul 15 04:23:37 1995 <tytso@rsx-11.mit.edu> 6831 + 6832 + * inode.c (ext2fs_get_next_inode): Don't check scan->inode_buffer; 6833 + if the magic number is correct, it will be allocated. 6834 + 6835 +Fri Jul 14 19:02:59 1995 <tytso@rsx-11.mit.edu> 6836 + 6837 + * block.c (block_iterate_ind, block_iterate_dind, 6838 + block_iterate_tind): Don't recompute block_nr each loop; 6839 + just increment it! Factor check of BLOCK_FLAG_APPEND out 6840 + of the loop. Factor mask of BLOCK_CHANGED into changed 6841 + variable out of the loop. (block_iterate_ind, in 6842 + particular, gets called a lot, so every little 6843 + optimization helps.) 6844 + 6845 +Thu Jul 13 08:02:45 1995 <tytso@rsx-11.mit.edu> 6846 + 6847 + * block.c (block_iterate_ind, block_iterate_dind, 6848 + block_iterate_tind): Precompute limit of loop to speed up 6849 + block_iterate_ind and company. 6850 + 6851 + * bitops.h (ext2fs_fast_mark_block_bitmap, 6852 + ext2fs_fast_unmark_block_bitmap, ext2fs_fast_test_block_bitmap, 6853 + ext2fs_fast_mark_inode_bitmap, ext2fs_fast_unmark_inode_bitmap, 6854 + ext2fs_fast_test_inode_bitmap): Add fast version of these 6855 + functions, which don't do range checking. 6856 + 6857 + * bitops.h (ext2fs_get_block_bitmap_start, 6858 + ext2fs_get_inode_bitmap_start, ext2fs_get_block_bitmap_end, 6859 + ext2fs_get_inode_bitmap_end): Add new accessor functions 6860 + which return the start and end points of the bitmaps. 6861 + 6862 +Tue Jul 11 18:59:41 1995 <tytso@rsx-11.mit.edu> 6863 + 6864 + * llseek.c (ext2_llseek): If the offset is small enough, use lseek 6865 + instead of llseek. The errno if the offset is too large 6866 + and lseek is not supported should be EINVAL, not -EINVAL. 6867 + 6868 +Thu Jun 15 23:43:02 1995 Remy Card <card@bbj> 6869 + 6870 + * Makefile.in: Added support for ELF shared libraries. 6871 + Fixed typos in the compilation rules. 6872 + (distclean): Added Makefile. 6873 + 6874 + * llseek.c (llseek): New function, if llseek() does not exist in the 6875 + C library. 6876 + (ext2_llseek): Changed to call llseek(). 6877 + 6878 +Mon Jun 12 08:29:07 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> 6879 + 6880 + * ext2fs.h: Use __u32 to define blk_t, instead of unsigned long. 6881 + 6882 +Sun Jun 11 15:02:54 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> 6883 + 6884 + * mkdir.c (ext2fs_mkdir): Use LINUX_S_IFDIR instead of S_IFDIR. 6885 + 6886 + * ext2fs.h (LINUX_S_IFDIR): Define a linux specific versions of 6887 + the S_*, which are normally defined in <sys/stat.h>. This 6888 + allows us to compile e2fsprogs on a non-Linux system, 6889 + which may have a different value for S_IFDIR. 6890 + 6891 +Sat Jun 10 23:47:05 1995 Theodore Y. Ts'o <tytso@lurch.mit.edu> 6892 + 6893 + * bitops.c (clear_bit, set_bit): Remove calls to cli() and sti(); 6894 + this is a user-mode application! 6895 + 6896 +Thu Jun 8 13:13:22 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu> 6897 + 6898 + * llseek.c: Put the include of <linux/unistd.h> inside the #ifdef 6899 + __linux__ so that non-linux systems won't see it. 6900 + 6901 + * alloc.c: Include <errno.h> if possible. 6902 + * badblocks.c: Ditto. 6903 + * bb_inode.c: Ditto. 6904 + * bitmaps.c: Ditto. 6905 + * block.c: Ditto. 6906 + * expanddir.c: Ditto. 6907 + * get_pathname.c: Ditto. 6908 + * initialize.c: Ditto. 6909 + * inode.c: Ditto. 6910 + * llseek.c: Ditto. 6911 + * mkdir.c: Ditto. 6912 + * namei.c: Ditto. 6913 + * newdir.c: Ditto. 6914 + * openfs.c: Ditto. 6915 + * rw_bitmaps.c: Ditto. 6916 + * unix_io.c: Ditto. 6917 + 6918 + * Makefile.in: Rewritten to conform to GNU coding standards and 6919 + support separate compilation directories. 6920 + 6921 +Thu May 11 04:13:12 1995 <tytso@rsx-11.mit.edu> 6922 + 6923 + * initialize.c (ext2fs_initialize): Don't allow more than one 6924 + bitmaps's worth of inodes in a group. 6925 + 6926 +Sat Mar 11 14:07:11 1995 Theodore Y. Ts'o <tytso@localhost> 6927 + 6928 + * llseek.c (ext2_llseek): Added error checking to the llseek() 6929 + compat code to protect against overflow. This only 6930 + applies to 1.0 and early 1.1 kernels, which don't support 6931 + the llseek() system call. 6932 + 6933 +Thu Nov 24 16:29:00 1994 Theodore Y. Ts'o (tytso@rt-11) 6934 + 6935 + * unix_io.c (unix_open): Initialize the read_error and write_error 6936 + io_channel pointers to be null. 6937 + 6938 + * bb_inode.c (clear_bad_block_proc): If an illegal block number is 6939 + found, clear it but don't try to update the filesystem 6940 + accounting information, since that's hopeless anyway. 6941 + 6942 + * block.c (bloblock_iterate_ind, bloblock_iterate_dind, 6943 + bloblock_iterate_tind): Check to see if the indirect blocks are 6944 + valid before trying to read them. 6945 + 6946 + * ext2_err.et (EXT2_ET_BAD_IND_BLOCK, EX2_ET_BAD_DIND_BLOCK, 6947 + EXT2_ET_BAD_TIND_BLOCK): Add new error codes. 6948 + 6949 + * bitops.h (ext2fs_mark_block_bitmap, ext2fs_unmark_block_bitmap, 6950 + ext2fs_test_block_bitmap, ext2fs_mark_inode_bitmap, 6951 + ext2fs_unmark_inode_bitmap, ext2fs_test_inode_bitmap): If an 6952 + illegal block or inode number is passed in, return instead 6953 + of trying to test, set, or clear the bit. 6954 + 6955 +Mon Nov 7 21:32:33 1994 Remy Card <card@bbj> 6956 + 6957 + * Makefile: Added a dummy install target in case shared libraries 6958 + are not built. 6959 + 6960 +Mon Oct 24 14:11:44 1994 (tytso@rsx-11) 6961 + 6962 + * bitmaps.c (ext2fs_allocate_block_bitmap): Fix calculation of how 6963 + the real last block of the bitmap should be calculated. 6964 + 6965 +Wed Sep 7 10:05:36 1994 (tytso@rsx-11) 6966 + 6967 + * bitmaps.c (ext2fs_fudge_inode_bitmap_end, 6968 + ext2fs_fudge_block_bitmap_end, ext2fs_clear_inode_bitmap, 6969 + ext2fs_clear_block_bitmap, ext2fs_free_inode_bitmap, 6970 + ext2fs_free_block_bitmap): Add magic number checking for 6971 + the inode and block bitmaps. 6972 + 6973 + * bitmaps.c (ext2fs_allocate_block_bitmap): Fix to set the correct 6974 + magic number for a block bitmap instead of an inode bitmap. 6975 + 6976 + * inode.c (ext2fs_close_inode_scan, ext2fs_get_next_inode): Add 6977 + magic number checking for the inode_scan structure. 6978 + 6979 + * badblocks.c (badblocks_list_free, badblocks_list_add, 6980 + badblocks_list_test, badblocks_list_iterate_begin, 6981 + badblocks_list_iterate, badblocks_list_iterate_end): Add 6982 + magic number checking for the badblocks_list and 6983 + badblocks_iterate structures. 6984 + 6985 + * ext2_err.et (EXT2_ET_MAGIC_UNIX_IO_CHANNEL): 6986 + * unix_io.c (unix_open, unix_close, unix_set_blksize, unix_read_blk, 6987 + unix_write_blk, unix_flush): Add magic number checking 6988 + both for io_channel structure and unix_private_data 6989 + structure. 6990 + 6991 + * openfs.c (ext2fs_open): Add check for io_manager structure's 6992 + magic number. 6993 + 6994 + * rw_bitmaps.c (ext2fs_write_inode_bitmap, ext2fs_write_block_bitmap, 6995 + ext2fs_read_inode_bitmap, ext2fs_read_block_bitmap, 6996 + ext2fs_read_bitmaps, ext2fs_write_bitmaps): 6997 + * read_bb.c (ext2fs_read_bb_inode): 6998 + * read_bb_file.c (ext2fs_read_bb_FILE): 6999 + * newdir.c (ext2fs_new_dir_block): 7000 + * namei.c (ext2fs_dir_iterate, ext2fs_lookup, ext2fs_namei): 7001 + * link.c (ext2fs_link, ext2fs_unlink): 7002 + * inode.c (ext2fs_open_inode_scan, ext2fs_read_inode, 7003 + ext2fs_write_inode, ext2fs_get_blocks, 7004 + ext2fs_check_directory): 7005 + * get_pathname.c (ext2fs_get_pathname): 7006 + * expanddir.c (ext2fs_expand_dir): 7007 + * block.c (ext2fs_block_iterate): 7008 + * bitmaps.c (ext2fs_allocate_inode_bitmap, 7009 + ext2fs_allocate_block_bitmap): 7010 + * bb_inode.c (ext2fs_update_bb_inode): 7011 + * alloc.c (ext2fs_new_inode,ext2fs_new_block,ext2fs_get_free_blocks): 7012 + * check_desc.c (ext2fs_check_desc): 7013 + * closefs.c (ext2fs_close, ext2fs_flush): 7014 + * freefs.c (ext2fs_free): Add check for ext2_filsys magic number. 7015 + 7016 + * Makefile: 7017 + * ext2fs.h: 7018 + * openfs.c: 7019 + * check_desc.c (ext2fs_check_desc): Move ext2fs_check_desc from 7020 + openfs.c into its own file. 7021 + 7022 + * ext2fs.h (EXT2_CHECK_MAGIC): Added macro for checking for 7023 + structure magic numbers. 7024 + 7025 + * closefs.c (ext2fs_flush): Folded in Remy Card's changes to clear 7026 + the EXT2_VALID_FS flag in the backup superblock blocks, so that if 7027 + someone uses the -b option to specify the use of the backup 7028 + superblock --- this usually means that the main superblock is 7029 + toast. :-) 7030 + 7031 + * ext2fs.h: 7032 + * ext2_err.et (EXT2_ET_REV_TOO_HIGH): 7033 + * openfs.c (ext2fs_open): Folded in Remy Card's changes to add a 7034 + revision level to the superblock. 7035 + 7036 +Sun Aug 21 00:50:08 1994 Theodore Y. Ts'o (tytso@rt-11) 7037 + 7038 + * ext2fs.h: 7039 + * bitmaps.c: 7040 + * bitops.c 7041 + * bitops.h: 7042 + * openfs.c: 7043 + * initialize.c: Completely revamped the inode and block bitmap 7044 + structures, so that they can be better chance of being extensible 7045 + in a shared library. They are now their own type, instead of 7046 + being a char *. Also, the function signatures of 7047 + ext2fs_test_block_bitmap, ext2fs_mark_block_bitmap, 7048 + ext2fs_unmark_block_bitmap, ext2fs_test_inode_bitmap, 7049 + ext2fs_mark_inode_bitmap, and ext2fs_unmark_inode_bitmap were 7050 + changed to eliminate the ext2_filsys argument, since it is no 7051 + longer necessary. 7052 + 7053 +Wed Aug 17 21:46:44 1994 Remy Card (card@bbj) 7054 + 7055 + * unix_io.c (unix_read_blk and unix_write_blk): use the llseek 7056 + system call if available. 7057 + 7058 + * llseek.c: new file. This is the stub calling the llseek system 7059 + call which allows supports for 2GB+ file systems. 7060 + 7061 + * initialize.c (ext2fs_initialize): Ext2fs_initialize now stores 7062 + the creator operating system. 7063 + 7064 +Wed Aug 17 10:03:24 1994 Theodore Y. Ts'o (tytso@rt-11) 7065 + 7066 + * initialize.c (ext2fs_initialize): Ext2fs_initialize now sets up 7067 + the group descriptor statistics in addition to everything else. 7068 + This relieves mke2fs of the responsibility of doing it. 7069 + 7070 + * bitops.c, bitops.h: Add assembly inline functions for the 68000. 7071 + Added a new #define, _EXT2_HAVE_ASM_BITOPS_ to control whether or 7072 + not the generic C function equivalents should be included or not. 7073 + 7074 + * openfs.c (ext2fs_open): If a superblock is specified, then use 7075 + the backup group descriptors that go along with this superblock, 7076 + instead of using the primary group descriptors. This allows 7077 + e2fsck to recover filesystems where the primary group descriptors 7078 + have been trashed. 7079 + 7080 + 7121 7081 diff -Naur silo-1.4.13.orig/libext2fs/check_desc.c silo-1.4.13/libext2fs/check_desc.c 7122 --- silo-1.4.13.orig/libext2fs/check_desc.c 1969-12-31 1 6:00:00.000000000 -08007123 +++ silo-1.4.13/libext2fs/check_desc.c 200 6-11-02 19:21:44.216761341 -08007082 --- silo-1.4.13.orig/libext2fs/check_desc.c 1969-12-31 19:00:00.000000000 -0500 7083 +++ silo-1.4.13/libext2fs/check_desc.c 2007-04-03 17:02:53.000000000 -0400 7124 7084 @@ -0,0 +1,68 @@ 7125 7085 +/* … … 7192 7152 +} 7193 7153 diff -Naur silo-1.4.13.orig/libext2fs/closefs.c silo-1.4.13/libext2fs/closefs.c 7194 --- silo-1.4.13.orig/libext2fs/closefs.c 1969-12-31 1 6:00:00.000000000 -08007195 +++ silo-1.4.13/libext2fs/closefs.c 200 6-11-02 19:21:44.216761341 -08007154 --- silo-1.4.13.orig/libext2fs/closefs.c 1969-12-31 19:00:00.000000000 -0500 7155 +++ silo-1.4.13/libext2fs/closefs.c 2007-04-03 17:02:53.000000000 -0400 7196 7156 @@ -0,0 +1,381 @@ 7197 7157 +/* … … 7577 7537 + 7578 7538 diff -Naur silo-1.4.13.orig/libext2fs/cmp_bitmaps.c silo-1.4.13/libext2fs/cmp_bitmaps.c 7579 --- silo-1.4.13.orig/libext2fs/cmp_bitmaps.c 1969-12-31 1 6:00:00.000000000 -08007580 +++ silo-1.4.13/libext2fs/cmp_bitmaps.c 200 6-11-02 19:21:44.216761341 -08007539 --- silo-1.4.13.orig/libext2fs/cmp_bitmaps.c 1969-12-31 19:00:00.000000000 -0500 7540 +++ silo-1.4.13/libext2fs/cmp_bitmaps.c 2007-04-03 17:02:53.000000000 -0400 7581 7541 @@ -0,0 +1,72 @@ 7582 7542 +/* … … 7653 7613 + 7654 7614 diff -Naur silo-1.4.13.orig/libext2fs/dblist.c silo-1.4.13/libext2fs/dblist.c 7655 --- silo-1.4.13.orig/libext2fs/dblist.c 1969-12-31 1 6:00:00.000000000 -08007656 +++ silo-1.4.13/libext2fs/dblist.c 200 6-11-02 19:21:44.216761341 -08007615 --- silo-1.4.13.orig/libext2fs/dblist.c 1969-12-31 19:00:00.000000000 -0500 7616 +++ silo-1.4.13/libext2fs/dblist.c 2007-04-03 17:02:53.000000000 -0400 7657 7617 @@ -0,0 +1,260 @@ 7658 7618 +/* … … 7917 7877 +} 7918 7878 diff -Naur silo-1.4.13.orig/libext2fs/dblist_dir.c silo-1.4.13/libext2fs/dblist_dir.c 7919 --- silo-1.4.13.orig/libext2fs/dblist_dir.c 1969-12-31 1 6:00:00.000000000 -08007920 +++ silo-1.4.13/libext2fs/dblist_dir.c 200 6-11-02 19:21:44.216761341 -08007879 --- silo-1.4.13.orig/libext2fs/dblist_dir.c 1969-12-31 19:00:00.000000000 -0500 7880 +++ silo-1.4.13/libext2fs/dblist_dir.c 2007-04-03 17:02:53.000000000 -0400 7921 7881 @@ -0,0 +1,75 @@ 7922 7882 +/* … … 7995 7955 + db_info->blockcnt, 0, 0, priv_data); 7996 7956 +} 7997 diff -Naur silo-1.4.13.orig/libext2fs/dir_iterate.c silo-1.4.13/libext2fs/dir_iterate.c7998 --- silo-1.4.13.orig/libext2fs/dir_iterate.c 1969-12-31 16:00:00.000000000 -08007999 +++ silo-1.4.13/libext2fs/dir_iterate.c 2006-11-02 19:21:44.216761341 -08008000 @@ -0,0 +1,219 @@8001 +/*8002 + * dir_iterate.c --- ext2fs directory iteration operations8003 + *8004 + * Copyright (C) 1993, 1994, 1994, 1995, 1996, 1997 Theodore Ts'o.8005 + *8006 + * %Begin-Header%8007 + * This file may be redistributed under the terms of the GNU Public8008 + * License.8009 + * %End-Header%8010 + */8011 +8012 +#include <stdio.h>8013 +#include <string.h>8014 +#if HAVE_UNISTD_H8015 +#include <unistd.h>8016 +#endif8017 +#if HAVE_ERRNO_H8018 +#include <errno.h>8019 +#endif8020 +8021 +#include "ext2_fs.h"8022 +#include "ext2fsP.h"8023 +8024 +/*8025 + * This function checks to see whether or not a potential deleted8026 + * directory entry looks valid. What we do is check the deleted entry8027 + * and each successive entry to make sure that they all look valid and8028 + * that the last deleted entry ends at the beginning of the next8029 + * undeleted entry. Returns 1 if the deleted entry looks valid, zero8030 + * if not valid.8031 + */8032 +static int ext2fs_validate_entry(char *buf, int offset, int final_offset)8033 +{8034 + struct ext2_dir_entry *dirent;8035 +8036 + while (offset < final_offset) {8037 + dirent = (struct ext2_dir_entry *)(buf + offset);8038 + offset += dirent->rec_len;8039 + if ((dirent->rec_len < 8) ||8040 + ((dirent->rec_len % 4) != 0) ||8041 + (((dirent->name_len & 0xFF)+8) > dirent->rec_len))8042 + return 0;8043 + }8044 + return (offset == final_offset);8045 +}8046 +8047 +errcode_t ext2fs_dir_iterate2(ext2_filsys fs,8048 + ext2_ino_t dir,8049 + int flags,8050 + char *block_buf,8051 + int (*func)(ext2_ino_t dir,8052 + int entry,8053 + struct ext2_dir_entry *dirent,8054 + int offset,8055 + int blocksize,8056 + char *buf,8057 + void *priv_data),8058 + void *priv_data)8059 +{8060 + struct dir_context ctx;8061 + errcode_t retval;8062 +8063 + EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);8064 +8065 + retval = ext2fs_check_directory(fs, dir);8066 + if (retval)8067 + return retval;8068 +8069 + ctx.dir = dir;8070 + ctx.flags = flags;8071 + if (block_buf)8072 + ctx.buf = block_buf;8073 + else {8074 + retval = ext2fs_get_mem(fs->blocksize, &ctx.buf);8075 + if (retval)8076 + return retval;8077 + }8078 + ctx.func = func;8079 + ctx.priv_data = priv_data;8080 + ctx.errcode = 0;8081 + retval = ext2fs_block_iterate2(fs, dir, 0, 0,8082 + ext2fs_process_dir_block, &ctx);8083 + if (!block_buf)8084 + ext2fs_free_mem(&ctx.buf);8085 + if (retval)8086 + return retval;8087 + return ctx.errcode;8088 +}8089 +8090 +struct xlate {8091 + int (*func)(struct ext2_dir_entry *dirent,8092 + int offset,8093 + int blocksize,8094 + char *buf,8095 + void *priv_data);8096 + void *real_private;8097 +};8098 +8099 +static int xlate_func(ext2_ino_t dir EXT2FS_ATTR((unused)),8100 + int entry EXT2FS_ATTR((unused)),8101 + struct ext2_dir_entry *dirent, int offset,8102 + int blocksize, char *buf, void *priv_data)8103 +{8104 + struct xlate *xl = (struct xlate *) priv_data;8105 +8106 + return (*xl->func)(dirent, offset, blocksize, buf, xl->real_private);8107 +}8108 +8109 +extern errcode_t ext2fs_dir_iterate(ext2_filsys fs,8110 + ext2_ino_t dir,8111 + int flags,8112 + char *block_buf,8113 + int (*func)(struct ext2_dir_entry *dirent,8114 + int offset,8115 + int blocksize,8116 + char *buf,8117 + void *priv_data),8118 + void *priv_data)8119 +{8120 + struct xlate xl;8121 +8122 + xl.real_private = priv_data;8123 + xl.func = func;8124 +8125 + return ext2fs_dir_iterate2(fs, dir, flags, block_buf,8126 + xlate_func, &xl);8127 +}8128 +8129 +8130 +/*8131 + * Helper function which is private to this module. Used by8132 + * ext2fs_dir_iterate() and ext2fs_dblist_dir_iterate()8133 + */8134 +int ext2fs_process_dir_block(ext2_filsys fs,8135 + blk_t *blocknr,8136 + e2_blkcnt_t blockcnt,8137 + blk_t ref_block EXT2FS_ATTR((unused)),8138 + int ref_offset EXT2FS_ATTR((unused)),8139 + void *priv_data)8140 +{8141 + struct dir_context *ctx = (struct dir_context *) priv_data;8142 + unsigned int offset = 0;8143 + unsigned int next_real_entry = 0;8144 + int ret = 0;8145 + int changed = 0;8146 + int do_abort = 0;8147 + int entry, size;8148 + struct ext2_dir_entry *dirent;8149 +8150 + if (blockcnt < 0)8151 + return 0;8152 +8153 + entry = blockcnt ? DIRENT_OTHER_FILE : DIRENT_DOT_FILE;8154 +8155 + ctx->errcode = ext2fs_read_dir_block(fs, *blocknr, ctx->buf);8156 + if (ctx->errcode)8157 + return BLOCK_ABORT;8158 +8159 + while (offset < fs->blocksize) {8160 + dirent = (struct ext2_dir_entry *) (ctx->buf + offset);8161 + if (((offset + dirent->rec_len) > fs->blocksize) ||8162 + (dirent->rec_len < 8) ||8163 + ((dirent->rec_len % 4) != 0) ||8164 + (((dirent->name_len & 0xFF)+8) > dirent->rec_len)) {8165 + ctx->errcode = EXT2_ET_DIR_CORRUPTED;8166 + return BLOCK_ABORT;8167 + }8168 + if (!dirent->inode &&8169 + !(ctx->flags & DIRENT_FLAG_INCLUDE_EMPTY))8170 + goto next;8171 +8172 + ret = (ctx->func)(ctx->dir,8173 + (next_real_entry > offset) ?8174 + DIRENT_DELETED_FILE : entry,8175 + dirent, offset,8176 + fs->blocksize, ctx->buf,8177 + ctx->priv_data);8178 + if (entry < DIRENT_OTHER_FILE)8179 + entry++;8180 +8181 + if (ret & DIRENT_CHANGED)8182 + changed++;8183 + if (ret & DIRENT_ABORT) {8184 + do_abort++;8185 + break;8186 + }8187 +next:8188 + if (next_real_entry == offset)8189 + next_real_entry += dirent->rec_len;8190 +8191 + if (ctx->flags & DIRENT_FLAG_INCLUDE_REMOVED) {8192 + size = ((dirent->name_len & 0xFF) + 11) & ~3;8193 +8194 + if (dirent->rec_len != size) {8195 + unsigned int final_offset;8196 +8197 + final_offset = offset + dirent->rec_len;8198 + offset += size;8199 + while (offset < final_offset &&8200 + !ext2fs_validate_entry(ctx->buf,8201 + offset,8202 + final_offset))8203 + offset += 4;8204 + continue;8205 + }8206 + }8207 + offset += dirent->rec_len;8208 + }8209 +8210 + if (changed) {8211 + ctx->errcode = ext2fs_write_dir_block(fs, *blocknr, ctx->buf);8212 + if (ctx->errcode)8213 + return BLOCK_ABORT;8214 + }8215 + if (do_abort)8216 + return BLOCK_ABORT;8217 + return 0;8218 +}8219 +8220 7957 diff -Naur silo-1.4.13.orig/libext2fs/dirblock.c silo-1.4.13/libext2fs/dirblock.c 8221 --- silo-1.4.13.orig/libext2fs/dirblock.c 1969-12-31 1 6:00:00.000000000 -08008222 +++ silo-1.4.13/libext2fs/dirblock.c 200 6-11-02 19:21:44.216761341 -08007958 --- silo-1.4.13.orig/libext2fs/dirblock.c 1969-12-31 19:00:00.000000000 -0500 7959 +++ silo-1.4.13/libext2fs/dirblock.c 2007-04-03 17:02:53.000000000 -0400 8223 7960 @@ -0,0 +1,130 @@ 8224 7961 +/* … … 8353 8090 + 8354 8091 diff -Naur silo-1.4.13.orig/libext2fs/dirhash.c silo-1.4.13/libext2fs/dirhash.c 8355 --- silo-1.4.13.orig/libext2fs/dirhash.c 1969-12-31 1 6:00:00.000000000 -08008356 +++ silo-1.4.13/libext2fs/dirhash.c 200 6-11-02 19:21:44.216761341 -08008092 --- silo-1.4.13.orig/libext2fs/dirhash.c 1969-12-31 19:00:00.000000000 -0500 8093 +++ silo-1.4.13/libext2fs/dirhash.c 2007-04-03 17:02:53.000000000 -0400 8357 8094 @@ -0,0 +1,233 @@ 8358 8095 +/* … … 8589 8326 + return 0; 8590 8327 +} 8328 diff -Naur silo-1.4.13.orig/libext2fs/dir_iterate.c silo-1.4.13/libext2fs/dir_iterate.c 8329 --- silo-1.4.13.orig/libext2fs/dir_iterate.c 1969-12-31 19:00:00.000000000 -0500 8330 +++ silo-1.4.13/libext2fs/dir_iterate.c 2007-04-03 17:02:53.000000000 -0400 8331 @@ -0,0 +1,219 @@ 8332 +/* 8333 + * dir_iterate.c --- ext2fs directory iteration operations 8334 + * 8335 + * Copyright (C) 1993, 1994, 1994, 1995, 1996, 1997 Theodore Ts'o. 8336 + * 8337 + * %Begin-Header% 8338 + * This file may be redistributed under the terms of the GNU Public 8339 + * License. 8340 + * %End-Header% 8341 + */ 8342 + 8343 +#include <stdio.h> 8344 +#include <string.h> 8345 +#if HAVE_UNISTD_H 8346 +#include <unistd.h> 8347 +#endif 8348 +#if HAVE_ERRNO_H 8349 +#include <errno.h> 8350 +#endif 8351 + 8352 +#include "ext2_fs.h" 8353 +#include "ext2fsP.h" 8354 + 8355 +/* 8356 + * This function checks to see whether or not a potential deleted 8357 + * directory entry looks valid. What we do is check the deleted entry 8358 + * and each successive entry to make sure that they all look valid and 8359 + * that the last deleted entry ends at the beginning of the next 8360 + * undeleted entry. Returns 1 if the deleted entry looks valid, zero 8361 + * if not valid. 8362 + */ 8363 +static int ext2fs_validate_entry(char *buf, int offset, int final_offset) 8364 +{ 8365 + struct ext2_dir_entry *dirent; 8366 + 8367 + while (offset < final_offset) { 8368 + dirent = (struct ext2_dir_entry *)(buf + offset); 8369 + offset += dirent->rec_len; 8370 + if ((dirent->rec_len < 8) || 8371 + ((dirent->rec_len % 4) != 0) || 8372 + (((dirent->name_len & 0xFF)+8) > dirent->rec_len)) 8373 + return 0; 8374 + } 8375 + return (offset == final_offset); 8376 +} 8377 + 8378 +errcode_t ext2fs_dir_iterate2(ext2_filsys fs, 8379 + ext2_ino_t dir, 8380 + int flags, 8381 + char *block_buf, 8382 + int (*func)(ext2_ino_t dir, 8383 + int entry, 8384 + struct ext2_dir_entry *dirent, 8385 + int offset, 8386 + int blocksize, 8387 + char *buf, 8388 + void *priv_data), 8389 + void *priv_data) 8390 +{ 8391 + struct dir_context ctx; 8392 + errcode_t retval; 8393 + 8394 + EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS); 8395 + 8396 + retval = ext2fs_check_directory(fs, dir); 8397 + if (retval) 8398 + return retval; 8399 + 8400 + ctx.dir = dir; 8401 + ctx.flags = flags; 8402 + if (block_buf) 8403 + ctx.buf = block_buf; 8404 + else { 8405 + retval = ext2fs_get_mem(fs->blocksize, &ctx.buf); 8406 + if (retval) 8407 + return retval; 8408 + } 8409 + ctx.func = func; 8410 + ctx.priv_data = priv_data; 8411 + ctx.errcode = 0; 8412 + retval = ext2fs_block_iterate2(fs, dir, 0, 0, 8413 + ext2fs_process_dir_block, &ctx); 8414 + if (!block_buf) 8415 + ext2fs_free_mem(&ctx.buf); 8416 + if (retval) 8417 + return retval; 8418 + return ctx.errcode; 8419 +} 8420 + 8421 +struct xlate { 8422 + int (*func)(struct ext2_dir_entry *dirent, 8423 + int offset, 8424 + int blocksize, 8425 + char *buf, 8426 + void *priv_data); 8427 + void *real_private; 8428 +}; 8429 + 8430 +static int xlate_func(ext2_ino_t dir EXT2FS_ATTR((unused)), 8431 + int entry EXT2FS_ATTR((unused)), 8432 + struct ext2_dir_entry *dirent, int offset, 8433 + int blocksize, char *buf, void *priv_data) 8434 +{ 8435 + struct xlate *xl = (struct xlate *) priv_data; 8436 + 8437 + return (*xl->func)(dirent, offset, blocksize, buf, xl->real_private); 8438 +} 8439 + 8440 +extern errcode_t ext2fs_dir_iterate(ext2_filsys fs, 8441 + ext2_ino_t dir, 8442 + int flags, 8443 + char *block_buf, 8444 + int (*func)(struct ext2_dir_entry *dirent, 8445 + int offset, 8446 + int blocksize, 8447 + char *buf, 8448 + void *priv_data), 8449 + void *priv_data) 8450 +{ 8451 + struct xlate xl; 8452 + 8453 + xl.real_private = priv_data; 8454 + xl.func = func; 8455 + 8456 + return ext2fs_dir_iterate2(fs, dir, flags, block_buf, 8457 + xlate_func, &xl); 8458 +} 8459 + 8460 + 8461 +/* 8462 + * Helper function which is private to this module. Used by 8463 + * ext2fs_dir_iterate() and ext2fs_dblist_dir_iterate() 8464 + */ 8465 +int ext2fs_process_dir_block(ext2_filsys fs, 8466 + blk_t *blocknr, 8467 + e2_blkcnt_t blockcnt, 8468 + blk_t ref_block EXT2FS_ATTR((unused)), 8469 + int ref_offset EXT2FS_ATTR((unused)), 8470 + void *priv_data) 8471 +{ 8472 + struct dir_context *ctx = (struct dir_context *) priv_data; 8473 + unsigned int offset = 0; 8474 + unsigned int next_real_entry = 0; 8475 + int ret = 0; 8476 + int changed = 0; 8477 + int do_abort = 0; 8478 + int entry, size; 8479 + struct ext2_dir_entry *dirent; 8480 + 8481 + if (blockcnt < 0) 8482 + return 0; 8483 + 8484 + entry = blockcnt ? DIRENT_OTHER_FILE : DIRENT_DOT_FILE; 8485 + 8486 + ctx->errcode = ext2fs_read_dir_block(fs, *blocknr, ctx->buf); 8487 + if (ctx->errcode) 8488 + return BLOCK_ABORT; 8489 + 8490 + while (offset < fs->blocksize) { 8491 + dirent = (struct ext2_dir_entry *) (ctx->buf + offset); 8492 + if (((offset + dirent->rec_len) > fs->blocksize) || 8493 + (dirent->rec_len < 8) || 8494 + ((dirent->rec_len % 4) != 0) || 8495 + (((dirent->name_len & 0xFF)+8) > dirent->rec_len)) { 8496 + ctx->errcode = EXT2_ET_DIR_CORRUPTED; 8497 + return BLOCK_ABORT; 8498 + } 8499 + if (!dirent->inode && 8500 + !(ctx->flags & DIRENT_FLAG_INCLUDE_EMPTY)) 8501 + goto next; 8502 + 8503 + ret = (ctx->func)(ctx->dir, 8504 + (next_real_entry > offset) ? 8505 + DIRENT_DELETED_FILE : entry, 8506 + dirent, offset, 8507 + fs->blocksize, ctx->buf, 8508 + ctx->priv_data); 8509 + if (entry < DIRENT_OTHER_FILE) 8510 + entry++; 8511 + 8512 + if (ret & DIRENT_CHANGED) 8513 + changed++; 8514 + if (ret & DIRENT_ABORT) { 8515 + do_abort++; 8516 + break; 8517 + } 8518 +next: 8519 + if (next_real_entry == offset) 8520 + next_real_entry += dirent->rec_len; 8521 + 8522 + if (ctx->flags & DIRENT_FLAG_INCLUDE_REMOVED) { 8523 + size = ((dirent->name_len & 0xFF) + 11) & ~3; 8524 + 8525 + if (dirent->rec_len != size) { 8526 + unsigned int final_offset; 8527 + 8528 + final_offset = offset + dirent->rec_len; 8529 + offset += size; 8530 + while (offset < final_offset && 8531 + !ext2fs_validate_entry(ctx->buf, 8532 + offset, 8533 + final_offset)) 8534 + offset += 4; 8535 + continue; 8536 + } 8537 + } 8538 + offset += dirent->rec_len; 8539 + } 8540 + 8541 + if (changed) { 8542 + ctx->errcode = ext2fs_write_dir_block(fs, *blocknr, ctx->buf); 8543 + if (ctx->errcode) 8544 + return BLOCK_ABORT; 8545 + } 8546 + if (do_abort) 8547 + return BLOCK_ABORT; 8548 + return 0; 8549 +} 8550 + 8591 8551 diff -Naur silo-1.4.13.orig/libext2fs/dosio.c silo-1.4.13/libext2fs/dosio.c 8592 --- silo-1.4.13.orig/libext2fs/dosio.c 1969-12-31 1 6:00:00.000000000 -08008593 +++ silo-1.4.13/libext2fs/dosio.c 200 6-11-02 19:21:44.216761341 -08008552 --- silo-1.4.13.orig/libext2fs/dosio.c 1969-12-31 19:00:00.000000000 -0500 8553 +++ silo-1.4.13/libext2fs/dosio.c 2007-04-03 17:02:53.000000000 -0400 8594 8554 @@ -0,0 +1,456 @@ 8595 8555 +/* … … 9050 9010 +} 9051 9011 diff -Naur silo-1.4.13.orig/libext2fs/dosio.h silo-1.4.13/libext2fs/dosio.h 9052 --- silo-1.4.13.orig/libext2fs/dosio.h 1969-12-31 1 6:00:00.000000000 -08009053 +++ silo-1.4.13/libext2fs/dosio.h 200 6-11-02 19:21:44.220761208 -08009012 --- silo-1.4.13.orig/libext2fs/dosio.h 1969-12-31 19:00:00.000000000 -0500 9013 +++ silo-1.4.13/libext2fs/dosio.h 2007-04-03 17:02:53.000000000 -0400 9054 9014 @@ -0,0 +1,153 @@ 9055 9015 +/* … … 9207 9167 +#endif /* __diskio_h */ 9208 9168 diff -Naur silo-1.4.13.orig/libext2fs/dupfs.c silo-1.4.13/libext2fs/dupfs.c 9209 --- silo-1.4.13.orig/libext2fs/dupfs.c 1969-12-31 1 6:00:00.000000000 -08009210 +++ silo-1.4.13/libext2fs/dupfs.c 200 6-11-02 19:21:44.220761208 -08009169 --- silo-1.4.13.orig/libext2fs/dupfs.c 1969-12-31 19:00:00.000000000 -0500 9170 +++ silo-1.4.13/libext2fs/dupfs.c 2007-04-03 17:02:53.000000000 -0400 9211 9171 @@ -0,0 +1,96 @@ 9212 9172 +/* … … 9307 9267 + 9308 9268 diff -Naur silo-1.4.13.orig/libext2fs/e2image.h silo-1.4.13/libext2fs/e2image.h 9309 --- silo-1.4.13.orig/libext2fs/e2image.h 1969-12-31 1 6:00:00.000000000 -08009310 +++ silo-1.4.13/libext2fs/e2image.h 200 6-11-02 19:21:44.220761208 -08009269 --- silo-1.4.13.orig/libext2fs/e2image.h 1969-12-31 19:00:00.000000000 -0500 9270 +++ silo-1.4.13/libext2fs/e2image.h 2007-04-03 17:02:53.000000000 -0400 9311 9271 @@ -0,0 +1,51 @@ 9312 9272 +/* … … 9362 9322 + 9363 9323 diff -Naur silo-1.4.13.orig/libext2fs/expanddir.c silo-1.4.13/libext2fs/expanddir.c 9364 --- silo-1.4.13.orig/libext2fs/expanddir.c 1969-12-31 1 6:00:00.000000000 -08009365 +++ silo-1.4.13/libext2fs/expanddir.c 200 6-11-02 19:21:44.220761208 -08009324 --- silo-1.4.13.orig/libext2fs/expanddir.c 1969-12-31 19:00:00.000000000 -0500 9325 +++ silo-1.4.13/libext2fs/expanddir.c 2007-04-03 17:02:53.000000000 -0400 9366 9326 @@ -0,0 +1,126 @@ 9367 9327 +/* … … 9492 9452 +} 9493 9453 diff -Naur silo-1.4.13.orig/libext2fs/ext2_err.c silo-1.4.13/libext2fs/ext2_err.c 9494 --- silo-1.4.13.orig/libext2fs/ext2_err.c 1969-12-31 1 6:00:00.000000000 -08009495 +++ silo-1.4.13/libext2fs/ext2_err.c 200 6-11-02 19:21:44.220761208 -08009454 --- silo-1.4.13.orig/libext2fs/ext2_err.c 1969-12-31 19:00:00.000000000 -0500 9455 +++ silo-1.4.13/libext2fs/ext2_err.c 2007-04-03 17:02:53.000000000 -0400 9496 9456 @@ -0,0 +1,148 @@ 9497 9457 +/* … … 9644 9604 +} 9645 9605 diff -Naur silo-1.4.13.orig/libext2fs/ext2_ext_attr.h silo-1.4.13/libext2fs/ext2_ext_attr.h 9646 --- silo-1.4.13.orig/libext2fs/ext2_ext_attr.h 1969-12-31 1 6:00:00.000000000 -08009647 +++ silo-1.4.13/libext2fs/ext2_ext_attr.h 200 6-11-02 19:21:44.220761208 -08009606 --- silo-1.4.13.orig/libext2fs/ext2_ext_attr.h 1969-12-31 19:00:00.000000000 -0500 9607 +++ silo-1.4.13/libext2fs/ext2_ext_attr.h 2007-04-03 17:02:53.000000000 -0400 9648 9608 @@ -0,0 +1,69 @@ 9649 9609 +/* … … 9717 9677 + 9718 9678 diff -Naur silo-1.4.13.orig/libext2fs/ext2_fs.h silo-1.4.13/libext2fs/ext2_fs.h 9719 --- silo-1.4.13.orig/libext2fs/ext2_fs.h 1969-12-31 1 6:00:00.000000000 -08009720 +++ silo-1.4.13/libext2fs/ext2_fs.h 200 6-11-02 19:21:44.220761208 -08009679 --- silo-1.4.13.orig/libext2fs/ext2_fs.h 1969-12-31 19:00:00.000000000 -0500 9680 +++ silo-1.4.13/libext2fs/ext2_fs.h 2007-04-03 17:02:53.000000000 -0400 9721 9681 @@ -0,0 +1,644 @@ 9722 9682 +/* … … 10364 10324 + 10365 10325 +#endif /* _LINUX_EXT2_FS_H */ 10366 diff -Naur silo-1.4.13.orig/libext2fs/ext2_io.h silo-1.4.13/libext2fs/ext2_io.h10367 --- silo-1.4.13.orig/libext2fs/ext2_io.h 1969-12-31 16:00:00.000000000 -080010368 +++ silo-1.4.13/libext2fs/ext2_io.h 2006-11-02 19:21:44.220761208 -080010369 @@ -0,0 +1,108 @@10370 +/*10371 + * io.h --- the I/O manager abstraction10372 + *10373 + * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.10374 + *10375 + * %Begin-Header%10376 + * This file may be redistributed under the terms of the GNU Public10377 + * License.10378 + * %End-Header%10379 + */10380 +10381 +#ifndef _EXT2FS_EXT2_IO_H10382 +#define _EXT2FS_EXT2_IO_H10383 +10384 +/*10385 + * ext2_loff_t is defined here since unix_io.c needs it.10386 + */10387 +#if defined(__GNUC__) || defined(HAS_LONG_LONG)10388 +typedef long long ext2_loff_t;10389 +#else10390 +typedef long ext2_loff_t;10391 +#endif10392 +10393 +/* llseek.c */10394 +ext2_loff_t ext2fs_llseek (int, ext2_loff_t, int);10395 +10396 +typedef struct struct_io_manager *io_manager;10397 +typedef struct struct_io_channel *io_channel;10398 +10399 +#define CHANNEL_FLAGS_WRITETHROUGH 0x0110400 +10401 +struct struct_io_channel {10402 + errcode_t magic;10403 + io_manager manager;10404 + char *name;10405 + int block_size;10406 + errcode_t (*read_error)(io_channel channel,10407 + unsigned long block,10408 + int count,10409 + void *data,10410 + size_t size,10411 + int actual_bytes_read,10412 + errcode_t error);10413 + errcode_t (*write_error)(io_channel channel,10414 + unsigned long block,10415 + int count,10416 + const void *data,10417 + size_t size,10418 + int actual_bytes_written,10419 + errcode_t error);10420 + int refcount;10421 + int flags;10422 + int reserved[14];10423 + void *private_data;10424 + void *app_data;10425 +};10426 +10427 +struct struct_io_manager {10428 + errcode_t magic;10429 + const char *name;10430 + errcode_t (*open)(const char *name, int flags, io_channel *channel);10431 + errcode_t (*close)(io_channel channel);10432 + errcode_t (*set_blksize)(io_channel channel, int blksize);10433 + errcode_t (*read_blk)(io_channel channel, unsigned long block,10434 + int count, void *data);10435 + errcode_t (*write_blk)(io_channel channel, unsigned long block,10436 + int count, const void *data);10437 + errcode_t (*flush)(io_channel channel);10438 + errcode_t (*write_byte)(io_channel channel, unsigned long offset,10439 + int count, const void *data);10440 + errcode_t (*set_option)(io_channel channel, const char *option,10441 + const char *arg);10442 + int reserved[14];10443 +};10444 +10445 +#define IO_FLAG_RW 110446 +10447 +/*10448 + * Convenience functions....10449 + */10450 +#define io_channel_close(c) ((c)->manager->close((c)))10451 +#define io_channel_set_blksize(c,s) ((c)->manager->set_blksize((c),s))10452 +#define io_channel_read_blk(c,b,n,d) ((c)->manager->read_blk((c),b,n,d))10453 +#define io_channel_write_blk(c,b,n,d) ((c)->manager->write_blk((c),b,n,d))10454 +#define io_channel_flush(c) ((c)->manager->flush((c)))10455 +#define io_channel_bumpcount(c) ((c)->refcount++)10456 +10457 +/* io_manager.c */10458 +extern errcode_t io_channel_set_options(io_channel channel,10459 + const char *options);10460 +extern errcode_t io_channel_write_byte(io_channel channel,10461 + unsigned long offset,10462 + int count, const void *data);10463 +10464 +/* unix_io.c */10465 +extern io_manager unix_io_manager;10466 +10467 +/* test_io.c */10468 +extern io_manager test_io_manager, test_io_backing_manager;10469 +extern void (*test_io_cb_read_blk)10470 + (unsigned long block, int count, errcode_t err);10471 +extern void (*test_io_cb_write_blk)10472 + (unsigned long block, int count, errcode_t err);10473 +extern void (*test_io_cb_set_blksize)10474 + (int blksize, errcode_t err);10475 +10476 +#endif /* _EXT2FS_EXT2_IO_H */10477 +10478 10326 diff -Naur silo-1.4.13.orig/libext2fs/ext2fs.h silo-1.4.13/libext2fs/ext2fs.h 10479 --- silo-1.4.13.orig/libext2fs/ext2fs.h 1969-12-31 1 6:00:00.000000000 -080010480 +++ silo-1.4.13/libext2fs/ext2fs.h 200 6-11-02 19:21:44.220761208 -080010327 --- silo-1.4.13.orig/libext2fs/ext2fs.h 1969-12-31 19:00:00.000000000 -0500 10328 +++ silo-1.4.13/libext2fs/ext2fs.h 2007-04-03 17:02:53.000000000 -0400 10481 10329 @@ -0,0 +1,1140 @@ 10482 10330 +/* … … 11621 11469 +#endif /* _EXT2FS_EXT2FS_H */ 11622 11470 diff -Naur silo-1.4.13.orig/libext2fs/ext2fsP.h silo-1.4.13/libext2fs/ext2fsP.h 11623 --- silo-1.4.13.orig/libext2fs/ext2fsP.h 1969-12-31 1 6:00:00.000000000 -080011624 +++ silo-1.4.13/libext2fs/ext2fsP.h 200 6-11-02 19:21:44.220761208 -080011471 --- silo-1.4.13.orig/libext2fs/ext2fsP.h 1969-12-31 19:00:00.000000000 -0500 11472 +++ silo-1.4.13/libext2fs/ext2fsP.h 2007-04-03 17:02:53.000000000 -0400 11625 11473 @@ -0,0 +1,88 @@ 11626 11474 +/* … … 11712 11560 + 11713 11561 + 11562 diff -Naur silo-1.4.13.orig/libext2fs/ext2_io.h silo-1.4.13/libext2fs/ext2_io.h 11563 --- silo-1.4.13.orig/libext2fs/ext2_io.h 1969-12-31 19:00:00.000000000 -0500 11564 +++ silo-1.4.13/libext2fs/ext2_io.h 2007-04-03 17:02:53.000000000 -0400 11565 @@ -0,0 +1,108 @@ 11566 +/* 11567 + * io.h --- the I/O manager abstraction 11568 + * 11569 + * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o. 11570 + * 11571 + * %Begin-Header% 11572 + * This file may be redistributed under the terms of the GNU Public 11573 + * License. 11574 + * %End-Header% 11575 + */ 11576 + 11577 +#ifndef _EXT2FS_EXT2_IO_H 11578 +#define _EXT2FS_EXT2_IO_H 11579 + 11580 +/* 11581 + * ext2_loff_t is defined here since unix_io.c needs it. 11582 + */ 11583 +#if defined(__GNUC__) || defined(HAS_LONG_LONG) 11584 +typedef long long ext2_loff_t; 11585 +#else 11586 +typedef long ext2_loff_t; 11587 +#endif 11588 + 11589 +/* llseek.c */ 11590 +ext2_loff_t ext2fs_llseek (int, ext2_loff_t, int); 11591 + 11592 +typedef struct struct_io_manager *io_manager; 11593 +typedef struct struct_io_channel *io_channel; 11594 + 11595 +#define CHANNEL_FLAGS_WRITETHROUGH 0x01 11596 + 11597 +struct struct_io_channel { 11598 + errcode_t magic; 11599 + io_manager manager; 11600 + char *name; 11601 + int block_size; 11602 + errcode_t (*read_error)(io_channel channel, 11603 + unsigned long block, 11604 + int count, 11605 + void *data, 11606 + size_t size, 11607 + int actual_bytes_read, 11608 + errcode_t error); 11609 + errcode_t (*write_error)(io_channel channel, 11610 + unsigned long block, 11611 + int count, 11612 + const void *data, 11613 + size_t size, 11614 + int actual_bytes_written, 11615 + errcode_t error); 11616 + int refcount; 11617 + int flags; 11618 + int reserved[14]; 11619 + void *private_data; 11620 + void *app_data; 11621 +}; 11622 + 11623 +struct struct_io_manager { 11624 + errcode_t magic; 11625 + const char *name; 11626 + errcode_t (*open)(const char *name, int flags, io_channel *channel); 11627 + errcode_t (*close)(io_channel channel); 11628 + errcode_t (*set_blksize)(io_channel channel, int blksize); 11629 + errcode_t (*read_blk)(io_channel channel, unsigned long block, 11630 + int count, void *data); 11631 + errcode_t (*write_blk)(io_channel channel, unsigned long block, 11632 + int count, const void *data); 11633 + errcode_t (*flush)(io_channel channel); 11634 + errcode_t (*write_byte)(io_channel channel, unsigned long offset, 11635 + int count, const void *data); 11636 + errcode_t (*set_option)(io_channel channel, const char *option, 11637 + const char *arg); 11638 + int reserved[14]; 11639 +}; 11640 + 11641 +#define IO_FLAG_RW 1 11642 + 11643 +/* 11644 + * Convenience functions.... 11645 + */ 11646 +#define io_channel_close(c) ((c)->manager->close((c))) 11647 +#define io_channel_set_blksize(c,s) ((c)->manager->set_blksize((c),s)) 11648 +#define io_channel_read_blk(c,b,n,d) ((c)->manager->read_blk((c),b,n,d)) 11649 +#define io_channel_write_blk(c,b,n,d) ((c)->manager->write_blk((c),b,n,d)) 11650 +#define io_channel_flush(c) ((c)->manager->flush((c))) 11651 +#define io_channel_bumpcount(c) ((c)->refcount++) 11652 + 11653 +/* io_manager.c */ 11654 +extern errcode_t io_channel_set_options(io_channel channel, 11655 + const char *options); 11656 +extern errcode_t io_channel_write_byte(io_channel channel, 11657 + unsigned long offset, 11658 + int count, const void *data); 11659 + 11660 +/* unix_io.c */ 11661 +extern io_manager unix_io_manager; 11662 + 11663 +/* test_io.c */ 11664 +extern io_manager test_io_manager, test_io_backing_manager; 11665 +extern void (*test_io_cb_read_blk) 11666 + (unsigned long block, int count, errcode_t err); 11667 +extern void (*test_io_cb_write_blk) 11668 + (unsigned long block, int count, errcode_t err); 11669 +extern void (*test_io_cb_set_blksize) 11670 + (int blksize, errcode_t err); 11671 + 11672 +#endif /* _EXT2FS_EXT2_IO_H */ 11673 + 11714 11674 diff -Naur silo-1.4.13.orig/libext2fs/ext_attr.c silo-1.4.13/libext2fs/ext_attr.c 11715 --- silo-1.4.13.orig/libext2fs/ext_attr.c 1969-12-31 1 6:00:00.000000000 -080011716 +++ silo-1.4.13/libext2fs/ext_attr.c 200 6-11-02 19:21:44.220761208 -080011675 --- silo-1.4.13.orig/libext2fs/ext_attr.c 1969-12-31 19:00:00.000000000 -0500 11676 +++ silo-1.4.13/libext2fs/ext_attr.c 2007-04-03 17:02:53.000000000 -0400 11717 11677 @@ -0,0 +1,105 @@ 11718 11678 +/* … … 11822 11782 +} 11823 11783 diff -Naur silo-1.4.13.orig/libext2fs/fileio.c silo-1.4.13/libext2fs/fileio.c 11824 --- silo-1.4.13.orig/libext2fs/fileio.c 1969-12-31 1 6:00:00.000000000 -080011825 +++ silo-1.4.13/libext2fs/fileio.c 200 6-11-02 19:21:44.224761074 -080011784 --- silo-1.4.13.orig/libext2fs/fileio.c 1969-12-31 19:00:00.000000000 -0500 11785 +++ silo-1.4.13/libext2fs/fileio.c 2007-04-03 17:02:53.000000000 -0400 11826 11786 @@ -0,0 +1,378 @@ 11827 11787 +/* … … 12204 12164 +} 12205 12165 diff -Naur silo-1.4.13.orig/libext2fs/finddev.c silo-1.4.13/libext2fs/finddev.c 12206 --- silo-1.4.13.orig/libext2fs/finddev.c 1969-12-31 1 6:00:00.000000000 -080012207 +++ silo-1.4.13/libext2fs/finddev.c 200 6-11-02 19:21:44.224761074 -080012166 --- silo-1.4.13.orig/libext2fs/finddev.c 1969-12-31 19:00:00.000000000 -0500 12167 +++ silo-1.4.13/libext2fs/finddev.c 2007-04-03 17:02:53.000000000 -0400 12208 12168 @@ -0,0 +1,208 @@ 12209 12169 +/* … … 12416 12376 +#endif 12417 12377 diff -Naur silo-1.4.13.orig/libext2fs/flushb.c silo-1.4.13/libext2fs/flushb.c 12418 --- silo-1.4.13.orig/libext2fs/flushb.c 1969-12-31 1 6:00:00.000000000 -080012419 +++ silo-1.4.13/libext2fs/flushb.c 200 6-11-02 19:21:44.224761074 -080012378 --- silo-1.4.13.orig/libext2fs/flushb.c 1969-12-31 19:00:00.000000000 -0500 12379 +++ silo-1.4.13/libext2fs/flushb.c 2007-04-03 17:02:53.000000000 -0400 12420 12380 @@ -0,0 +1,82 @@ 12421 12381 +/* … … 12502 12462 +} 12503 12463 diff -Naur silo-1.4.13.orig/libext2fs/freefs.c silo-1.4.13/libext2fs/freefs.c 12504 --- silo-1.4.13.orig/libext2fs/freefs.c 1969-12-31 1 6:00:00.000000000 -080012505 +++ silo-1.4.13/libext2fs/freefs.c 200 6-11-02 19:21:44.224761074 -080012464 --- silo-1.4.13.orig/libext2fs/freefs.c 1969-12-31 19:00:00.000000000 -0500 12465 +++ silo-1.4.13/libext2fs/freefs.c 2007-04-03 17:02:53.000000000 -0400 12506 12466 @@ -0,0 +1,147 @@ 12507 12467 +/* … … 12653 12613 + 12654 12614 diff -Naur silo-1.4.13.orig/libext2fs/gen_bitmap.c silo-1.4.13/libext2fs/gen_bitmap.c 12655 --- silo-1.4.13.orig/libext2fs/gen_bitmap.c 1969-12-31 1 6:00:00.000000000 -080012656 +++ silo-1.4.13/libext2fs/gen_bitmap.c 200 6-11-02 19:21:44.224761074 -080012615 --- silo-1.4.13.orig/libext2fs/gen_bitmap.c 1969-12-31 19:00:00.000000000 -0500 12616 +++ silo-1.4.13/libext2fs/gen_bitmap.c 2007-04-03 17:02:53.000000000 -0400 12657 12617 @@ -0,0 +1,48 @@ 12658 12618 +/* … … 12705 12665 +} 12706 12666 diff -Naur silo-1.4.13.orig/libext2fs/get_pathname.c silo-1.4.13/libext2fs/get_pathname.c 12707 --- silo-1.4.13.orig/libext2fs/get_pathname.c 1969-12-31 1 6:00:00.000000000 -080012708 +++ silo-1.4.13/libext2fs/get_pathname.c 200 6-11-02 19:21:44.224761074 -080012667 --- silo-1.4.13.orig/libext2fs/get_pathname.c 1969-12-31 19:00:00.000000000 -0500 12668 +++ silo-1.4.13/libext2fs/get_pathname.c 2007-04-03 17:02:53.000000000 -0400 12709 12669 @@ -0,0 +1,157 @@ 12710 12670 +/* … … 12866 12826 +} 12867 12827 diff -Naur silo-1.4.13.orig/libext2fs/getsectsize.c silo-1.4.13/libext2fs/getsectsize.c 12868 --- silo-1.4.13.orig/libext2fs/getsectsize.c 1969-12-31 1 6:00:00.000000000 -080012869 +++ silo-1.4.13/libext2fs/getsectsize.c 200 6-11-02 19:21:44.224761074 -080012828 --- silo-1.4.13.orig/libext2fs/getsectsize.c 1969-12-31 19:00:00.000000000 -0500 12829 +++ silo-1.4.13/libext2fs/getsectsize.c 2007-04-03 17:02:53.000000000 -0400 12870 12830 @@ -0,0 +1,60 @@ 12871 12831 +/* … … 12930 12890 +} 12931 12891 diff -Naur silo-1.4.13.orig/libext2fs/getsize.c silo-1.4.13/libext2fs/getsize.c 12932 --- silo-1.4.13.orig/libext2fs/getsize.c 1969-12-31 1 6:00:00.000000000 -080012933 +++ silo-1.4.13/libext2fs/getsize.c 200 6-11-02 19:21:44.224761074 -080012892 --- silo-1.4.13.orig/libext2fs/getsize.c 1969-12-31 19:00:00.000000000 -0500 12893 +++ silo-1.4.13/libext2fs/getsize.c 2007-04-03 17:02:53.000000000 -0400 12934 12894 @@ -0,0 +1,293 @@ 12935 12895 +/* … … 13227 13187 +#endif 13228 13188 diff -Naur silo-1.4.13.orig/libext2fs/icount.c silo-1.4.13/libext2fs/icount.c 13229 --- silo-1.4.13.orig/libext2fs/icount.c 1969-12-31 1 6:00:00.000000000 -080013230 +++ silo-1.4.13/libext2fs/icount.c 200 6-11-02 19:21:44.224761074 -080013189 --- silo-1.4.13.orig/libext2fs/icount.c 1969-12-31 19:00:00.000000000 -0500 13190 +++ silo-1.4.13/libext2fs/icount.c 2007-04-03 17:02:53.000000000 -0400 13231 13191 @@ -0,0 +1,483 @@ 13232 13192 +/* … … 13714 13674 +} 13715 13675 diff -Naur silo-1.4.13.orig/libext2fs/imager.c silo-1.4.13/libext2fs/imager.c 13716 --- silo-1.4.13.orig/libext2fs/imager.c 1969-12-31 1 6:00:00.000000000 -080013717 +++ silo-1.4.13/libext2fs/imager.c 200 6-11-02 19:21:44.224761074 -080013676 --- silo-1.4.13.orig/libext2fs/imager.c 1969-12-31 19:00:00.000000000 -0500 13677 +++ silo-1.4.13/libext2fs/imager.c 2007-04-03 17:02:53.000000000 -0400 13718 13678 @@ -0,0 +1,387 @@ 13719 13679 +/* … … 14105 14065 +} 14106 14066 diff -Naur silo-1.4.13.orig/libext2fs/ind_block.c silo-1.4.13/libext2fs/ind_block.c 14107 --- silo-1.4.13.orig/libext2fs/ind_block.c 1969-12-31 1 6:00:00.000000000 -080014108 +++ silo-1.4.13/libext2fs/ind_block.c 200 6-11-02 19:21:44.224761074 -080014067 --- silo-1.4.13.orig/libext2fs/ind_block.c 1969-12-31 19:00:00.000000000 -0500 14068 +++ silo-1.4.13/libext2fs/ind_block.c 2007-04-03 17:02:53.000000000 -0400 14109 14069 @@ -0,0 +1,66 @@ 14110 14070 +/* … … 14175 14135 + 14176 14136 diff -Naur silo-1.4.13.orig/libext2fs/initialize.c silo-1.4.13/libext2fs/initialize.c 14177 --- silo-1.4.13.orig/libext2fs/initialize.c 1969-12-31 1 6:00:00.000000000 -080014178 +++ silo-1.4.13/libext2fs/initialize.c 200 6-11-02 19:21:44.224761074 -080014137 --- silo-1.4.13.orig/libext2fs/initialize.c 1969-12-31 19:00:00.000000000 -0500 14138 +++ silo-1.4.13/libext2fs/initialize.c 2007-04-03 17:02:53.000000000 -0400 14179 14139 @@ -0,0 +1,387 @@ 14180 14140 +/* … … 14566 14526 +} 14567 14527 diff -Naur silo-1.4.13.orig/libext2fs/inline.c silo-1.4.13/libext2fs/inline.c 14568 --- silo-1.4.13.orig/libext2fs/inline.c 1969-12-31 1 6:00:00.000000000 -080014569 +++ silo-1.4.13/libext2fs/inline.c 200 6-11-02 19:21:44.224761074 -080014528 --- silo-1.4.13.orig/libext2fs/inline.c 1969-12-31 19:00:00.000000000 -0500 14529 +++ silo-1.4.13/libext2fs/inline.c 2007-04-03 17:02:53.000000000 -0400 14570 14530 @@ -0,0 +1,32 @@ 14571 14531 +/* … … 14602 14562 + 14603 14563 diff -Naur silo-1.4.13.orig/libext2fs/inode.c silo-1.4.13/libext2fs/inode.c 14604 --- silo-1.4.13.orig/libext2fs/inode.c 1969-12-31 1 6:00:00.000000000 -080014605 +++ silo-1.4.13/libext2fs/inode.c 200 6-11-02 19:21:44.228760941 -080014564 --- silo-1.4.13.orig/libext2fs/inode.c 1969-12-31 19:00:00.000000000 -0500 14565 +++ silo-1.4.13/libext2fs/inode.c 2007-04-03 17:02:53.000000000 -0400 14606 14566 @@ -0,0 +1,794 @@ 14607 14567 +/* … … 15400 15360 + 15401 15361 diff -Naur silo-1.4.13.orig/libext2fs/inode_io.c silo-1.4.13/libext2fs/inode_io.c 15402 --- silo-1.4.13.orig/libext2fs/inode_io.c 1969-12-31 1 6:00:00.000000000 -080015403 +++ silo-1.4.13/libext2fs/inode_io.c 200 6-11-02 19:21:44.228760941 -080015362 --- silo-1.4.13.orig/libext2fs/inode_io.c 1969-12-31 19:00:00.000000000 -0500 15363 +++ silo-1.4.13/libext2fs/inode_io.c 2007-04-03 17:02:53.000000000 -0400 15404 15364 @@ -0,0 +1,270 @@ 15405 15365 +/* … … 15674 15634 + 15675 15635 diff -Naur silo-1.4.13.orig/libext2fs/io_manager.c silo-1.4.13/libext2fs/io_manager.c 15676 --- silo-1.4.13.orig/libext2fs/io_manager.c 1969-12-31 1 6:00:00.000000000 -080015677 +++ silo-1.4.13/libext2fs/io_manager.c 200 6-11-02 19:21:44.228760941 -080015636 --- silo-1.4.13.orig/libext2fs/io_manager.c 1969-12-31 19:00:00.000000000 -0500 15637 +++ silo-1.4.13/libext2fs/io_manager.c 2007-04-03 17:02:53.000000000 -0400 15678 15638 @@ -0,0 +1,69 @@ 15679 15639 +/* … … 15747 15707 +} 15748 15708 diff -Naur silo-1.4.13.orig/libext2fs/irel.h silo-1.4.13/libext2fs/irel.h 15749 --- silo-1.4.13.orig/libext2fs/irel.h 1969-12-31 1 6:00:00.000000000 -080015750 +++ silo-1.4.13/libext2fs/irel.h 200 6-11-02 19:21:44.228760941 -080015709 --- silo-1.4.13.orig/libext2fs/irel.h 1969-12-31 19:00:00.000000000 -0500 15710 +++ silo-1.4.13/libext2fs/irel.h 2007-04-03 17:02:53.000000000 -0400 15751 15711 @@ -0,0 +1,114 @@ 15752 15712 +/* … … 15865 15825 +#define ext2fs_irel_free(irel) ((irel)->free((irel))) 15866 15826 diff -Naur silo-1.4.13.orig/libext2fs/irel_ma.c silo-1.4.13/libext2fs/irel_ma.c 15867 --- silo-1.4.13.orig/libext2fs/irel_ma.c 1969-12-31 1 6:00:00.000000000 -080015868 +++ silo-1.4.13/libext2fs/irel_ma.c 200 6-11-02 19:21:44.228760941 -080015827 --- silo-1.4.13.orig/libext2fs/irel_ma.c 1969-12-31 19:00:00.000000000 -0500 15828 +++ silo-1.4.13/libext2fs/irel_ma.c 2007-04-03 17:02:53.000000000 -0400 15869 15829 @@ -0,0 +1,372 @@ 15870 15830 +/* … … 16241 16201 +} 16242 16202 diff -Naur silo-1.4.13.orig/libext2fs/ismounted.c silo-1.4.13/libext2fs/ismounted.c 16243 --- silo-1.4.13.orig/libext2fs/ismounted.c 1969-12-31 1 6:00:00.000000000 -080016244 +++ silo-1.4.13/libext2fs/ismounted.c 200 6-11-02 19:21:44.228760941 -080016203 --- silo-1.4.13.orig/libext2fs/ismounted.c 1969-12-31 19:00:00.000000000 -0500 16204 +++ silo-1.4.13/libext2fs/ismounted.c 2007-04-03 17:02:53.000000000 -0400 16245 16205 @@ -0,0 +1,377 @@ 16246 16206 +/* … … 16622 16582 +#endif /* DEBUG */ 16623 16583 diff -Naur silo-1.4.13.orig/libext2fs/jfs_compat.h silo-1.4.13/libext2fs/jfs_compat.h 16624 --- silo-1.4.13.orig/libext2fs/jfs_compat.h 1969-12-31 1 6:00:00.000000000 -080016625 +++ silo-1.4.13/libext2fs/jfs_compat.h 200 6-11-02 19:21:44.228760941 -080016584 --- silo-1.4.13.orig/libext2fs/jfs_compat.h 1969-12-31 19:00:00.000000000 -0500 16585 +++ silo-1.4.13/libext2fs/jfs_compat.h 2007-04-03 17:02:53.000000000 -0400 16626 16586 @@ -0,0 +1,67 @@ 16627 16587 + … … 16693 16653 +#endif /* _JFS_COMPAT_H */ 16694 16654 diff -Naur silo-1.4.13.orig/libext2fs/jfs_dat.h silo-1.4.13/libext2fs/jfs_dat.h 16695 --- silo-1.4.13.orig/libext2fs/jfs_dat.h 1969-12-31 1 6:00:00.000000000 -080016696 +++ silo-1.4.13/libext2fs/jfs_dat.h 200 6-11-02 19:21:44.228760941 -080016655 --- silo-1.4.13.orig/libext2fs/jfs_dat.h 1969-12-31 19:00:00.000000000 -0500 16656 +++ silo-1.4.13/libext2fs/jfs_dat.h 2007-04-03 17:02:53.000000000 -0400 16697 16657 @@ -0,0 +1,64 @@ 16698 16658 +/* … … 16761 16721 + 16762 16722 diff -Naur silo-1.4.13.orig/libext2fs/jfs_user.h silo-1.4.13/libext2fs/jfs_user.h 16763 --- silo-1.4.13.orig/libext2fs/jfs_user.h 1969-12-31 1 6:00:00.000000000 -080016764 +++ silo-1.4.13/libext2fs/jfs_user.h 200 6-11-02 19:21:44.228760941 -080016723 --- silo-1.4.13.orig/libext2fs/jfs_user.h 1969-12-31 19:00:00.000000000 -0500 16724 +++ silo-1.4.13/libext2fs/jfs_user.h 2007-04-03 17:02:53.000000000 -0400 16765 16725 @@ -0,0 +1,8 @@ 16766 16726 +#ifndef _JFS_USER_H … … 16773 16733 +#endif /* _JFS_USER_H */ 16774 16734 diff -Naur silo-1.4.13.orig/libext2fs/kernel-jbd.h silo-1.4.13/libext2fs/kernel-jbd.h 16775 --- silo-1.4.13.orig/libext2fs/kernel-jbd.h 1969-12-31 1 6:00:00.000000000 -080016776 +++ silo-1.4.13/libext2fs/kernel-jbd.h 200 6-11-02 19:21:44.228760941 -080016735 --- silo-1.4.13.orig/libext2fs/kernel-jbd.h 1969-12-31 19:00:00.000000000 -0500 16736 +++ silo-1.4.13/libext2fs/kernel-jbd.h 2007-04-03 17:02:53.000000000 -0400 16777 16737 @@ -0,0 +1,910 @@ 16778 16738 +/* … … 17687 17647 +#endif /* _LINUX_JBD_H */ 17688 17648 diff -Naur silo-1.4.13.orig/libext2fs/kernel-list.h silo-1.4.13/libext2fs/kernel-list.h 17689 --- silo-1.4.13.orig/libext2fs/kernel-list.h 1969-12-31 1 6:00:00.000000000 -080017690 +++ silo-1.4.13/libext2fs/kernel-list.h 200 6-11-02 19:21:44.232760807 -080017649 --- silo-1.4.13.orig/libext2fs/kernel-list.h 1969-12-31 19:00:00.000000000 -0500 17650 +++ silo-1.4.13/libext2fs/kernel-list.h 2007-04-03 17:02:53.000000000 -0400 17691 17651 @@ -0,0 +1,112 @@ 17692 17652 +#ifndef _LINUX_LIST_H … … 17803 17763 +#endif 17804 17764 diff -Naur silo-1.4.13.orig/libext2fs/link.c silo-1.4.13/libext2fs/link.c 17805 --- silo-1.4.13.orig/libext2fs/link.c 1969-12-31 1 6:00:00.000000000 -080017806 +++ silo-1.4.13/libext2fs/link.c 200 6-11-02 19:21:44.232760807 -080017765 --- silo-1.4.13.orig/libext2fs/link.c 1969-12-31 19:00:00.000000000 -0500 17766 +++ silo-1.4.13/libext2fs/link.c 2007-04-03 17:02:53.000000000 -0400 17807 17767 @@ -0,0 +1,134 @@ 17808 17768 +/* … … 17941 17901 +} 17942 17902 diff -Naur silo-1.4.13.orig/libext2fs/llseek.c silo-1.4.13/libext2fs/llseek.c 17943 --- silo-1.4.13.orig/libext2fs/llseek.c 1969-12-31 1 6:00:00.000000000 -080017944 +++ silo-1.4.13/libext2fs/llseek.c 200 6-11-02 19:21:44.232760807 -080017903 --- silo-1.4.13.orig/libext2fs/llseek.c 1969-12-31 19:00:00.000000000 -0500 17904 +++ silo-1.4.13/libext2fs/llseek.c 2007-04-03 17:02:53.000000000 -0400 17945 17905 @@ -0,0 +1,138 @@ 17946 17906 +/* … … 18083 18043 + 18084 18044 diff -Naur silo-1.4.13.orig/libext2fs/lookup.c silo-1.4.13/libext2fs/lookup.c 18085 --- silo-1.4.13.orig/libext2fs/lookup.c 1969-12-31 1 6:00:00.000000000 -080018086 +++ silo-1.4.13/libext2fs/lookup.c 200 6-11-02 19:21:44.232760807 -080018045 --- silo-1.4.13.orig/libext2fs/lookup.c 1969-12-31 19:00:00.000000000 -0500 18046 +++ silo-1.4.13/libext2fs/lookup.c 2007-04-03 17:02:53.000000000 -0400 18087 18047 @@ -0,0 +1,69 @@ 18088 18048 +/* … … 18155 18115 + 18156 18116 + 18117 diff -Naur silo-1.4.13.orig/libext2fs/Makefile silo-1.4.13/libext2fs/Makefile 18118 --- silo-1.4.13.orig/libext2fs/Makefile 1969-12-31 19:00:00.000000000 -0500 18119 +++ silo-1.4.13/libext2fs/Makefile 2007-04-03 17:02:53.000000000 -0400 18120 @@ -0,0 +1,21 @@ 18121 + 18122 +include ../Rules.make 18123 + 18124 +DEFS = -DLOCALEDIR=\"$(localedir)\" -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DENABLE_HTREE=1 -DENABLE_SWAPFS=1 -DPACKAGE=\"e2fsprogs\" -DVERSION=\"0.14.1\" -DHAVE_LONG_LONG=1 -DHAVE_LONG_DOUBLE=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 -DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 -DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=1 -DHAVE_UNSIGNED_LONG_LONG=1 -DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_ARGZ_H=1 -DHAVE_LIMITS_H=1 -DHAVE_LOCALE_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_MALLOC_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_PUTENV=1 -DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_STPCPY=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 -DHAVE_WCSLEN=1 -DHAVE___ARGZ_COUNT=1 -DHAVE___ARGZ_STRINGIFY=1 -DHAVE___ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL__SNPRINTF=0 -DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_FEOF_UNLOCKED=1 -DHAVE_DECL_FGETS_UNLOCKED=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_ICONV=1 -DICONV_CONST= -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDARG_H=1 -DHAVE_STDINT_H=1 -DHAVE_ERRNO_H=1 -DHAVE_MALLOC_H=1 -DHAVE_MNTENT_H=1 -DHAVE_PATHS_H=1 -DHAVE_DIRENT_H=1 -DHAVE_GETOPT_H=1 -DHAVE_SETJMP_H=1 -DHAVE_SIGNAL_H=1 -DHAVE_TERMIOS_H=1 -DHAVE_LINUX_FD_H=1 -DHAVE_LINUX_MAJOR_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_SYS_QUEUE_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_SYSMACROS_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_NETINET_IN_H=1 -DHAVE_SYS_MOUNT_H=1 -DHAVE_NET_IF_H=1 -DHAVE_VPRINTF=1 -DHAVE_RECLEN_DIRENT=1 -DHAVE_TYPE_SSIZE_T=1 -DHAVE_LSEEK64_PROTOTYPE=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -DHAVE_INTTYPES_H=1 -DHAVE_INTPTR_T=1 -DHAVE_GETRUSAGE=1 -DHAVE_LLSEEK=1 -DHAVE_LSEEK64=1 -DHAVE_OPEN64=1 -DHAVE_STRTOULL=1 -DHAVE_STRCASECMP=1 -DHAVE_SRANDOM=1 -DHAVE_FCHOWN=1 -DHAVE_MALLINFO=1 -DHAVE_FDATASYNC=1 -DHAVE_STRNLEN=1 -DHAVE_STRPTIME=1 -DHAVE_SYSCONF=1 -DHAVE_PATHCONF=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_MEMALIGN=1 -DHAVE_VALLOC=1 -DHAVE___SECURE_GETENV=1 -DHAVE_PRCTL=1 -DHAVE_DLOPEN=1 -DHAVE_EXT2_IOCTLS=1 18125 + 18126 +DEBUGFS_LIB_OBJS = inode_io.o namei.o write_bb_file.o 18127 +RESIZE_LIB_OBJS = rs_bitmap.o dupfs.o test_io.o 18128 +E2IMAGE_LIB_OBJS = imager.o 18129 +OBJS= $(DEBUGFS_LIB_OBJS) $(RESIZE_LIB_OBJS) $(E2IMAGE_LIB_OBJS) ext2_err.o alloc.o alloc_sb.o alloc_stats.o alloc_tables.o badblocks.o bb_inode.o bitmaps.o bitops.o block.o bmap.o check_desc.o closefs.o dblist.o dblist_dir.o dirblock.o dirhash.o dir_iterate.o expanddir.o ext_attr.o finddev.o flushb.o freefs.o gen_bitmap.o get_pathname.o getsize.o getsectsize.o icount.o ind_block.o initialize.o inline.o inode.o io_manager.o ismounted.o link.o llseek.o lookup.o mkdir.o mkjournal.o native.o newdir.o openfs.o read_bb.o read_bb_file.o res_gdt.o rw_bitmaps.o swapfs.o unix_io.o unlink.o valid_blk.o version.o 18130 + 18131 +all: libext2fs.a 18132 + 18133 +libext2fs.a: $(OBJS) 18134 + $(RM) libext2fs.a 18135 + $(AR) rc libext2fs.a $(OBJS) 18136 + 18137 +clean: 18138 + $(RM) -f libext2fs.a $(OBJS) 18139 + 18140 +.c.o: 18141 + $(CC-SILO) $(CFLAGS) $(DEFS) -c $< -o $@ 18157 18142 diff -Naur silo-1.4.13.orig/libext2fs/mkdir.c silo-1.4.13/libext2fs/mkdir.c 18158 --- silo-1.4.13.orig/libext2fs/mkdir.c 1969-12-31 1 6:00:00.000000000 -080018159 +++ silo-1.4.13/libext2fs/mkdir.c 200 6-11-02 19:21:44.232760807 -080018143 --- silo-1.4.13.orig/libext2fs/mkdir.c 1969-12-31 19:00:00.000000000 -0500 18144 +++ silo-1.4.13/libext2fs/mkdir.c 2007-04-03 17:02:53.000000000 -0400 18160 18145 @@ -0,0 +1,142 @@ 18161 18146 +/* … … 18302 18287 + 18303 18288 diff -Naur silo-1.4.13.orig/libext2fs/mkjournal.c silo-1.4.13/libext2fs/mkjournal.c 18304 --- silo-1.4.13.orig/libext2fs/mkjournal.c 1969-12-31 1 6:00:00.000000000 -080018305 +++ silo-1.4.13/libext2fs/mkjournal.c 200 6-11-02 19:21:44.232760807 -080018289 --- silo-1.4.13.orig/libext2fs/mkjournal.c 1969-12-31 19:00:00.000000000 -0500 18290 +++ silo-1.4.13/libext2fs/mkjournal.c 2007-04-03 17:02:53.000000000 -0400 18306 18291 @@ -0,0 +1,425 @@ 18307 18292 +/* … … 18731 18716 +#endif 18732 18717 diff -Naur silo-1.4.13.orig/libext2fs/namei.c silo-1.4.13/libext2fs/namei.c 18733 --- silo-1.4.13.orig/libext2fs/namei.c 1969-12-31 1 6:00:00.000000000 -080018734 +++ silo-1.4.13/libext2fs/namei.c 200 6-11-02 19:21:44.232760807 -080018718 --- silo-1.4.13.orig/libext2fs/namei.c 1969-12-31 19:00:00.000000000 -0500 18719 +++ silo-1.4.13/libext2fs/namei.c 2007-04-03 17:02:53.000000000 -0400 18735 18720 @@ -0,0 +1,205 @@ 18736 18721 +/* … … 18940 18925 + 18941 18926 diff -Naur silo-1.4.13.orig/libext2fs/native.c silo-1.4.13/libext2fs/native.c 18942 --- silo-1.4.13.orig/libext2fs/native.c 1969-12-31 1 6:00:00.000000000 -080018943 +++ silo-1.4.13/libext2fs/native.c 200 6-11-02 19:21:44.232760807 -080018927 --- silo-1.4.13.orig/libext2fs/native.c 1969-12-31 19:00:00.000000000 -0500 18928 +++ silo-1.4.13/libext2fs/native.c 2007-04-03 17:02:53.000000000 -0400 18944 18929 @@ -0,0 +1,27 @@ 18945 18930 +/* … … 18971 18956 + 18972 18957 diff -Naur silo-1.4.13.orig/libext2fs/newdir.c silo-1.4.13/libext2fs/newdir.c 18973 --- silo-1.4.13.orig/libext2fs/newdir.c 1969-12-31 1 6:00:00.000000000 -080018974 +++ silo-1.4.13/libext2fs/newdir.c 200 6-11-02 19:21:44.232760807 -080018958 --- silo-1.4.13.orig/libext2fs/newdir.c 1969-12-31 19:00:00.000000000 -0500 18959 +++ silo-1.4.13/libext2fs/newdir.c 2007-04-03 17:02:53.000000000 -0400 18975 18960 @@ -0,0 +1,72 @@ 18976 18961 +/* … … 19047 19032 +} 19048 19033 diff -Naur silo-1.4.13.orig/libext2fs/nt_io.c silo-1.4.13/libext2fs/nt_io.c 19049 --- silo-1.4.13.orig/libext2fs/nt_io.c 1969-12-31 1 6:00:00.000000000 -080019050 +++ silo-1.4.13/libext2fs/nt_io.c 200 6-11-02 19:21:44.232760807 -080019034 --- silo-1.4.13.orig/libext2fs/nt_io.c 1969-12-31 19:00:00.000000000 -0500 19035 +++ silo-1.4.13/libext2fs/nt_io.c 2007-04-03 17:02:53.000000000 -0400 19051 19036 @@ -0,0 +1,1513 @@ 19052 19037 +/* … … 20564 20549 + 20565 20550 diff -Naur silo-1.4.13.orig/libext2fs/openfs.c silo-1.4.13/libext2fs/openfs.c 20566 --- silo-1.4.13.orig/libext2fs/openfs.c 1969-12-31 1 6:00:00.000000000 -080020567 +++ silo-1.4.13/libext2fs/openfs.c 200 6-11-02 19:21:44.232760807 -080020551 --- silo-1.4.13.orig/libext2fs/openfs.c 1969-12-31 19:00:00.000000000 -0500 20552 +++ silo-1.4.13/libext2fs/openfs.c 2007-04-03 17:02:53.000000000 -0400 20568 20553 @@ -0,0 +1,326 @@ 20569 20554 +/* … … 20894 20879 +} 20895 20880 diff -Naur silo-1.4.13.orig/libext2fs/read_bb.c silo-1.4.13/libext2fs/read_bb.c 20896 --- silo-1.4.13.orig/libext2fs/read_bb.c 1969-12-31 1 6:00:00.000000000 -080020897 +++ silo-1.4.13/libext2fs/read_bb.c 200 6-11-02 19:21:44.236760673 -080020881 --- silo-1.4.13.orig/libext2fs/read_bb.c 1969-12-31 19:00:00.000000000 -0500 20882 +++ silo-1.4.13/libext2fs/read_bb.c 2007-04-03 17:02:53.000000000 -0400 20898 20883 @@ -0,0 +1,97 @@ 20899 20884 +/* … … 20995 20980 + 20996 20981 diff -Naur silo-1.4.13.orig/libext2fs/read_bb_file.c silo-1.4.13/libext2fs/read_bb_file.c 20997 --- silo-1.4.13.orig/libext2fs/read_bb_file.c 1969-12-31 1 6:00:00.000000000 -080020998 +++ silo-1.4.13/libext2fs/read_bb_file.c 200 6-11-02 19:21:44.236760673 -080020982 --- silo-1.4.13.orig/libext2fs/read_bb_file.c 1969-12-31 19:00:00.000000000 -0500 20983 +++ silo-1.4.13/libext2fs/read_bb_file.c 2007-04-03 17:02:53.000000000 -0400 20999 20984 @@ -0,0 +1,97 @@ 21000 20985 +/* … … 21096 21081 + 21097 21082 diff -Naur silo-1.4.13.orig/libext2fs/res_gdt.c silo-1.4.13/libext2fs/res_gdt.c 21098 --- silo-1.4.13.orig/libext2fs/res_gdt.c 1969-12-31 1 6:00:00.000000000 -080021099 +++ silo-1.4.13/libext2fs/res_gdt.c 200 6-11-02 19:21:44.236760673 -080021083 --- silo-1.4.13.orig/libext2fs/res_gdt.c 1969-12-31 19:00:00.000000000 -0500 21084 +++ silo-1.4.13/libext2fs/res_gdt.c 2007-04-03 17:02:53.000000000 -0400 21100 21085 @@ -0,0 +1,220 @@ 21101 21086 +/* … … 21320 21305 + 21321 21306 diff -Naur silo-1.4.13.orig/libext2fs/rs_bitmap.c silo-1.4.13/libext2fs/rs_bitmap.c 21322 --- silo-1.4.13.orig/libext2fs/rs_bitmap.c 1969-12-31 1 6:00:00.000000000 -080021323 +++ silo-1.4.13/libext2fs/rs_bitmap.c 200 6-11-02 19:21:44.236760673 -080021307 --- silo-1.4.13.orig/libext2fs/rs_bitmap.c 1969-12-31 19:00:00.000000000 -0500 21308 +++ silo-1.4.13/libext2fs/rs_bitmap.c 2007-04-03 17:02:53.000000000 -0400 21324 21309 @@ -0,0 +1,106 @@ 21325 21310 +/* … … 21430 21415 + 21431 21416 diff -Naur silo-1.4.13.orig/libext2fs/rw_bitmaps.c silo-1.4.13/libext2fs/rw_bitmaps.c 21432 --- silo-1.4.13.orig/libext2fs/rw_bitmaps.c 1969-12-31 1 6:00:00.000000000 -080021433 +++ silo-1.4.13/libext2fs/rw_bitmaps.c 200 6-11-02 19:21:44.236760673 -080021417 --- silo-1.4.13.orig/libext2fs/rw_bitmaps.c 1969-12-31 19:00:00.000000000 -0500 21418 +++ silo-1.4.13/libext2fs/rw_bitmaps.c 2007-04-03 17:02:53.000000000 -0400 21434 21419 @@ -0,0 +1,300 @@ 21435 21420 +/* … … 21734 21719 + 21735 21720 diff -Naur silo-1.4.13.orig/libext2fs/sparse.c silo-1.4.13/libext2fs/sparse.c 21736 --- silo-1.4.13.orig/libext2fs/sparse.c 1969-12-31 1 6:00:00.000000000 -080021737 +++ silo-1.4.13/libext2fs/sparse.c 200 6-11-02 19:21:44.236760673 -080021721 --- silo-1.4.13.orig/libext2fs/sparse.c 1969-12-31 19:00:00.000000000 -0500 21722 +++ silo-1.4.13/libext2fs/sparse.c 2007-04-03 17:02:53.000000000 -0400 21738 21723 @@ -0,0 +1,78 @@ 21739 21724 +/* … … 21816 21801 +} 21817 21802 diff -Naur silo-1.4.13.orig/libext2fs/swapfs.c silo-1.4.13/libext2fs/swapfs.c 21818 --- silo-1.4.13.orig/libext2fs/swapfs.c 1969-12-31 1 6:00:00.000000000 -080021819 +++ silo-1.4.13/libext2fs/swapfs.c 200 6-11-02 19:21:44.236760673 -080021803 --- silo-1.4.13.orig/libext2fs/swapfs.c 1969-12-31 19:00:00.000000000 -0500 21804 +++ silo-1.4.13/libext2fs/swapfs.c 2007-04-03 17:02:53.000000000 -0400 21820 21805 @@ -0,0 +1,237 @@ 21821 21806 +/* … … 22057 22042 +#endif 22058 22043 diff -Naur silo-1.4.13.orig/libext2fs/test_io.c silo-1.4.13/libext2fs/test_io.c 22059 --- silo-1.4.13.orig/libext2fs/test_io.c 1969-12-31 1 6:00:00.000000000 -080022060 +++ silo-1.4.13/libext2fs/test_io.c 200 6-11-02 19:21:44.244760406 -080022044 --- silo-1.4.13.orig/libext2fs/test_io.c 1969-12-31 19:00:00.000000000 -0500 22045 +++ silo-1.4.13/libext2fs/test_io.c 2007-04-03 17:02:53.000000000 -0400 22061 22046 @@ -0,0 +1,411 @@ 22062 22047 +/* … … 22472 22457 +} 22473 22458 diff -Naur silo-1.4.13.orig/libext2fs/tst_badblocks.c silo-1.4.13/libext2fs/tst_badblocks.c 22474 --- silo-1.4.13.orig/libext2fs/tst_badblocks.c 1969-12-31 1 6:00:00.000000000 -080022475 +++ silo-1.4.13/libext2fs/tst_badblocks.c 200 6-11-02 19:21:44.244760406 -080022459 --- silo-1.4.13.orig/libext2fs/tst_badblocks.c 1969-12-31 19:00:00.000000000 -0500 22460 +++ silo-1.4.13/libext2fs/tst_badblocks.c 2007-04-03 17:02:53.000000000 -0400 22476 22461 @@ -0,0 +1,293 @@ 22477 22462 +/* … … 22769 22754 +} 22770 22755 diff -Naur silo-1.4.13.orig/libext2fs/tst_bitops.c silo-1.4.13/libext2fs/tst_bitops.c 22771 --- silo-1.4.13.orig/libext2fs/tst_bitops.c 1969-12-31 1 6:00:00.000000000 -080022772 +++ silo-1.4.13/libext2fs/tst_bitops.c 200 6-11-02 19:21:44.244760406 -080022756 --- silo-1.4.13.orig/libext2fs/tst_bitops.c 1969-12-31 19:00:00.000000000 -0500 22757 +++ silo-1.4.13/libext2fs/tst_bitops.c 2007-04-03 17:02:53.000000000 -0400 22773 22758 @@ -0,0 +1,44 @@ 22774 22759 +/* … … 22817 22802 +} 22818 22803 diff -Naur silo-1.4.13.orig/libext2fs/tst_byteswap.c silo-1.4.13/libext2fs/tst_byteswap.c 22819 --- silo-1.4.13.orig/libext2fs/tst_byteswap.c 1969-12-31 1 6:00:00.000000000 -080022820 +++ silo-1.4.13/libext2fs/tst_byteswap.c 200 6-11-02 19:21:44.244760406 -080022804 --- silo-1.4.13.orig/libext2fs/tst_byteswap.c 1969-12-31 19:00:00.000000000 -0500 22805 +++ silo-1.4.13/libext2fs/tst_byteswap.c 2007-04-03 17:02:53.000000000 -0400 22821 22806 @@ -0,0 +1,92 @@ 22822 22807 +/* … … 22913 22898 +} 22914 22899 diff -Naur silo-1.4.13.orig/libext2fs/tst_getsectsize.c silo-1.4.13/libext2fs/tst_getsectsize.c 22915 --- silo-1.4.13.orig/libext2fs/tst_getsectsize.c 1969-12-31 1 6:00:00.000000000 -080022916 +++ silo-1.4.13/libext2fs/tst_getsectsize.c 200 6-11-02 19:21:44.244760406 -080022900 --- silo-1.4.13.orig/libext2fs/tst_getsectsize.c 1969-12-31 19:00:00.000000000 -0500 22901 +++ silo-1.4.13/libext2fs/tst_getsectsize.c 2007-04-03 17:02:53.000000000 -0400 22917 22902 @@ -0,0 +1,47 @@ 22918 22903 +/* … … 22964 22949 +} 22965 22950 diff -Naur silo-1.4.13.orig/libext2fs/tst_getsize.c silo-1.4.13/libext2fs/tst_getsize.c 22966 --- silo-1.4.13.orig/libext2fs/tst_getsize.c 1969-12-31 1 6:00:00.000000000 -080022967 +++ silo-1.4.13/libext2fs/tst_getsize.c 200 6-11-02 19:21:44.244760406 -080022951 --- silo-1.4.13.orig/libext2fs/tst_getsize.c 1969-12-31 19:00:00.000000000 -0500 22952 +++ silo-1.4.13/libext2fs/tst_getsize.c 2007-04-03 17:02:53.000000000 -0400 22968 22953 @@ -0,0 +1,44 @@ 22969 22954 +/* … … 23012 22997 +} 23013 22998 diff -Naur silo-1.4.13.orig/libext2fs/tst_iscan.c silo-1.4.13/libext2fs/tst_iscan.c 23014 --- silo-1.4.13.orig/libext2fs/tst_iscan.c 1969-12-31 1 6:00:00.000000000 -080023015 +++ silo-1.4.13/libext2fs/tst_iscan.c 200 6-11-02 19:21:44.252760139 -080022999 --- silo-1.4.13.orig/libext2fs/tst_iscan.c 1969-12-31 19:00:00.000000000 -0500 23000 +++ silo-1.4.13/libext2fs/tst_iscan.c 2007-04-03 17:02:53.000000000 -0400 23016 23001 @@ -0,0 +1,218 @@ 23017 23002 +/* … … 23234 23219 + 23235 23220 diff -Naur silo-1.4.13.orig/libext2fs/unix_io.c silo-1.4.13/libext2fs/unix_io.c 23236 --- silo-1.4.13.orig/libext2fs/unix_io.c 1969-12-31 1 6:00:00.000000000 -080023237 +++ silo-1.4.13/libext2fs/unix_io.c 200 6-11-02 19:21:44.252760139 -080023221 --- silo-1.4.13.orig/libext2fs/unix_io.c 1969-12-31 19:00:00.000000000 -0500 23222 +++ silo-1.4.13/libext2fs/unix_io.c 2007-04-03 17:02:53.000000000 -0400 23238 23223 @@ -0,0 +1,710 @@ 23239 23224 +/* … … 23948 23933 +} 23949 23934 diff -Naur silo-1.4.13.orig/libext2fs/unlink.c silo-1.4.13/libext2fs/unlink.c 23950 --- silo-1.4.13.orig/libext2fs/unlink.c 1969-12-31 1 6:00:00.000000000 -080023951 +++ silo-1.4.13/libext2fs/unlink.c 200 6-11-02 19:21:44.252760139 -080023935 --- silo-1.4.13.orig/libext2fs/unlink.c 1969-12-31 19:00:00.000000000 -0500 23936 +++ silo-1.4.13/libext2fs/unlink.c 2007-04-03 17:02:53.000000000 -0400 23952 23937 @@ -0,0 +1,99 @@ 23953 23938 +/* … … 24051 24036 + 24052 24037 diff -Naur silo-1.4.13.orig/libext2fs/valid_blk.c silo-1.4.13/libext2fs/valid_blk.c 24053 --- silo-1.4.13.orig/libext2fs/valid_blk.c 1969-12-31 1 6:00:00.000000000 -080024054 +++ silo-1.4.13/libext2fs/valid_blk.c 200 6-11-02 19:21:44.256760005 -080024038 --- silo-1.4.13.orig/libext2fs/valid_blk.c 1969-12-31 19:00:00.000000000 -0500 24039 +++ silo-1.4.13/libext2fs/valid_blk.c 2007-04-03 17:02:53.000000000 -0400 24055 24040 @@ -0,0 +1,56 @@ 24056 24041 +/* … … 24111 24096 +} 24112 24097 diff -Naur silo-1.4.13.orig/libext2fs/version.c silo-1.4.13/libext2fs/version.c 24113 --- silo-1.4.13.orig/libext2fs/version.c 1969-12-31 1 6:00:00.000000000 -080024114 +++ silo-1.4.13/libext2fs/version.c 200 6-11-02 19:21:44.256760005 -080024098 --- silo-1.4.13.orig/libext2fs/version.c 1969-12-31 19:00:00.000000000 -0500 24099 +++ silo-1.4.13/libext2fs/version.c 2007-04-03 17:02:53.000000000 -0400 24115 24100 @@ -0,0 +1,52 @@ 24116 24101 +/* … … 24167 24152 +} 24168 24153 diff -Naur silo-1.4.13.orig/libext2fs/version.h silo-1.4.13/libext2fs/version.h 24169 --- silo-1.4.13.orig/libext2fs/version.h 1969-12-31 1 6:00:00.000000000 -080024170 +++ silo-1.4.13/libext2fs/version.h 200 6-11-02 19:21:44.256760005 -080024154 --- silo-1.4.13.orig/libext2fs/version.h 1969-12-31 19:00:00.000000000 -0500 24155 +++ silo-1.4.13/libext2fs/version.h 2007-04-03 17:02:53.000000000 -0400 24171 24156 @@ -0,0 +1,11 @@ 24172 24157 +/* … … 24182 24167 +#define E2FSPROGS_DATE "30-Jun-2005" 24183 24168 diff -Naur silo-1.4.13.orig/libext2fs/write_bb_file.c silo-1.4.13/libext2fs/write_bb_file.c 24184 --- silo-1.4.13.orig/libext2fs/write_bb_file.c 1969-12-31 1 6:00:00.000000000 -080024185 +++ silo-1.4.13/libext2fs/write_bb_file.c 200 6-11-02 19:21:44.256760005 -080024169 --- silo-1.4.13.orig/libext2fs/write_bb_file.c 1969-12-31 19:00:00.000000000 -0500 24170 +++ silo-1.4.13/libext2fs/write_bb_file.c 2007-04-03 17:02:53.000000000 -0400 24186 24171 @@ -0,0 +1,34 @@ 24187 24172 +/* … … 24219 24204 + return 0; 24220 24205 +} 24221 diff -Naur silo-1.4.13.orig/second/Makefile silo-1.4.13/second/Makefile 24222 --- silo-1.4.13.orig/second/Makefile 2006-06-01 10:24:53.000000000 -0700 24223 +++ silo-1.4.13/second/Makefile 2006-11-02 19:21:44.260759872 -0800 24224 @@ -27,10 +27,10 @@ 24225 LDFLAGS_LARGE=-N -Ttext $(LARGE_RELOC) 24206 diff -Naur silo-1.4.13.orig/Makefile silo-1.4.13/Makefile 24207 --- silo-1.4.13.orig/Makefile 2006-06-01 13:24:53.000000000 -0400 24208 +++ silo-1.4.13/Makefile 2007-04-03 17:02:53.000000000 -0400 24209 @@ -3,7 +3,7 @@ 24226 24210 24227 .c.o: 24228 - $(CC) $(CFLAGS) -c $*.c -o $@ 24229 + $(CC-SILO) $(CFLAGS) -c $*.c -o $@ 24211 # These only get built on Linux 24212 ifeq ($(OPSYS),Linux) 24213 - SUBDIRS = common first second first-isofs tilo 24214 + SUBDIRS = common first libext2fs second first-isofs tilo 24215 MANPAGES = maketilo.1 tilo.1 24216 endif 24230 24217 24231 .S.o: 24232 - $(CC) $(CFLAGS) -c $*.S -o $@ 24233 + $(CC-SILO) $(CFLAGS) -c $*.S -o $@ 24218 diff -Naur silo-1.4.13.orig/Rules.make silo-1.4.13/Rules.make 24219 --- silo-1.4.13.orig/Rules.make 2006-06-21 03:51:03.000000000 -0400 24220 +++ silo-1.4.13/Rules.make 2007-04-03 17:02:53.000000000 -0400 24221 @@ -1,12 +1,14 @@ 24222 VERSION=1.4.13 24223 IMGVERSION=0.99 24224 RM=rm -f 24225 -# We want to force 32-bit builds 24226 -CC=gcc -m32 24227 -LD=ld -m elf32_sparc 24228 -AS=as 24229 -STRIP=strip 24230 -NM=nm 24231 +CC=$(CROSS_COMPILE)gcc 24232 +CC-SILO=$(CC) -m32 -Wa,-32 -I../include/emul_32 24233 +BUILD_CC=gcc 24234 +LD=$(CROSS_COMPILE)ld -m elf32_sparc 24235 +AS=$(CROSS_COMPILE)as 24236 +STRIP=$(CROSS_COMPILE)strip 24237 +NM=$(CROSS_COMPILE)nm 24238 + 24239 ELFTOAOUT=elftoaout 24240 BIN2H=../common/bin2h 24234 24241 24235 # The ordering here is very significant. Please add new object files to OBJS5 only.24236 OBJS1 = crt0.o24237 @@ -43,8 +43,8 @@24238 OBJS4 = main.o24239 OBJS4N = mainnet.o24240 OBJS5 = cmdline.o disk.o file.o misc.o cfg.o strtol.o ranges.o timer.o \24241 - memory.o fs/libfs.a mul.o ../common/rem.o ../common/sdiv.o umul.o \24242 - ../common/stringops2.o ls.o muldi3.o24243 + memory.o fs/libfs.a ../common/rem.o ../common/sdiv.o umul.o \24244 + ../common/stringops2.o ls.o muldi3.o ../libext2fs/libext2fs.a24245 OBJS = $(OBJS1) $(OBJS2) $(OBJS3) bmark.o $(OBJS4) $(OBJS5)24246 OBJSNET = $(OBJS1) $(OBJS2N) $(OBJS3) bmark.o $(OBJS4N) $(OBJS5)24247 24248 @@ -53,18 +53,21 @@24249 # Should really switch to autoconf...24250 all: second.b silotftp.b24251 24252 +../libext2fs/libext2fs.a:24253 + @make -C ../libext2fs24254 +24255 fs/libfs.a: $(FS_OBJS)24256 $(RM) $@24257 $(AR) rc $@ $(FS_OBJS)24258 24259 second: $(OBJS) mark.o24260 - $(LD) $(LDFLAGS_SMALL) -Bstatic -o second $(OBJS) -lext2fs mark.o24261 - $(LD) $(LDFLAGS_LARGE) -Bstatic -o second2 $(OBJS) -lext2fs mark.o24262 + $(LD) $(LDFLAGS_SMALL) -Bstatic -o second $(OBJS) mark.o24263 + $(LD) $(LDFLAGS_LARGE) -Bstatic -o second2 $(OBJS) mark.o24264 $(NM) second | grep -v '*ABS*' | sort > second.map24265 24266 silotftp: $(OBJSNET) mark.o24267 - $(LD) $(LDFLAGS_SMALL) -Bstatic -o silotftp $(OBJSNET) -lext2fs mark.o24268 - $(LD) $(LDFLAGS_LARGE) -Bstatic -o silotftp2 $(OBJSNET) -lext2fs mark.o24269 + $(LD) $(LDFLAGS_SMALL) -Bstatic -o silotftp $(OBJSNET) mark.o24270 + $(LD) $(LDFLAGS_LARGE) -Bstatic -o silotftp2 $(OBJSNET) mark.o24271 $(NM) silotftp | grep -v '*ABS*' | sort > silotftp.map24272 24273 second.l: second24274 @@ -73,31 +76,31 @@24275 file.o: file.c24276 24277 decompnet.o: decomp.c24278 - $(CC) $(CFLAGS) -DTFTP -DVERSION='"$(VERSION)"' -c -o $@ $<24279 + $(CC-SILO) $(CFLAGS) -DTFTP -DVERSION='"$(VERSION)"' -c -o $@ $<24280 24281 decomp.o: decomp.c24282 - $(CC) $(CFLAGS) -DVERSION='"$(VERSION)"' -c $<24283 + $(CC-SILO) $(CFLAGS) -DVERSION='"$(VERSION)"' -c $<24284 24285 mainnet.o: main.c24286 - $(CC) $(CFLAGS) -DTFTP -c -o $@ $<24287 + $(CC-SILO) $(CFLAGS) -DTFTP -c -o $@ $<24288 24289 malloc.o: ../common/malloc.c24290 - $(CC) $(CFLAGS) -c -o $@ $<24291 + $(CC-SILO) $(CFLAGS) -c -o $@ $<24292 24293 util: util.c24294 - $(CC) -DSMALL_RELOC=$(SMALL_RELOC) -DLARGE_RELOC=$(LARGE_RELOC) -o $@ $<24295 + $(BUILD_CC) -DSMALL_RELOC=$(SMALL_RELOC) -DLARGE_RELOC=$(LARGE_RELOC) -o $@ $<24296 24297 clean:24298 $(RM) *.o fs/*.o second* silotftp* util fs/libfs.a24299 24300 crt0.o: crt0.S24301 - $(CC) $(CFLAGS) -c -Wa,-Av9 -DIMGVERSION='"SILO$(IMGVERSION)"' crt0.S24302 + $(CC-SILO) $(CFLAGS) -c -Wa,-Av9 -DIMGVERSION='"SILO$(IMGVERSION)"' crt0.S24303 24304 memory.o: memory.c24305 - $(CC) $(CFLAGS) -c -Wa,-Av9 memory.c24306 + $(CC-SILO) $(CFLAGS) -c -Wa,-Av9 memory.c24307 24308 timer.o: timer.c24309 - $(CC) $(CFLAGS) -c -Wa,-Av9a timer.c24310 + $(CC-SILO) $(CFLAGS) -c -Wa,-Av9a timer.c24311 24312 second.b: second util24313 $(ELFTOAOUT) -o second.aout second24314 24242 diff -Naur silo-1.4.13.orig/second/fs/ufs.c silo-1.4.13/second/fs/ufs.c 24315 --- silo-1.4.13.orig/second/fs/ufs.c 2006-06-01 1 0:24:53.000000000 -070024316 +++ silo-1.4.13/second/fs/ufs.c 200 6-11-02 19:25:24.281403152 -080024243 --- silo-1.4.13.orig/second/fs/ufs.c 2006-06-01 13:24:53.000000000 -0400 24244 +++ silo-1.4.13/second/fs/ufs.c 2007-04-03 17:02:53.000000000 -0400 24317 24245 @@ -40,28 +40,18 @@ 24318 24246 … … 24384 24312 24385 24313 diff -Naur silo-1.4.13.orig/second/ls.c silo-1.4.13/second/ls.c 24386 --- silo-1.4.13.orig/second/ls.c 2006-06-01 1 0:24:53.000000000 -070024387 +++ silo-1.4.13/second/ls.c 200 6-11-02 19:21:44.264759738 -080024314 --- silo-1.4.13.orig/second/ls.c 2006-06-01 13:24:53.000000000 -0400 24315 +++ silo-1.4.13/second/ls.c 2007-04-03 17:02:53.000000000 -0400 24388 24316 @@ -19,10 +19,10 @@ 24389 24317 USA. */ … … 24398 24326 #include <ext2fs/ext2fs.h> 24399 24327 24328 diff -Naur silo-1.4.13.orig/second/Makefile silo-1.4.13/second/Makefile 24329 --- silo-1.4.13.orig/second/Makefile 2006-06-01 13:24:53.000000000 -0400 24330 +++ silo-1.4.13/second/Makefile 2007-04-05 19:48:45.000000000 -0400 24331 @@ -27,10 +27,10 @@ 24332 LDFLAGS_LARGE=-N -Ttext $(LARGE_RELOC) 24333 24334 .c.o: 24335 - $(CC) $(CFLAGS) -c $*.c -o $@ 24336 + $(CC-SILO) $(CFLAGS) -c $*.c -o $@ 24337 24338 .S.o: 24339 - $(CC) $(CFLAGS) -c $*.S -o $@ 24340 + $(CC-SILO) $(CFLAGS) -c $*.S -o $@ 24341 24342 # The ordering here is very significant. Please add new object files to OBJS5 only. 24343 OBJS1 = crt0.o 24344 @@ -43,8 +43,8 @@ 24345 OBJS4 = main.o 24346 OBJS4N = mainnet.o 24347 OBJS5 = cmdline.o disk.o file.o misc.o cfg.o strtol.o ranges.o timer.o \ 24348 - memory.o fs/libfs.a mul.o ../common/rem.o ../common/sdiv.o umul.o \ 24349 - ../common/stringops2.o ls.o muldi3.o 24350 + memory.o fs/libfs.a ../common/rem.o ../common/sdiv.o umul.o \ 24351 + ../common/stringops2.o ls.o muldi3.o ../libext2fs/libext2fs.a 24352 OBJS = $(OBJS1) $(OBJS2) $(OBJS3) bmark.o $(OBJS4) $(OBJS5) 24353 OBJSNET = $(OBJS1) $(OBJS2N) $(OBJS3) bmark.o $(OBJS4N) $(OBJS5) 24354 24355 @@ -53,18 +53,21 @@ 24356 # Should really switch to autoconf... 24357 all: second.b silotftp.b 24358 24359 +../libext2fs/libext2fs.a: 24360 + @make -C ../libext2fs 24361 + 24362 fs/libfs.a: $(FS_OBJS) 24363 $(RM) $@ 24364 $(AR) rc $@ $(FS_OBJS) 24365 24366 second: $(OBJS) mark.o 24367 - $(LD) $(LDFLAGS_SMALL) -Bstatic -o second $(OBJS) -lext2fs mark.o 24368 - $(LD) $(LDFLAGS_LARGE) -Bstatic -o second2 $(OBJS) -lext2fs mark.o 24369 + $(LD) $(LDFLAGS_SMALL) -Bstatic -o second $(OBJS) mark.o 24370 + $(LD) $(LDFLAGS_LARGE) -Bstatic -o second2 $(OBJS) mark.o 24371 $(NM) second | grep -v '*ABS*' | sort > second.map 24372 24373 silotftp: $(OBJSNET) mark.o 24374 - $(LD) $(LDFLAGS_SMALL) -Bstatic -o silotftp $(OBJSNET) -lext2fs mark.o 24375 - $(LD) $(LDFLAGS_LARGE) -Bstatic -o silotftp2 $(OBJSNET) -lext2fs mark.o 24376 + $(LD) $(LDFLAGS_SMALL) -Bstatic -o silotftp $(OBJSNET) mark.o 24377 + $(LD) $(LDFLAGS_LARGE) -Bstatic -o silotftp2 $(OBJSNET) mark.o 24378 $(NM) silotftp | grep -v '*ABS*' | sort > silotftp.map 24379 24380 second.l: second 24381 @@ -73,31 +76,31 @@ 24382 file.o: file.c 24383 24384 decompnet.o: decomp.c 24385 - $(CC) $(CFLAGS) -DTFTP -DVERSION='"$(VERSION)"' -c -o $@ $< 24386 + $(CC-SILO) $(CFLAGS) -DTFTP -DVERSION='"$(VERSION)"' -c -o $@ $< 24387 24388 decomp.o: decomp.c 24389 - $(CC) $(CFLAGS) -DVERSION='"$(VERSION)"' -c $< 24390 + $(CC-SILO) $(CFLAGS) -DVERSION='"$(VERSION)"' -c $< 24391 24392 mainnet.o: main.c 24393 - $(CC) $(CFLAGS) -DTFTP -c -o $@ $< 24394 + $(CC-SILO) $(CFLAGS) -DTFTP -c -o $@ $< 24395 24396 malloc.o: ../common/malloc.c 24397 - $(CC) $(CFLAGS) -c -o $@ $< 24398 + $(CC-SILO) $(CFLAGS) -c -o $@ $< 24399 24400 util: util.c 24401 - $(CC) -DSMALL_RELOC=$(SMALL_RELOC) -DLARGE_RELOC=$(LARGE_RELOC) -o $@ $< 24402 + $(BUILD_CC) -DSMALL_RELOC=$(SMALL_RELOC) -DLARGE_RELOC=$(LARGE_RELOC) -o $@ $< 24403 24404 clean: 24405 $(RM) *.o fs/*.o second* silotftp* util fs/libfs.a 24406 24407 crt0.o: crt0.S 24408 - $(CC) $(CFLAGS) -c -Wa,-Av9 -DIMGVERSION='"SILO$(IMGVERSION)"' crt0.S 24409 + $(CC-SILO) $(CFLAGS) -c -Wa,-Av9 -DIMGVERSION='"SILO$(IMGVERSION)"' crt0.S 24410 24411 memory.o: memory.c 24412 - $(CC) $(CFLAGS) -c -Wa,-Av9 memory.c 24413 + $(CC-SILO) $(CFLAGS) -c -Wa,-Av9 memory.c 24414 24415 timer.o: timer.c 24416 - $(CC) $(CFLAGS) -c -Wa,-Av9a timer.c 24417 + $(CC-SILO) $(CFLAGS) -c -Wa,-Av9a timer.c 24418 24419 second.b: second util 24420 $(ELFTOAOUT) -o second.aout second 24400 24421 diff -Naur silo-1.4.13.orig/silo/silo.c silo-1.4.13/silo/silo.c 24401 --- silo-1.4.13.orig/silo/silo.c 2006-06-01 1 0:24:53.000000000 -070024402 +++ silo-1.4.13/silo/silo.c 200 6-11-02 19:21:44.264759738 -080024422 --- silo-1.4.13.orig/silo/silo.c 2006-06-01 13:24:53.000000000 -0400 24423 +++ silo-1.4.13/silo/silo.c 2007-04-03 17:02:53.000000000 -0400 24403 24424 @@ -128,8 +128,8 @@ 24404 24425 unsigned short nsect; /* Sectors per track */ … … 24413 24434 unsigned short csum; /* Label xor'd checksum */ 24414 24435 diff -Naur silo-1.4.13.orig/silo/silocheck.c silo-1.4.13/silo/silocheck.c 24415 --- silo-1.4.13.orig/silo/silocheck.c 2006-06-01 1 0:24:53.000000000 -070024416 +++ silo-1.4.13/silo/silocheck.c 200 6-11-02 19:21:44.264759738 -080024436 --- silo-1.4.13.orig/silo/silocheck.c 2006-06-01 13:24:53.000000000 -0400 24437 +++ silo-1.4.13/silo/silocheck.c 2007-04-03 17:02:53.000000000 -0400 24417 24438 @@ -100,8 +100,8 @@ 24418 24439 unsigned short nsect; /* Sectors per track */ … … 24427 24448 unsigned short csum; /* Label xor'd checksum */ 24428 24449 diff -Naur silo-1.4.13.orig/tilo/Makefile silo-1.4.13/tilo/Makefile 24429 --- silo-1.4.13.orig/tilo/Makefile 2006-06-01 1 0:24:53.000000000 -070024430 +++ silo-1.4.13/tilo/Makefile 200 6-11-02 19:21:44.272759471 -080024450 --- silo-1.4.13.orig/tilo/Makefile 2006-06-01 13:24:53.000000000 -0400 24451 +++ silo-1.4.13/tilo/Makefile 2007-04-03 17:02:53.000000000 -0400 24431 24452 @@ -14,10 +14,10 @@ 24432 24453 all: maketilo
Note:
See TracChangeset
for help on using the changeset viewer.