summaryrefslogtreecommitdiff
path: root/ext2fs/pager.c
AgeCommit message (Collapse)Author
2002-04-012002-04-01 Neal H Walfield <neal@cs.uml.edu>Neal H. Walfield
* pager.c (diskfs_grow): Fix inverted logic.
2002-03-262001-11-20 Neal H Walfield <neal@cs.uml.edu>Neal H. Walfield
* pager.c (MAX_FREE_PAGE_BUFS): Remove obsolete macro. (FREE_PAGE_BUFS): New macro. (free_page_bufs_lock): Make this global variable local to get_page_buf. (free_page_bufs): Likewise. (num_free_page_bufs): Likewise. (get_page_buf): Reimplement using a new caching algorithm based on preallocation of COW zero pages. (free_page_buf): Likewise. (find_block): Documentation fixes.
2001-01-072000-12-21 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* 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>.
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-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-09-13Reverted changes related to io_map_segment.Roland McGrath
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-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-07-111999-07-11 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* dir.c (diskfs_get_directs): Fix sloppy bugs in last change. * hyper.c (allocate_mod_map): Likewise. * pager.c (get_page_buf): Likewise.
1999-07-111999-07-06 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell
* dir.c (diskfs_get_directs): Use mmap instead of vm_allocate. * hyper.c (allocate_mod_map): Likewise. (get_hypermetadata): Likewise. * pager.c (get_page_buf): Likewise. * hyper.c (diskfs_readonly_changed): Use mprotect instead of vm_protect.
1999-07-031999-07-03 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell
* dir.c (diskfs_lookup_hard): Use munmap instead of vm_deallocate. (diskfs_direnter_hard): Likewise. (diskfs_dirremove_hard): Likewise. (diskfs_dirrewrite_hard): Likewise. (diskfs_dirempty): Likewise. (diskfs_drop_dirstat): Likewise. (diskfs_get_directs): Likewise. * hyper.c (allocate_mod_map): Likewise. (get_hypermetadata): Likewise. * pager.c (free_page_buf): Likewise. * truncate.c (poke_pages): Likewise.
1999-06-191999-06-19 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* pager.c (free_page_buf): Fix type cast.
1999-06-16Tue Jun 15 21:51:58 1999 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell
* 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>.
1998-12-211998-12-20 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* inode.c (diskfs_write_disknode): Add braces to silence warning. * pager.c (file_pager_read_page): Likewise.
1998-09-041998-09-04 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* pager.c: strings.h -> string.h; gets strerror decl.
1997-08-20Wed Aug 20 14:28:00 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>Thomas Bushnell
* dir.c (diskfs_lookup_hard): Cope with error return from diskfs_get_filemap. (diskfs_dirempty): Cope (poorly) with error return from diskfs_get_filemap. * truncate.c (force_delayed_copies): Likewise. * pager.c (diskfs_get_filemap): If pager_create fails, return error to caller.
1997-06-20(disk_pager_read_page):Miles Bader
Initialize READ to 0 to force store_read to allocate a buffer.
1996-09-23(file_pager_read_page, pending_blocks_write, disk_pager_read_page,Miles Bader
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.
1996-08-29(file_pager_read_page): Use get_page_buf to get a free page.Miles Bader
(file_pager_read_page): Use free_page_buf to deallocate pages.
1996-08-02(diskfs_grow): Fix ext2_debug format strings.Miles Bader
1996-07-20(file_pager_read_page, file_pager_write_page, pager_unlock_page,Miles Bader
diskfs_grow): Don't record debugging info.
1996-07-20(file_pager_read_page):Miles Bader
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.
1996-07-19(file_pager_read_page, file_pager_write_page):Miles Bader
Pass NODE->dn, not &NODE->dn to RECORD_LAST.
1996-07-17(pager_unlock_page, diskfs_grow, file_pager_read_page,Miles Bader
file_pager_write_page): Record debugging info.
1996-06-25(diskfs_grow): Add call diskfs_check_readonly to clear clean bit.Miles Bader
1996-06-25(diskfs_shutdown_pager): Don't shutdown the disk pager, just sync it.Miles Bader
(diskfs_sync_everything): Call sync_global instead of pokel_sync. (final_sblock): Variable removed.
1996-04-11Replace references to the NUMBER field in a node's disknode structures withMiles Bader
references to the CACHE_ID field in the node.
1996-03-29(pager_unlock_page, diskfs_grow):Miles Bader
Try to make the logic a bit simpler and more robust.
1996-01-30(file_pager_read_page, file_pager_write_page): Check for a page offsetRoland McGrath
beyond the allocsize and return EIO.
1996-01-18(diskfs_file_update): Ext2fs doesn't require that the last block in the fileMiles Bader
always be allocated, so don't. (diskfs_grow, pager_unlock_page): Don't set last_block_allocated.
1996-01-06(pager_bucket): Made global.Roland McGrath
(create_disk_pager): Pass MAY_CACHE to disk_setup_pager.
1996-01-04(create_disk_pager): Use disk_pager_setup.Roland McGrath
1995-10-21(create_disk_pager, diskfs_get_filemap, pager_clear_user_data):Miles Bader
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.
1995-09-15u32 --> block_tMiles Bader
1995-09-05(diskfs_pager_users): Ignore the disk pager when seeing if there are anyMiles Bader
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.
1995-07-21(diskfs_get_filemap): Drop initial reference created by pager_create.Michael I. Bushnell
(pager_clear_user_data): Only clear UPI->node->dn->fileinfo if it still points to us.
1995-07-21(diskfs_get_filemap): Free initial reference created by pager_create.Michael I. Bushnell
1995-07-09(diskfs_pager_users): New function.Miles Bader
1995-06-27(pager_unlock_page): Declare BLOCK volatile.Michael I. Bushnell
1995-06-24(thread_function): New function.Miles Bader
(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).
1995-05-12(pager_unlock_page): Give an explanation of why the file system will shortlyMiles Bader
crash.
1995-05-09entered into RCSMiles Bader
1995-05-08Formerly pager.c.~29~Miles Bader
1995-05-03Formerly pager.c.~27~Miles Bader
1995-05-02Formerly pager.c.~26~Miles Bader
1995-05-01Formerly pager.c.~25~Miles Bader
1995-04-28Formerly pager.c.~24~Miles Bader
1995-04-28Formerly pager.c.~23~Miles Bader
1995-04-27Formerly pager.c.~22~Miles Bader
1995-04-26Formerly pager.c.~21~Miles Bader