summaryrefslogtreecommitdiff
path: root/ext2fs
AgeCommit message (Collapse)Author
2000-07-26* Makefile (HURDLIBS): Reorder libs such that the threads libMark Kettenis
comes before the ports lib. This makes sure the functions in libthreads properly override the stubs in libports with the new dynamic linker semantics in glibc 2.2. * truncate.c (trunc_indirect): Add missing argument to pager_flush_some.
2000-07-262000-07-26 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* truncate.c (trunc_indirect): Add missing argument to pager_flush_some.
2000-07-252000-07-25 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell
* truncate.c (trunc_indirect): Before freeing an indirect block, remove it from the disk pager's kernel cache.
2000-03-10.Roland McGrath
2000-03-102000-03-09 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* balloc.c (ext2_free_blocks, ext2_new_block): Fix formats to avoid -Wformat warnings. * getblk.c (ext2_alloc_block, inode_getblk, ext2_getblk): Likewise. * ialloc.c (ext2_count_free_inodes): Likewise. * truncate.c (trunc_direct): Likewise. * pager.c (pending_blocks_write, diskfs_grow): Likewise.
2000-03-03.Roland McGrath
2000-03-032000-03-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* dir.c (diskfs_get_directs): Don't allocate buffer for *DATA until after scanning for ENTRY and possibly returning EOF.
2000-02-05.Roland McGrath
2000-02-052000-02-05 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* ext2_fs.h: Update from Linux 2.3.42 version (ext2_fs_i.h unchanged). * inode.c (check_high_bits): In accordance with Linux 2.3.42 behavior, permit 32-bit uids on non-hurd filesystems unless i_dtime is zero (which indicates an extra old Linux ext2 implementation I guess).
2000-01-16*** empty log message ***Mark Kettenis
2000-01-162000-01-16 Mark Kettenis <kettenis@gnu.org>Mark Kettenis
* pager.c (file_pager_write_page): Lock NODE->dn->alloc_lock before accessing NODE->allocsize. Fixes Debian bug #40302.
1999-10-13.Roland McGrath
1999-10-131999-10-13 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* ext2fs.c (diskfs_name_max): New variable.
1999-10-07.Roland McGrath
1999-10-071999-10-06 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* hyper.c (get_hypermetadata): Avoid overflow in calculation of disk size vs superblock-specified requirement. Add a warning for wasted disk blocks after last filesystem block.
1999-10-03.Roland McGrath
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* dir.c (ext2_file_type): #if 0 out this variable. (diskfs_get_directs): #if 0 out code to interpret file_type field and set d_type. Instead, always return DT_UNKNOWN for now.
1999-10-03.Roland McGrath
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* dir.c (file_type_ext2): #if 0 out. (diskfs_direnter_hard): #if 0 out code to set file_type field in directory entries. Instead, always set it to zero.
1999-10-03.Roland McGrath
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* bitmap.c (ffz): Subtract one from (1-origin) result of ffs to get our (0-origin) result. * Makefile (LCLHDRS): bitmap.h -> bitmap.c
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* ext2fs.h (test_bit, set_bit, clear_bit): Rewritten to operate on 32-bit words instead of bytes. * ext2fs.h (group_desc): Inline function replaced with macro. (group_desc_image): New variable. * hyper.c (get_hypermetadata): Initialize it. * ext2fs.h (sblock_block): Declare new variable. (SBLOCK_LBLOCK): Macro removed. (SBLOCK_OFFS): Define in terms of sblock_block. * ext2fs.c (options): Add --sblock/-S. (parse_opt): Parse it to set sblock_block. * hyper.c (sblock_block): New variable. (get_hypermetadata): Use sblock_block instead of constant SBLOCK_BLOCK. * hyper.c (get_hypermetadata): Use EXT2_MAX_BLOCK_SIZE instead of hard-wired 8192. Don't use ffs to compute log2_block_size, and don't check for the impossible case of non-power-of-two block size (the block size specification we start with is given as a power of two!). * ext2fs.h (block_size): Change type to unsigned int. (BLOCKSIZE_SCALE): Just use SBLOCK->s_log_block_size directly. * hyper.c (get_hypermetadata): Fix printf formats to silence warning. * dir.c (dirscanblock): Likewise.
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* truncate.c (diskfs_truncate): Add missing call to diskfs_end_catch_exception.
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* ext2fs.h (sblock_block): Declare new variable. (SBLOCK_LBLOCK): Macro removed. (SBLOCK_OFFS): Define in terms of sblock_block. * ext2fs.c (options): Add --sblock/-S. (parse_opt): Parse it to set sblock_block. * hyper.c (sblock_block): New variable. (get_hypermetadata): Use sblock_block instead of constant SBLOCK_BLOCK. * ext2fs.c (options): List --debug/-D unconditionally, adding to help text #ifndef EXT2FS_DEBUG (parse_opt): Always grok -D. #ifndef EXT2FS_DEBUG, reject it with message saying debugging support not compiled in.
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* Makefile (LCLHDRS): bitmap.h -> bitmap.c
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* hyper.c (get_hypermetadata): Use EXT2_MAX_BLOCK_SIZE instead of hard-wired 8192. Don't use ffs to compute log2_block_size, and don't check for the impossible case of non-power-of-two block size (the block size specification we start with is given as a power of two!). * ext2fs.h (block_size): Change type to unsigned int. (BLOCKSIZE_SCALE): Just use SBLOCK->s_log_block_size directly. * hyper.c (get_hypermetadata): Fix printf formats to silence warning. * dir.c (dirscanblock): Likewise.
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* ext2fs.h (group_desc): Inline function replaced with macro. (group_desc_image): New variable. * hyper.c (get_hypermetadata): Initialize it. * ext2fs.h (sblock_block): Declare new variable. (SBLOCK_LBLOCK): Macro removed. (SBLOCK_OFFS): Define in terms of sblock_block. * ext2fs.c (options): Add --sblock/-S. (parse_opt): Parse it to set sblock_block. * hyper.c (sblock_block): New variable. (get_hypermetadata): Use sblock_block instead of constant SBLOCK_BLOCK. * hyper.c (get_hypermetadata): Use EXT2_MAX_BLOCK_SIZE instead of hard-wired 8192. Don't use ffs to compute log2_block_size, and don't check for the impossible case of non-power-of-two block size (the block size specification we start with is given as a power of two!). * ext2fs.h (block_size): Change type to unsigned int. (BLOCKSIZE_SCALE): Just use SBLOCK->s_log_block_size directly. * hyper.c (get_hypermetadata): Fix printf formats to silence warning. * dir.c (dirscanblock): Likewise.
1999-10-03.Roland McGrath
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* dir.c (file_type_ext2): New const variable, map DT_* -> EXT2_FT_*. (diskfs_direnter_hard): Move initialization of directory entry content fields out of switch; use memcpy or memmove as appropriate, instead of bcopy. Set file_type field in new directory entry to appropriate type for the node, or to zero if the filesystem doesn't have the EXT2_FEATURE_INCOMPAT_FILETYPE flag set.
1999-10-031999-10-03 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* bitmap.c (ffz): Don't subtract one (duh).
1999-10-02.Roland McGrath
1999-10-021999-10-02 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* ext2fs.h (SBLOCK_LBLOCK): New macro, filesystem block number of sb. (BLOCKSIZE_SCALE): New macro for converting min-blocks to fs blocks. (group_desc): Fix calculation of offset from superblock, so it works properly with block_size != EXT2_MIN_BLOCK_SIZE. * ext2fs.h (EXT2FS_EI): New macro, use it for all extern inlines.
1999-10-02.Roland McGrath
1999-10-021999-10-02 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* bitmap.c (count_free, find_next_zero_bit, find_first_zero_bit): Make these all static inline. (ffz, ffz_nibble_map): Function and variable removed. (ffz): Replace decl with macro defined in terms of ffs. * ext2fs.h (count_free, find_next_zero_bit, find_first_zero_bit, ffz): Remove these declarations. * Makefile (SRCS): Remove bitmap.c. (LCLHDRS): Add bitmap.c here instead. * balloc.c, ialloc.c: #include "bitmap.c" here.
1999-10-01.Roland McGrath
1999-10-011999-10-01 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* bitmap.c (memscan): Function removed. * ext2fs.h: Removed its decl. * balloc.c (memscan): New static function, defined using memchr.
1999-09-13Reverted changes related to io_map_segment.Roland McGrath
1999-09-13ChangeLogRoland McGrath
1999-09-131999-09-09 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* Makefile (makemode): server -> servers. (targets): Replaced with target; remove ext2fs.static. (ext2fs.static-LDFLAGS): Variable removed. (ext2fs, ext2fs.static): Remove deps.
1999-09-081999-09-07 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell
* dir.c (diskfs_lookup_hard): Pass additional parameter to diskfs_get_filemap. (diskfs_dirempty): Likewise. * truncate.c (force_delayed_copies): Likewise. * pager.c (diskfs_get_filemap): Accept additional parameter.
1999-09-05typoRoland McGrath
1999-09-041999-09-04 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell
* pager.c (file_pager_write_page): Don't report errors on writes that extend past NODE->allocsize. This avoids a race between sync and truncate. Reported by Mark Kettenis <kettenis@wins.uva.nl>.
1999-08-23.Roland McGrath
1999-08-231999-08-23 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* balloc.c (ext2_free_blocks): Handle freeing across group boundary, as Linux 2.3.14 does. * balloc.c (ext2_check_blocks_bitmap): If RO_COMPAT_SPARSE_SUPER feature flag is set, or if group number is not a power of 3, 5, or 7 (I don't know why; this is what Linux 2.3.14 does), skip tests for superblocks and descriptor blocks being free in bitmap. * balloc.c (ext2_new_block): Take new arg PREALLOC_GOAL. Use that instead of hard-coded 8 as maximum of blocks to preallocate. Also test that instead of PREALLOC_COUNT to decide whether to try any preallocation at all. * getblk.c (ext2_alloc_block): Pass new arg to ext2_new_block. Use EXT2_DEFAULT_PREALLOC_BLOCKS as default (replaces hard-coded 8); For a regular file, use SBLOCK->s_prealloc_blocks before default. For a directory, use SBLOCK->s_dir_prealloc_blocks if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is set, otherwise zero. * inode.c (diskfs_set_translator): Pass new arg (zero).
1999-08-231999-08-23 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* inode.c (read_node): Don't set INFO->i_version. Extract INFO->i_dir_acl value only for a directory; otherwise use zero and instead extract INFO->i_high_size. Fail with EFBIG if INFO->i_high_size is nonzero. * inode.c (write_node): Get i_flags from NP->dn->info instead of from the disk inode, so we can have modified the in-core version. * dir.c (diskfs_direnter_hard, diskfs_dirremove_hard, diskfs_dirrewrite_hard): Clear EXT2_BTREE_FL flag bit from DP->dn->info.i_flags after modifying the directory (this is what Linux 2.3.14 does). * inode.c (read_node): i_version -> i_generation * inode.c (write_node): Likewise. * balloc.c (ext2_new_block): Take new arg PREALLOC_GOAL. Use that instead of hard-coded 8 as maximum of blocks to preallocate. Also test that instead of PREALLOC_COUNT to decide whether to try any preallocation at all. * getblk.c (ext2_alloc_block): Pass new arg to ext2_new_block. Use EXT2_DEFAULT_PREALLOC_BLOCKS as default (replaces hard-coded 8); For a regular file, use SBLOCK->s_prealloc_blocks before default. For a directory, use SBLOCK->s_dir_prealloc_blocks if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is set, otherwise zero. * inode.c (diskfs_set_translator): Pass new arg (zero).
1999-08-231999-08-23 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* ialloc.c (diskfs_alloc_node): Propagate initial value of i_flags from directory, as Linux 2.3.14 does.
1999-08-231999-08-23 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* ext2_fs.h, ext2_fs_i.h: Replaced with Linux 2.3.14 versions. * ext2fs.h (i_mode_high): New macro, missing from ext_fs.h.
1999-08-231999-08-23 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* balloc.c (ext2_new_block): Take new arg PREALLOC_GOAL. Use that instead of hard-coded 8 as maximum of blocks to preallocate. Also test that instead of PREALLOC_COUNT to decide whether to try any preallocation at all. * getblk.c (ext2_alloc_block): Pass new arg to ext2_new_block. Use EXT2_DEFAULT_PREALLOC_BLOCKS as default (replaces hard-coded 8); For a regular file, use SBLOCK->s_prealloc_blocks before default. For a directory, use SBLOCK->s_dir_prealloc_blocks if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is set, otherwise zero. * inode.c (diskfs_set_translator): Pass new arg (zero).
1999-08-231999-08-23 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* inode.c (write_node): Get i_flags from NP->dn->info instead of from the disk inode, so we can have modified the in-core version. * dir.c (diskfs_direnter_hard, diskfs_dirremove_hard, diskfs_dirrewrite_hard): Clear EXT2_BTREE_FL flag bit from DP->dn->info.i_flags after modifying the directory (this is what Linux 2.3.14 does). * dir.c: Replace `struct ext2_dir_entry' with `struct ext2_dir_entry_2' in all uses. (ext2_file_type): New static const variable. (diskfs_get_directs): Set d_type member based on file_type field in directory entry.
1999-07-11.Roland McGrath