Age | Commit message (Collapse) | Author |
|
(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.
|
|
Don't use the p field in a upi.
(diskfs_get_filemap): Update/initialize the max_prot field. Add the prot arg.
(drop_pager_softrefs): Declare PAGER, not UPI.
(enable_caching): The disk node is upi->node, not upi->np.
(diskfs_get_filemap_pager_struct, flush_node_pager,
diskfs_file_update, pager_clear_user_data, drop_pager_softrefs):
Use pager field, not fileinfo.
(flush_node_pager): New function.
(create_disk_pager): Store the actual pager into DISK_PAGER.
(diskfs_shutdown_pager, diskfs_sync_everything):
Use DISK_PAGER directly, not ->p.
|
|
(pokel_sync): Use _pokel_exec to do the work.
|
|
Always include VM_PROT_WRITE in max prot.
Use DISK_PAGER directly, not ->p.
Use diskfs routines to open the device.
Support both file and mach devices. Move the parse function here.
Use argp for parsing.
(usage, USAGE, SHORT_OPTS, long_opts, console_stdio): Removed
(parse_opt): Move into main (as a nested function).
(printf, _ext2_error, _ext2_panic, _ext2_warning): Functions moved to msg.c
(diskfs_init_completed): Func deleted (now in libdiskfs).
|
|
|
|
|
|
Offset the address to which we're doing i/o with DEVICE_START.
|
|
Replace fileinfo field with pager.
(force_delayed_copies): Give diskfs_get_filemap a protection arg.
|
|
(zeroblock, modified_global_blocks): Define (were common).
(diskfs_readonly_changed): New function.
(get_hypermetadata):
Deallocate ZEROBLOCK if necessary. Use allocate_mod_map to allocate
MODIFIED_GLOBAL_BLOCKS.
Use diskfs device functions & variables instead of our own.
|
|
|
|
(struct disknode): Replace fileinfo field with pager.
(pokel_flush, flush_node_pager): New declarations.
(disk_pager): Type changed to struct pager.
(sync_global_ptr): Use DISK_PAGER, not DISK_PAGER->p.
(device_arg, device_name, device_port, device_start,
device_size, device_block_size): Declarations removed.
(MS_RDONLY, MS_NOSUID, MS_NODEV, MS_NOEXEC, MS_SYNCHRONOUS, MS_REMOUNT,
S_APPEND, S_IMMUTABLE, IS_APPEND, IS_IMMUTABLE): Macros deleted.
|
|
fsys_stb_fsize -> fsys_stb_bsize.
|
|
(pokel_add): Assert that this malloc should succeed.
(pokel_sync): Don't hold POKEL's spin lock while syncing.
|
|
|
|
actually is.
|
|
|
|
(poke_pages): Gratuitous cosmetic changes.
(trunc_direct): Rewritten, new args.
(trunc_indirect): Rewritten, new args, now more general to support all the
various indirection levels.
(trunc_triple_indirect, trunc_double_indirect, trunc_single_indirect):
New functions.
(struct free_block_run): New structure.
(free_block_run_finish, free_block_run_free_ptr, free_block_run_add,
free_block_run_init, _free_block_run_flush):
New functions.
(trunc_dindirect, trunc_tindirect): Functions deleted.
(DIRECT_BLOCK, INDIRECT_BLOCK, DINDIRECT_BLOCK, TINDIRECT_BLOCK):
Macros deleted.
|
|
|
|
even set NP if NPP is not set; use INUM as "lookup succeeded flag"
instead. Lookups for REMOVE now *must* set NPP.
|
|
active pagers.
(diskfs_shutdown_pager): shutdown_one gets passed a pager, not a upi.
(diskfs_sync_everything): sync_one gets passed a pager, not a upi.
|
|
|
|
|
|
(HURDLIBS): Removed.
Remove rules for error.o.
|
|
(pager_clear_user_data): Only clear UPI->node->dn->fileinfo if it still
points to us.
|
|
|
|
|
|
|
|
|
|
use the new ports ref calls directly instead.
|
|
|
|
(diskfs_get_directs): Fix print-format types.
|
|
|
|
calls directly instead.
(diskfs_node_iterate): New function.
(write_all_disknodes): Re-implemented using diskfs_node_iterate.
|
|
do the work.
(thread_cancel): Dummy function.
|
|
(create_disk_pager): Make a new thread to service paging requests.
(pager_bucket): New variable.
(pager_list_lock, file_pager_list): Variables deleted.
(create_disk_pager): Create pager_bucket.
(create_disk_pager, diskfs_get_filemap): Pass pager_bucket to pager_create.
(pager_traverse): Function deleted.
(diskfs_get_filemap, pager_clear_user_data): Don't add/remove UPI to/from the
pager list, as there isn't any.
(diskfs_shutdown_pager, diskfs_sync_everything): Use ports_bucket_iterate on
pager_bucket to go through all the pagers, instead of pager_traverse.
(diskfs_file_update, pager_traverse, allow_pager_softrefs,
drop_pager_softrefs): Change pager [un]ref calls to use the new ports ref
calls directly instead.
(pager_dropweak): New function (does nothing).
|
|
|
|
|
|
options parsing.
Rename `options' to `long_opts'. Most things removed, as they're now handled
by libdiskfs.
Add parse_opt to deal with our few meagre remaining options in the approved
options_parse manner.
|
|
|
|
|
|
(exec_server_image.o): Rule removed.
|
|
initial sync interval.
|
|
initial function name argument (it's now supplied automagically).
|
|
macros that automagically supply the caller's function name, and rename the
original functions (which these macros call) to have an underline prefix.
Get rid of the CHECK_STRICT variable.
|
|
and just always do the tests it controlled.
Change uses of the ext2_{warning,error,panic} functions to not have the
initial function name argument (it's now supplied automagically).
|
|
(the previous names are now macros that call the renamed functions). Also
rearrange a bit to hold the lock around the use of the global message buffer.
|
|
crash.
|
|
|
|
|
|
allocate a new block.
|