aboutsummaryrefslogtreecommitdiff
path: root/ufs/pager.c
diff options
context:
space:
mode:
Diffstat (limited to 'ufs/pager.c')
-rw-r--r--ufs/pager.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ufs/pager.c b/ufs/pager.c
index afb34839..61695db6 100644
--- a/ufs/pager.c
+++ b/ufs/pager.c
@@ -569,6 +569,13 @@ diskfs_get_filemap (struct node *np, vm_prot_t prot)
diskfs_nref_light (np);
upi->p = pager_create (upi, pager_bucket,
MAY_CACHE, MEMORY_OBJECT_COPY_DELAY);
+ if (upi->p == 0)
+ {
+ diskfs_nrele_light (np);
+ free (upi);
+ spin_unlock (&node2pagelock);
+ return MACH_PORT_NULL;
+ }
np->dn->fileinfo = upi;
right = pager_get_port (np->dn->fileinfo->p);
ports_port_deref (np->dn->fileinfo->p);