Age | Commit message (Collapse) | Author |
|
disk_pager_read_page, disk_pager_write_page, pager_report_extent,
find_block, pager_unlock_page, diskfs_grow):
Use store_ operations instead of the old device ones, and some store
fields instead of globals.
(file_pager_read_page):
Make BUF void **, NEW_BUF void *, and LENGTH size_t.
Pass &LENGTH to store_read, not LENGTH.
(free_page_bufs, free_page_bufs_lock):
New variables.
(create_disk_pager):
Create PAGER_BUCKET.
Pass in new args to diskfs_pager_setup (renamed from disk_pager_setup).
(service_paging_request):
Function removed.
(struct pending_blocks):
Make BUF void *.
(disk_pager_write_page):
Make BUF void *, and LENGTH size_t.
Check amount written, and return EIO if it's wrong.
(disk_image):
New variable.
(get_page_buf, free_page_buf):
New functions.
(disk_pager_read_page):
Make BUF void **, and LENGTH size_t.
Check amount read, and return EIO if it's wrong.
(file_pager_write_pager):
Make BUF void *.
(diskfs_shutdown_pager):
Use DISKFS_DISK_PAGER instead of DISK_PAGER.
(pager_read_page, pager_read_page):
Convert BUF to a pointer when calling work functions.
(file_pager_read_page:do_pending_reads, pager_unlock_page,
pending_blocks_write, diskfs_grow, find_block):
Use filesystem blocks, not device blocks, in block<->offset/size
conversions.
(pending_blocks_write):
Make PAGE_BUF void *, and LENGTH size_t.
Check amount written, and return EIO if it's wrong.
<hurd/store.h>:
New include.
|
|
(file_pager_read_page): Use free_page_buf to deallocate pages.
|
|
|
|
diskfs_grow): Don't record debugging info.
|
|
Set NODE->dn->last_page_partially_writable if we return such a page.
(diskfs_grow):
Rename OLD_END_BLOCK to END_BLOCK.
Correctly determine whether to set DN->last_page_partially_writable
after allocating new blocks.
|
|
Pass NODE->dn, not &NODE->dn to RECORD_LAST.
|
|
file_pager_write_page):
Record debugging info.
|
|
|
|
(diskfs_sync_everything): Call sync_global instead of pokel_sync.
(final_sblock): Variable removed.
|
|
references to the CACHE_ID field in the node.
|
|
Try to make the logic a bit simpler and more robust.
|
|
beyond the allocsize and return EIO.
|
|
always be allocated, so don't.
(diskfs_grow, pager_unlock_page): Don't set last_block_allocated.
|
|
(create_disk_pager): Pass MAY_CACHE to disk_setup_pager.
|
|
|
|
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.
|
|
|
|
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.
|
|
(pager_clear_user_data): Only clear UPI->node->dn->fileinfo if it still
points to us.
|
|
|
|
|
|
|
|
(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).
|
|
crash.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|