diff options
author | Hurd Maintainers <hurd-maintainers@gnu.org> | 1994-10-04 22:46:15 +0000 |
---|---|---|
committer | Hurd Maintainers <hurd-maintainers@gnu.org> | 1994-10-04 22:46:15 +0000 |
commit | 9dd6afbc65092f2d706b124e296ac3d918ee81a6 (patch) | |
tree | acbca9126f6eea13e8c73de5e05c407da7dc33ac /ufs/pager.c | |
parent | 687423a245b9571fc1f81bcf76b8b507128d85b0 (diff) |
Formerly pager.c.~40~
Diffstat (limited to 'ufs/pager.c')
-rw-r--r-- | ufs/pager.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/ufs/pager.c b/ufs/pager.c index 90e5d985..fd148d8d 100644 --- a/ufs/pager.c +++ b/ufs/pager.c @@ -117,8 +117,10 @@ pager_read_page (struct user_pager_info *pager, } else { +#if 0 printf ("Write-locked pagein Object %#x\tOffset %#x\n", pager, page); fflush (stdout); +#endif vm_allocate (mach_task_self (), buf, __vm_page_size, 1); *writelock = 1; } @@ -187,8 +189,10 @@ pager_unlock_page (struct user_pager_info *pager, /* Problem--where to get cred values for allocation here? */ +#if 0 printf ("Unlock page request, Object %#x\tOffset %#x...", pager, address); fflush (stdout); +#endif if (pager->type == DISK) return 0; @@ -216,6 +220,13 @@ pager_unlock_page (struct user_pager_info *pager, return EIO; } + err = diskfs_catch_exception (); + if (err) + { + rwlock_writer_unlock (&dn->allocptrlock); + return EIO; + } + /* See if we need a triple indirect block; fail if we do. */ assert (indirs[0].offset == -1 || indirs[1].offset == -1 |