aboutsummaryrefslogtreecommitdiff
path: root/ext2fs/pager.c
Commit message (Collapse)AuthorAgeFilesLines
* 2002-06-08 Roland McGrath <roland@frob.com>Roland McGrath2002-06-111-2/+2
| | | | | | | * 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.
* 2002-04-05 Neal H Walfield <neal@cs.uml.edu>Marcus Brinkmann2002-06-051-1/+1
| | | | * pager.c (diskfs_grow): Correctly recalculate NEW_SIZE.
* 2002-05-29 Roland McGrath <roland@frob.com>Roland McGrath2002-06-021-1/+1
| | | | | | | | * dir.c (dirscanblock): Use %z format. (diskfs_get_directs): Likewise. * ext2fs.c (main): Likewise. * hyper.c (get_hypermetadata): Likewise. * pager.c (pager_unlock_page): Likewise.
* 2002-04-01 Neal H Walfield <neal@cs.uml.edu>Neal H. Walfield2002-04-011-1/+1
| | | | * pager.c (diskfs_grow): Fix inverted logic.
* 2001-11-20 Neal H Walfield <neal@cs.uml.edu>Neal H. Walfield2002-03-261-34/+31
| | | | | | | | | | | | | | | | * 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.
* 2000-12-21 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann2001-01-071-0/+3
| | | | | | | | | | * 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-09 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath2000-03-101-5/+5
| | | | | | | | | * 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-16 Mark Kettenis <kettenis@gnu.org>Mark Kettenis2000-01-161-3/+7
| | | | | * pager.c (file_pager_write_page): Lock NODE->dn->alloc_lock before accessing NODE->allocsize. Fixes Debian bug #40302.
* Reverted changes related to io_map_segment.Roland McGrath1999-09-131-3/+1
|
* 1999-09-07 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell1999-09-081-1/+3
| | | | | | | | * 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-04 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell1999-09-041-4/+1
| | | | | | * 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-11 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath1999-07-111-1/+0
| | | | | | * 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-06 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell1999-07-111-3/+2
| | | | | | | | | | * 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-03 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell1999-07-031-1/+1
| | | | | | | | | | | | | | * 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-19 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath1999-06-191-2/+2
| | | | * pager.c (free_page_buf): Fix type cast.
* Tue Jun 15 21:51:58 1999 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell1999-06-161-3/+16
| | | | | | | | | | | | * 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-20 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath1998-12-211-11/+14
| | | | | * inode.c (diskfs_write_disknode): Add braces to silence warning. * pager.c (file_pager_read_page): Likewise.
* 1998-09-04 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath1998-09-041-3/+3
| | | | * pager.c: strings.h -> string.h; gets strerror decl.
* Wed Aug 20 14:28:00 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>Thomas Bushnell1997-08-201-0/+8
| | | | | | | | | | | * 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.
* (disk_pager_read_page):Miles Bader1997-06-201-2/+2
| | | | Initialize READ to 0 to force store_read to allocate a buffer.
* (file_pager_read_page, pending_blocks_write, disk_pager_read_page,Miles Bader1996-09-231-83/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 get_page_buf to get a free page.Miles Bader1996-08-291-4/+48
| | | | (file_pager_read_page): Use free_page_buf to deallocate pages.
* (diskfs_grow): Fix ext2_debug format strings.Miles Bader1996-08-021-2/+2
|
* (file_pager_read_page, file_pager_write_page, pager_unlock_page,Miles Bader1996-07-201-9/+0
| | | | diskfs_grow): Don't record debugging info.
* (file_pager_read_page):Miles Bader1996-07-201-14/+21
| | | | | | | | 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.
* (file_pager_read_page, file_pager_write_page):Miles Bader1996-07-191-2/+2
| | | | Pass NODE->dn, not &NODE->dn to RECORD_LAST.
* (pager_unlock_page, diskfs_grow, file_pager_read_page,Miles Bader1996-07-171-0/+11
| | | | | file_pager_write_page): Record debugging info.
* (diskfs_grow): Add call diskfs_check_readonly to clear clean bit.Miles Bader1996-06-251-0/+1
|
* (diskfs_shutdown_pager): Don't shutdown the disk pager, just sync it.Miles Bader1996-06-251-10/+8
| | | | | (diskfs_sync_everything): Call sync_global instead of pokel_sync. (final_sblock): Variable removed.
* Replace references to the NUMBER field in a node's disknode structures withMiles Bader1996-04-111-6/+6
| | | | references to the CACHE_ID field in the node.
* (pager_unlock_page, diskfs_grow):Miles Bader1996-03-291-66/+79
| | | | Try to make the logic a bit simpler and more robust.
* (file_pager_read_page, file_pager_write_page): Check for a page offsetRoland McGrath1996-01-301-3/+13
| | | | beyond the allocsize and return EIO.
* (diskfs_file_update): Ext2fs doesn't require that the last block in the fileMiles Bader1996-01-181-37/+26
| | | | | always be allocated, so don't. (diskfs_grow, pager_unlock_page): Don't set last_block_allocated.
* (pager_bucket): Made global.Roland McGrath1996-01-061-2/+2
| | | | (create_disk_pager): Pass MAY_CACHE to disk_setup_pager.
* (create_disk_pager): Use disk_pager_setup.Roland McGrath1996-01-041-37/+26
|
* (create_disk_pager, diskfs_get_filemap, pager_clear_user_data):Miles Bader1995-10-211-97/+180
| | | | | | | | | | | | | | 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.
* u32 --> block_tMiles Bader1995-09-151-1/+1
|
* (diskfs_pager_users): Ignore the disk pager when seeing if there are anyMiles Bader1995-09-051-9/+8
| | | | | | 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.
* (diskfs_get_filemap): Drop initial reference created by pager_create.Michael I. Bushnell1995-07-211-16/+27
| | | | | (pager_clear_user_data): Only clear UPI->node->dn->fileinfo if it still points to us.
* (diskfs_get_filemap): Free initial reference created by pager_create.Michael I. Bushnell1995-07-211-1/+5
|
* (diskfs_pager_users): New function.Miles Bader1995-07-091-0/+68
|
* (pager_unlock_page): Declare BLOCK volatile.Michael I. Bushnell1995-06-271-1/+1
|
* (thread_function): New function.Miles Bader1995-06-241-64/+52
| | | | | | | | | | | | | | | | | (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).
* (pager_unlock_page): Give an explanation of why the file system will shortlyMiles Bader1995-05-121-3/+6
| | | | crash.
* entered into RCSMiles Bader1995-05-091-7/+11
|
* Formerly pager.c.~29~Miles Bader1995-05-081-2/+2
|
* Formerly pager.c.~27~Miles Bader1995-05-031-2/+5
|
* Formerly pager.c.~26~Miles Bader1995-05-021-0/+13
|
* Formerly pager.c.~25~Miles Bader1995-05-011-2/+2
|
* Formerly pager.c.~24~Miles Bader1995-04-281-43/+43
|