[SSI] openssi/kernel/ipc shm.c,1.21,1.22
Roger Tsang <[email protected]>
| Newsgroups | gmane.linux.cluster.ssic.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/ssic-linux/openssi/kernel/ipc
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv32639/ipc
Modified Files:
Tag: OPENSSI-FC
shm.c
Log Message:
IPC:
- Fix shm_ids_svr table race; mutex not held, wrong mutex held, or releasing unheld mutex. (#ifdef IPC_SHM_RACE_FIX)
- Downgrade NSC_IPC_WRLOCK() where appropriate; reduce contention. (#ifdef NSC_IPC_RWLOCK_DOWNGRADE)
cluster/ssi/cfs/cfs_ipcshm.c | 66 +++++++++++++++++++++++++++++------
cluster/ssi/ipc/ipcshm_svr.c | 76 ++++++++++++++++++++++++++++++++++-------
cluster/ssi/ipc/namesvr_func.c | 68 ++++++++++++++++++++++++++++++++++++
include/linux/config.h | 1
ipc/shm.c | 3 +
5 files changed, 188 insertions(+), 26 deletions(-)
Index: shm.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/ipc/shm.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- shm.c 19 Feb 2009 08:01:02 -0000 1.21
+++ shm.c 24 Feb 2009 01:51:47 -0000 1.22
@@ -1397,11 +1397,12 @@
shm_svr_unregister(shp->id, node);
if (shp->shm_node == node) {
if (shp->shm_flags & SHM_LOCK_DEST) {
- ipc_get_locks(shp->id, &shm_ids, 0);
+ (void) ipc_get_locks(shp->id, &shm_ids, 0);
if (shp->shm_nattch == 0) {
int id = shp->id;
ssi_local_destroy(shp);
cli_ipcname_rmid(NAME_SERVICE_SHM, id);
+ /* ssi_local_destroy released shp.shm_perm.lock */
up(&shm_ids.sem);
}
else {
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H