svn commit: r363271 - in stable/12/sys: kern sys

Kyle Evans kevans at FreeBSD.org
Fri Jul 17 14:17:14 UTC 2020


Author: kevans
Date: Fri Jul 17 14:17:13 2020
New Revision: 363271
URL: https://svnweb.freebsd.org/changeset/base/363271

Log:
  MFC r363062: shmfd: make shm_size a vm_ooffset_t
  
  On 32-bit platforms, this expands the shm_size to a 64-bit quantity and
  resolves a mismatch between the shmfd size and underlying vm_object size.
  The implementation did not account for this kind of mismatch.
  
  For compatibility's sake, the old shm_size has been replaced with
  shm_oldsize (still popualted) and the new member appended to the end.

Modified:
  stable/12/sys/kern/uipc_shm.c
  stable/12/sys/sys/mman.h
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/kern/uipc_shm.c
==============================================================================
--- stable/12/sys/kern/uipc_shm.c	Fri Jul 17 06:53:03 2020	(r363270)
+++ stable/12/sys/kern/uipc_shm.c	Fri Jul 17 14:17:13 2020	(r363271)
@@ -531,6 +531,7 @@ retry:
 		object->charge += delta;
 	}
 	shmfd->shm_size = length;
+	shmfd->shm_oldsize = (size_t)length;
 	mtx_lock(&shm_timestamp_lock);
 	vfs_timestamp(&shmfd->shm_ctime);
 	shmfd->shm_mtime = shmfd->shm_ctime;

Modified: stable/12/sys/sys/mman.h
==============================================================================
--- stable/12/sys/sys/mman.h	Fri Jul 17 06:53:03 2020	(r363270)
+++ stable/12/sys/sys/mman.h	Fri Jul 17 14:17:13 2020	(r363271)
@@ -207,7 +207,7 @@ typedef	__size_t	size_t;
 struct file;
 
 struct shmfd {
-	size_t		shm_size;
+	size_t		shm_oldsize;
 	vm_object_t	shm_object;
 	int		shm_refs;
 	uid_t		shm_uid;
@@ -230,6 +230,7 @@ struct shmfd {
 
 	struct rangelock shm_rl;
 	struct mtx	shm_mtx;
+	vm_ooffset_t	shm_size;
 };
 #endif
 


More information about the svn-src-stable-12 mailing list