From 56c05885be4c655fc18c119dbb87527bf5b9af86 Mon Sep 17 00:00:00 2001 From: Thomas Bushnell Date: Wed, 20 Aug 1997 19:06:04 +0000 Subject: Wed Aug 20 14:07:05 1997 Thomas Bushnell, n/BSG * pager.c (dev_get_memory_object): Deal with errors from pager_create properly. --- storeio/pager.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'storeio/pager.c') diff --git a/storeio/pager.c b/storeio/pager.c index e586fd68..28b5a4e0 100644 --- a/storeio/pager.c +++ b/storeio/pager.c @@ -230,27 +230,27 @@ dev_get_memory_object (struct dev *dev, vm_prot_t prot, memory_object_t *memobj) dev->pager = pager_create ((struct user_pager_info *)dev, pager_port_bucket, 1, MEMORY_OBJECT_COPY_DELAY); + if (dev->pager == NULL) + { + mutex_unlock (&dev->pager_lock); + return errno; + } created = 1; } - if (dev->pager == NULL) - err = ENODEV; /* XXX ??? */ - else - { - *memobj = pager_get_port (dev->pager); + *memobj = pager_get_port (dev->pager); - if (*memobj == MACH_PORT_NULL) - /* Pager is currently being destroyed, try again. */ - { - dev->pager = 0; - mutex_unlock (&dev->pager_lock); - return dev_get_memory_object (dev, prot, memobj); - } - else - err = - mach_port_insert_right (mach_task_self (), - *memobj, *memobj, MACH_MSG_TYPE_MAKE_SEND); + if (*memobj == MACH_PORT_NULL) + /* Pager is currently being destroyed, try again. */ + { + dev->pager = 0; + mutex_unlock (&dev->pager_lock); + return dev_get_memory_object (dev, prot, memobj); } + else + err = + mach_port_insert_right (mach_task_self (), + *memobj, *memobj, MACH_MSG_TYPE_MAKE_SEND); if (created) ports_port_deref (dev->pager); -- cgit v1.2.3