summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/vm/seg_dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/vm/seg_dev.c')
-rw-r--r--usr/src/uts/common/vm/seg_dev.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/usr/src/uts/common/vm/seg_dev.c b/usr/src/uts/common/vm/seg_dev.c
index e3ea694c05..9d214024a5 100644
--- a/usr/src/uts/common/vm/seg_dev.c
+++ b/usr/src/uts/common/vm/seg_dev.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -37,8 +37,6 @@
* contributors.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* VM - segment of a mapped device.
*
@@ -428,6 +426,15 @@ segdev_create(struct seg *seg, void *argsp)
sdp->devmap_data = NULL;
hat_unload(seg->s_as->a_hat, seg->s_base, seg->s_size,
HAT_UNLOAD_UNMAP);
+ } else {
+ /*
+ * Mappings of /dev/null don't count towards the VSZ of a
+ * process. Mappings of /dev/null have no mapping type.
+ */
+ if ((SEGOP_GETTYPE(seg, (seg)->s_base) & (MAP_SHARED |
+ MAP_PRIVATE)) == 0) {
+ seg->s_as->a_resvsize -= seg->s_size;
+ }
}
return (error);