Re: [BK PATCH] LSM setup changes for 2.5.26

From: Greg KH (greg@kroah.com)
Date: Wed Jul 17 2002 - 13:23:51 EST


# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.639.1.1 -> 1.639.1.2
# ipc/sem.c 1.9 -> 1.10
# ipc/shm.c 1.11 -> 1.12
# include/linux/shm.h 1.2 -> 1.3
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/07/15 greg@kroah.com 1.639.1.2
# LSM: move struct shmid_kernel out of ipc/shm.c to include/linux/shm.h
#
# Also move where we set sma->sem_perm.mode and .key to before ipc_addid() gets called.
# --------------------------------------------
#
diff -Nru a/include/linux/shm.h b/include/linux/shm.h
--- a/include/linux/shm.h Wed Jul 17 11:08:09 2002
+++ b/include/linux/shm.h Wed Jul 17 11:08:09 2002
@@ -71,6 +71,19 @@
 };
 
 #ifdef __KERNEL__
+struct shmid_kernel /* private to the kernel */
+{
+ struct kern_ipc_perm shm_perm;
+ struct file * shm_file;
+ int id;
+ unsigned long shm_nattch;
+ unsigned long shm_segsz;
+ time_t shm_atim;
+ time_t shm_dtim;
+ time_t shm_ctim;
+ pid_t shm_cprid;
+ pid_t shm_lprid;
+};
 
 /* shm_mode upper byte flags */
 #define SHM_DEST 01000 /* segment will be destroyed on last detach */
diff -Nru a/ipc/sem.c b/ipc/sem.c
--- a/ipc/sem.c Wed Jul 17 11:08:09 2002
+++ b/ipc/sem.c Wed Jul 17 11:08:09 2002
@@ -129,15 +129,16 @@
                 return -ENOMEM;
         }
         memset (sma, 0, size);
+
+ sma->sem_perm.mode = (semflg & S_IRWXUGO);
+ sma->sem_perm.key = key;
+
         id = ipc_addid(&sem_ids, &sma->sem_perm, sc_semmni);
         if(id == -1) {
                 ipc_free(sma, size);
                 return -ENOSPC;
         }
         used_sems += nsems;
-
- sma->sem_perm.mode = (semflg & S_IRWXUGO);
- sma->sem_perm.key = key;
 
         sma->sem_base = (struct sem *) &sma[1];
         /* sma->sem_pending = NULL; */
diff -Nru a/ipc/shm.c b/ipc/shm.c
--- a/ipc/shm.c Wed Jul 17 11:08:09 2002
+++ b/ipc/shm.c Wed Jul 17 11:08:09 2002
@@ -28,20 +28,6 @@
 
 #include "util.h"
 
-struct shmid_kernel /* private to the kernel */
-{
- struct kern_ipc_perm shm_perm;
- struct file * shm_file;
- int id;
- unsigned long shm_nattch;
- unsigned long shm_segsz;
- time_t shm_atim;
- time_t shm_dtim;
- time_t shm_ctim;
- pid_t shm_cprid;
- pid_t shm_lprid;
-};
-
 #define shm_flags shm_perm.mode
 
 static struct file_operations shm_file_operations;
@@ -193,6 +179,10 @@
         shp = (struct shmid_kernel *) kmalloc (sizeof (*shp), GFP_USER);
         if (!shp)
                 return -ENOMEM;
+
+ shp->shm_perm.key = key;
+ shp->shm_flags = (shmflg & S_IRWXUGO);
+
         sprintf (name, "SYSV%08x", key);
         file = shmem_file_setup(name, size);
         error = PTR_ERR(file);
@@ -203,8 +193,7 @@
         id = shm_addid(shp);
         if(id == -1)
                 goto no_id;
- shp->shm_perm.key = key;
- shp->shm_flags = (shmflg & S_IRWXUGO);
+
         shp->shm_cprid = current->pid;
         shp->shm_lprid = 0;
         shp->shm_atim = shp->shm_dtim = 0;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Jul 23 2002 - 22:00:24 EST