Age | Commit message (Collapse) | Author |
|
* ext2fs.h (struct disknode): New member `info_i_translator'.
* inode.c (diskfs_set_translator): Update NP->dn->info_i_translator.
* ialloc.c (diskfs_alloc_node): Clear a nonzero translator block in
the on-disk inode just as we do for data blocks.
|
|
* inode.c (diskfs_cached_lookup): Use ino_t for argument.
* ialloc.c (diskfs_free_node): Use %Ld format for ino_t/off_t values.
* pager.c (diskfs_grow, pager_unlock_page): Likewise.
* inode.c (read_node): Likewise.
* dir.c (diskfs_get_directs): Likewise.
|
|
* inode.c (write_node): Never clear i_translator here.
That is only done by diskfs_set_translator.
|
|
* inode.c (read_node): Just always call getpid for the fsid value.
|
|
* inode.c (write_node): Leave i_size, i_blocks, i_translator unchanged
when the inode has been deleted. Suggested by Marcus Brinkmann.
|
|
* inode.c (diskfs_get_translator): Fail with EFTYPE if the length
field stored on disk is unreasonable. Don't crash on ENOMEM.
Use memcpy instead of bcopy.
|
|
* inode.c (diskfs_get_translator): Fail with EFTYPE if the length
field stored on disk is unreasonable. Don't crash on ENOMEM.
Use memcpy instead of bcopy.
|
|
than the number of reserved blocks, set the number of available
blocks to 0.
|
|
* pager.c: Include <errno.h>.
(create_disk_pager): Panic if malloc fails.
Reported by Igor Khavkine <i_khavki@alcor.concordia.ca>.
* inode.c (diskfs_get_translator): If malloc fails, set err to ENOMEM.
Initialize err with 0, and return it at the end of the function.
Reported by Igor Khavkine <i_khavki@alcor.concordia.ca>.
|
|
* inode.c (write_all_disknodes): Call diskfs_set_node_times after
pokel_sync, since it might delay a little.
(write_node): Remove assert that dn_set_mtime et al are clear.
It is ok if they are set in parallel, because the latter setting
will be carried out eventually.
|
|
* inode.c (write_node): Use memcpy instead of a loop.
|
|
* 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).
|
|
* 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).
|
|
* pager.c: Clamp the number of free pages we keep around to some
reasonably small value. Patch from Mark Kettenis
<kettenis@wins.uva.nl>.
1999-06-15 Thomas Bushnell, BSG <tb@mit.edu>
* inode.c (diskfs_validate_flags_change): Invert sense of test wrt
bits that haven't yet been defined. Reported by Kalle Olavi
Niemitalo <tosi@ees2.oulu.fi>.
|
|
* inode.c (diskfs_set_statfs): Remove __ from struct members.
1998-12-21 Mark Kettenis <kettenis@phys.uva.nl>
* inode.c (diskfs_set_statfs): Fill in statfs members that are
used to implement statvfs.
|
|
* inode.c (diskfs_write_disknode): Add braces to silence warning.
* pager.c (file_pager_read_page): Likewise.
|
|
* dir.c (dirscanblock): Fix defn with `const'.
(diskfs_direnter_hard): Likewise.
* inode.c (diskfs_create_symlink_hook): Likewise.
(write_symlink): Likewise.
* dir.c (diskfs_lookup_hard): Fix defn with `const'.
* inode.c (diskfs_set_translator): Likewise.
|
|
Don't assert that st_blocks is zero for non-dir/file/long-symlink inodes.
|
|
If SBLOCK->s_creator_os != EXT2_OS_HURD, set NP->author_tracks_uid to true.
|
|
Frob S_IPTRANS bit rather than istranslated field.
(write_node):
Don't write S_IPTRANS to disk.
(read_node):
Set S_IPTRANS bit in ST->st_mode (and clear S_ITRANS) rather than
NP->istranslated.
|
|
New function.
(write_node):
Convert generic flags in ST->st_flags to ext2- specific flags in
DI->i_flags.
(read_node):
Renamed from read_disknode; all callers changed.
Convert ext2-specific flags on disk to generic flags in ST.
[!UF_APPEND] (UF_APPEND): New macro (temporary).
[!UF_NODUMP] (UF_NODUMP): New macro (temporary).
[!UF_IMMUTABLE] (UF_IMMUTABLE): New macro (temporary).
<sys/stat.h>:
New include.
|
|
Use STORE->log2_block_size instead of LOG2_BLOCK_SIZE.
|
|
|
|
assert that st_blocks == 0 for any case where we set allocsize to 0.
|
|
(MAX_INODE_SYMLINK): New macro.
(write_symlink, read_symlink): New functions.
(diskfs_create_symlink_hook, diskfs_read_symlink_hook): New variables.
|
|
If WAIT is false, still record the write for later, using record_global_poke.
|
|
|
|
|
|
|
|
diskfs_validate_group_change, diskfs_validate_mode_change,
diskfs_validate_author_change): New functions.
(write_node): For non-hurd filesystems, assert that no hurd
extensions should be used.
|
|
Use hurd-specific fields only on a hurd filesystem.
|
|
|
|
|
|
|
|
Renamed from iget; all uses updated.
Initialize the CACHE_ID field in the new node.
Replace references to the NUMBER field in a node's disknode structures with
references to the CACHE_ID field in the node.
|
|
|
|
which indirect blocks still have to be written.
|
|
|
|
Only support these if the filesystem's creator-os is `hurd'.
(read_disknode):
Only check the i_translator field if the filesystem's creator-os is `hurd'.
|
|
(iget, read_disknode):
Code to set allocsize and the last_* fields moved from iget to read_disknode.
(read_disknode): Add DN and OFFSET variables.
Use log2_block_size to mask instead of doing a modulo with block_size.
(diskfs_node_norefs, iget): Use pager field, not fileinfo.
(iget): Use DISK_PAGER directly, not ->p.
(diskfs_lost_hardrefs): #ifdef'd out contents removed.
|
|
fsys_stb_fsize -> fsys_stb_bsize.
|
|
calls directly instead.
(diskfs_node_iterate): New function.
(write_all_disknodes): Re-implemented using diskfs_node_iterate.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|