[Ocfs2-commits] rev 30 - in trunk: . docs src src/inc

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Mon Feb 9 23:49:47 CST 2004


Author: manish
Date: 2004-02-09 23:49:45 -0600 (Mon, 09 Feb 2004)
New Revision: 30

Modified:
   trunk/TODO
   trunk/docs/sample-ocfs.conf
   trunk/src/Makefile
   trunk/src/alloc.c
   trunk/src/bitmap.c
   trunk/src/dcache.c
   trunk/src/dir.c
   trunk/src/dlm.c
   trunk/src/extmap.c
   trunk/src/file.c
   trunk/src/hash.c
   trunk/src/heartbeat.c
   trunk/src/inc/io.h
   trunk/src/inc/journal.h
   trunk/src/inc/ocfs.h
   trunk/src/inc/proto.h
   trunk/src/inode.c
   trunk/src/io.c
   trunk/src/ioctl.c
   trunk/src/journal.c
   trunk/src/namei.c
   trunk/src/nm.c
   trunk/src/oin.c
   trunk/src/osb.c
   trunk/src/proc.c
   trunk/src/sem.c
   trunk/src/super.c
   trunk/src/sysfile.c
   trunk/src/util.c
   trunk/src/ver.c
   trunk/src/volcfg.c
   trunk/src/vote.c
Log:
header update, some deadlock fixes, 2.6 stuff


Modified: trunk/TODO
===================================================================
--- trunk/TODO	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/TODO	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,8 @@
+* add fixes to end of ocfs_recv_thread to switch sock_release and
+flush_*_work blocks
+
+* disable sigkill and sigterm in ocfs listener thread
+
 * turn off some of the less usefull (but verbose) tracing by default.
 
 * figure out what to do about old style cdsl. Either we error when we see it

Modified: trunk/docs/sample-ocfs.conf
===================================================================
--- trunk/docs/sample-ocfs.conf	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/docs/sample-ocfs.conf	2004-02-10 05:49:45 UTC (rev 30)
@@ -6,31 +6,31 @@
 # node_name serves as a human readable node identifier.
 # Eventhough the value should be unique in a cluster, ocfs does
 # not require it as it does not use it to identify a node.
-node_name = <your node name>
+node_name = node1
 
 # node_number allows the admin to specify the preferred node
 # number for the node in the cluster. However, it works only
 # as a suggestion, because ocfs will not fail the mount if the
 # specified node number is already occupied. Note that the
 # node number of a node can vary across mounts.
-node_number = <preferred node number>
+node_number = 0
 
 # debug_context is used for debugging. It will work only if the
 # driver is built with -DTRACE
-debug_context = <debug context>
+debug_context = 0
 
 # debug_level is used for debugging. It will work only if the
 # driver is built with -DTRACE
-debug_level = <debug level>
+debug_level = 0
 
 # ip_address specifies the host's ip address used by ocfs listener.
-ip_address = <you ip address>
+ip_address = 192.168.0.5
 
 # ip_port specifies the host's ip port used by ocfs listener.
-ip_port = <your listener port>
+ip_port = 7000
 
 #enables or disables the network dlm
-comm_voting = <0 | 1>
+comm_voting = 1
 
 # guid parameter is added by the ocfs_uid_gen script and is used
 # by ocfs to uniquely identify a node. The guid holds within it

Modified: trunk/src/Makefile
===================================================================
--- trunk/src/Makefile	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/Makefile	2004-02-10 05:49:45 UTC (rev 30)
@@ -51,6 +51,7 @@
 
 DEFINES += -DALLOW_NO_HANDLE_SYNCING
 DEFINES += -DOCFS_PARANOID_ABORTS
+#DEFINES += -DBH_SEM_DEBUG
 
 ifeq ($(KVER),vmware)
   KERNELINC = /usr/src/linux-2.4/include

Modified: trunk/src/alloc.c
===================================================================
--- trunk/src/alloc.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/alloc.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * alloc.c
+ *
+ * Extent allocs and frees
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #ifdef __KERNEL__
 #include <ocfs.h>
 #else

Modified: trunk/src/bitmap.c
===================================================================
--- trunk/src/bitmap.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/bitmap.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,9 +1,9 @@
 /*
- * ocfsbitmap.c
+ * bitmap.c
  *
  * Bitmap infrastructure code
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
  */
 
 #if defined(__KERNEL__)

Modified: trunk/src/dcache.c
===================================================================
--- trunk/src/dcache.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/dcache.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * dcache.c
+ *
+ * dentry cache handling code
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #include  <ocfs.h>
 
 #define OCFS_DEBUG_CONTEXT    OCFS_DEBUG_CONTEXT_DCACHE

Modified: trunk/src/dir.c
===================================================================
--- trunk/src/dir.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/dir.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,6 +1,31 @@
+/*
+ * dir.c
+ *
+ * Creates, reads, walks and deletes directory-nodes
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #include  <ocfs.h>
 
-
 #define OCFS_DEBUG_CONTEXT    OCFS_DEBUG_CONTEXT_DIR
 
 static int ocfs_insert_dir_node (ocfs_super * osb, struct buffer_head *bhs[], ocfs_file_entry * InsertEntry, struct buffer_head *lockbh, __s32 * IndexOffset, struct buffer_head **insert_bh, ocfs_journal_handle * handle, struct inode *dir_inode, struct inode *file_inode);

Modified: trunk/src/dlm.c
===================================================================
--- trunk/src/dlm.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/dlm.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -3,7 +3,7 @@
  *
  * Distributed lock manager. Requests and processes lock votes.
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
  */
 
 #include  <ocfs.h>
@@ -77,7 +77,7 @@
 	int status = 0;
 	int tmpstat;
 	__u64 lockseqno = 0;
-	unsigned long jif;
+	unsigned long jif = 0;
 
 	LOG_ENTRY_ARGS ("(0x%08x, 0x%08x, %u)\n", osb, lockres, flags);
 
@@ -321,6 +321,10 @@
 			DISK_LOCK_CURRENT_MASTER (fe) = OCFS_INVALID_NODE_NUM;
 			DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_NO_LOCK;
 			OCFS_BH_PUT_DATA(bh);
+			tmpstat = ocfs_write_bh (osb, bh, 0, NULL);
+			if (tmpstat < 0) {
+				LOG_ERROR_STATUS (status = tmpstat);
+			}
 			goto got_it;
 		}
 
@@ -387,6 +391,10 @@
 			DISK_LOCK_CURRENT_MASTER (fe) = OCFS_INVALID_NODE_NUM;
 			DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_NO_LOCK;
 			OCFS_BH_PUT_DATA(bh);
+			tmpstat = ocfs_write_bh (osb, bh, 0, NULL);
+			if (tmpstat < 0) {
+				LOG_ERROR_STATUS (status = tmpstat);
+			}
 			goto got_it;
 		}
 
@@ -1007,6 +1015,7 @@
 	int status = 0;
 	__u64 offset = 0;
 	ocfs_file_entry *fe = NULL;
+	bool changed = false;
 
 	LOG_ENTRY ();
 
@@ -1016,25 +1025,58 @@
 		LOG_ERROR_STATUS (status);
 		goto finally;
 	}
-	fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(*bh); /* write */
+	fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_READ(*bh); /* read */
 
-	if (flags & DLOCK_FLAG_MASTER)
+	if (flags & DLOCK_FLAG_MASTER && 
+	    DISK_LOCK_CURRENT_MASTER (fe) != lockres->master_node_num) {
+		if (!changed) {
+			OCFS_BH_PUT_DATA(*bh);
+			fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(*bh); /* write */
+		}
+		changed = true;
 		DISK_LOCK_CURRENT_MASTER (fe) = lockres->master_node_num;
+	}
 
-	if (flags & DLOCK_FLAG_LOCK)
+	if (flags & DLOCK_FLAG_LOCK &&
+	    DISK_LOCK_FILE_LOCK (fe) != lockres->lock_type) {
+		if (!changed) {
+			OCFS_BH_PUT_DATA(*bh);
+			fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(*bh); /* write */
+		}
+		changed = true;
 		DISK_LOCK_FILE_LOCK (fe) = lockres->lock_type;
+	}
 
-	if (flags & DLOCK_FLAG_OPEN_MAP)
+	if (flags & DLOCK_FLAG_OPEN_MAP &&
+	    DISK_LOCK_OIN_MAP (fe) != lockres->oin_openmap) {
+		if (!changed) {
+			OCFS_BH_PUT_DATA(*bh);
+			fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(*bh); /* write */
+		}
+		changed = true;
 		DISK_LOCK_OIN_MAP (fe) = lockres->oin_openmap;
+	}
 
-	if (flags & DLOCK_FLAG_SEQ_NUM)
+	if (flags & DLOCK_FLAG_SEQ_NUM &&
+	    DISK_LOCK_SEQNUM (fe) != lockres->last_upd_seq_num) {
+		if (!changed) {
+			OCFS_BH_PUT_DATA(*bh);
+			fe = (ocfs_file_entry *)OCFS_BH_GET_DATA_WRITE(*bh); /* write */
+		}
+		changed = true;
 		DISK_LOCK_SEQNUM (fe) = lockres->last_upd_seq_num;
+	}
 
 	OCFS_BH_PUT_DATA(*bh);
 
-	status = ocfs_write_bh (osb, *bh, 0, inode);
-	if (status < 0) 
-		LOG_ERROR_STATUS (status);
+	if (changed) {
+		if (buffer_jbd(*bh))
+			LOG_ERROR_ARGS("this buffer may be a problem!  block=%lu\n",
+				       (*bh)->b_blocknr);
+		status = ocfs_write_bh (osb, *bh, 0, inode);
+		if (status < 0) 
+			LOG_ERROR_STATUS (status);
+	}
 
 finally:
 	LOG_EXIT_STATUS (status);

Modified: trunk/src/extmap.c
===================================================================
--- trunk/src/extmap.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/extmap.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * extmap.c
+ *
+ * Creates, adds, coalesces, deletes extent maps
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #include  <ocfs.h>
 
 #define OCFS_DEBUG_CONTEXT    OCFS_DEBUG_CONTEXT_EXTMAP

Modified: trunk/src/file.c
===================================================================
--- trunk/src/file.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/file.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * file.c
+ *
+ * File open, close, extend, truncate
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #include  <ocfs.h>
 #define OCFS_DEBUG_CONTEXT    OCFS_DEBUG_CONTEXT_FILE
 

Modified: trunk/src/hash.c
===================================================================
--- trunk/src/hash.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/hash.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,10 +1,9 @@
 /*
  * hash.c
  *
- * Allows for creation and destruction of a hash table which one
- * can use to read, write and delete data.
+ * lockid hash, bh sem hash, inode hash
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -16,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
  */
 
 #include <ocfs.h>
@@ -805,6 +804,9 @@
 			init_MUTEX (&newsem->s_sem);
 			init_waitqueue_head(&newsem->s_wait);
 			newsem->s_pid = 0;
+#ifdef BH_SEM_DEBUG
+			memset(&newsem->s_modifier[0], 0, 40);
+#endif
 			goto again;
 		}
 		sem = NULL;
@@ -850,6 +852,7 @@
 	return ret;
 }
 
+#ifndef BH_SEM_DEBUG
 int ocfs_bh_sem_lock_modify(struct buffer_head *bh)
 {
 	ocfs_bh_sem *sem;
@@ -890,6 +893,7 @@
 
 	return ret;
 }
+#endif
 
 
 
@@ -1079,7 +1083,7 @@
 	return missed;
 }
 
-#define BUFFER_MODIFIED_TIMEOUT   HZ
+#define BUFFER_MODIFIED_TIMEOUT   (10*HZ)
 
 void wait_on_buffer_modified(struct buffer_head * bh)
 {
@@ -1105,9 +1109,15 @@
 			set_task_state(tsk, TASK_INTERRUPTIBLE);
 			schedule_timeout(BUFFER_MODIFIED_TIMEOUT);
 			if (buffer_modified(bh) && 
-			    sem->s_pid != current->pid)
+			    sem->s_pid != current->pid && sem->s_pid != 0) {
+#ifdef BH_SEM_DEBUG
+				LOG_ERROR_ARGS("possible deadlock: block=%lu, owner=%d, this=%d, modifier='%s'\n",
+				       bh->b_blocknr, sem->s_pid, current->pid, sem->s_modifier);
+#else
 				LOG_ERROR_ARGS("possible deadlock: block=%lu, owner=%d, this=%d\n",
 				       bh->b_blocknr, sem->s_pid, current->pid);
+#endif
+			}
 		}
 	} while (buffer_modified(bh) && sem->s_pid != current->pid);
 	set_task_state(tsk, TASK_RUNNING);
@@ -1130,6 +1140,9 @@
 		}
 		clear_buffer_modified(bh);
 		sem->s_pid = 0;
+#ifdef BH_SEM_DEBUG
+		memset(&sem->s_modifier[0], 0, 40);
+#endif
 		ocfs_bh_sem_unlock(bh);
 		if (waitqueue_active(&sem->s_wait))
 			wake_up(&sem->s_wait);

Modified: trunk/src/heartbeat.c
===================================================================
--- trunk/src/heartbeat.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/heartbeat.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,9 +1,9 @@
 /*
- * ocfsheartbeat.c
+ * heartbeat.c
  *
  * Keeps track of alive nodes in the cluster.
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
  */
 
 #if !defined(USERSPACE_TOOL)

Modified: trunk/src/inc/io.h
===================================================================
--- trunk/src/inc/io.h	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/inc/io.h	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * io.h
+ *
+ * Buffer cache handling functions defined
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh
+ */
+
 #ifndef OCFSIO_H
 #define OCFSIO_H
 
@@ -103,7 +129,20 @@
 	return kaddr;
 }
 
-
+#ifdef BH_SEM_DEBUG
+#define OCFS_BH_GET_DATA_WRITE(bh) ({ \
+	unsigned char *kaddr; \
+	while (1) { \
+		if (ocfs_bh_sem_lock_modify(bh) == OCFS_BH_SEM_WAIT_ON_MODIFY) { \
+			ocfs_bh_sem_unlock(bh); \
+			wait_on_buffer_modified(bh); \
+		} else \
+			break; \
+	} \
+	kaddr = (kmap((bh)->b_page)) + ((unsigned long)(bh)->b_data & ~PAGE_MASK); \
+	kaddr; \
+})
+#else
 static inline void * OCFS_BH_GET_DATA_WRITE(struct buffer_head *bh)
 {
 	unsigned char *kaddr;
@@ -125,7 +164,10 @@
 	kaddr += ((unsigned long)(bh)->b_data & ~PAGE_MASK);
 	return kaddr;
 }
+#endif
 
+
+
 static inline void OCFS_BH_PUT_DATA(struct buffer_head *bh)
 {
 	kunmap((bh)->b_page);

Modified: trunk/src/inc/journal.h
===================================================================
--- trunk/src/inc/journal.h	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/inc/journal.h	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,9 +1,9 @@
 /*
- * ocfsjournal.h
+ * journal.h
  *
  * Defines journalling api and structures.
  *
- * Copyright (C) 2003 Oracle.  All rights reserved.
+ * Copyright (C) 2003, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -20,8 +20,8 @@
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh
  */
 
 #ifndef  _OCFSJOURNAL_H_

Modified: trunk/src/inc/ocfs.h
===================================================================
--- trunk/src/inc/ocfs.h	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/inc/ocfs.h	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * ocfs.h
+ *
+ * Defines macros and structures used in ocfs
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #ifndef OCFS_H
 #define OCFS_H
 
@@ -5,7 +31,15 @@
 struct mem_dqinfo;
 extern inline void mark_info_dirty(struct mem_dqinfo *info);
 
-#ifndef LINUX_2_5
+/*
+** System header files
+*/
+#define   __KERNEL_SYSCALLS__
+#include  <linux/version.h>
+#include  <linux/types.h>
+#include  <linux/config.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 #ifdef __ia64__
 extern inline void prefetch(const void *x);
 extern inline void prefetchw(const void *x);
@@ -15,23 +49,14 @@
 #endif
 extern inline int generic_fls(int x);
 extern inline int get_bitmask_order(unsigned int count);
-#endif /* !LINUX_2_5 */
+#endif /* 2.4 kernel */
 
-
-/*
-** System header files
-*/
-#define   __KERNEL_SYSCALLS__
-#include  <linux/version.h>
-#include  <linux/types.h>
-#include  <linux/config.h>
 #include  <linux/module.h>
 #include  <linux/init.h>
 #include  <linux/kernel.h>
 #include  <asm/byteorder.h>
 #include  <linux/spinlock.h>
 #include  <linux/slab.h>
-#include  <linux/slab.h>
 #include  <linux/sched.h>
 #include  <linux/delay.h>
 #include  <linux/wait.h>
@@ -41,7 +66,7 @@
 #include  <linux/random.h>
 #include  <linux/string.h>
 #include  <linux/jbd.h>
-#ifdef LINUX_2_5
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 #include <linux/writeback.h>
 #else
 #include  <linux/locks.h>
@@ -56,13 +81,13 @@
 #include  <linux/net.h>
 #include  <net/sock.h>
 #include  <linux/ctype.h>
-#ifdef LINUX_2_5
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 #include  <linux/workqueue.h>
 #else
 #include  <linux/tqueue.h>
 #endif
 #include  <linux/inet.h>
-#ifdef LINUX_2_5
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 #include <asm/statfs.h>
 #include <linux/blkdev.h>
 #include <linux/in.h>
@@ -71,8 +96,6 @@
 
 #include "journal.h"
 
-
-
 typedef enum { false = 0, true = 1 } ocfs_bool;
 
 /* This should be removed and all old code fixed to just use ocfs_bool */
@@ -90,7 +113,6 @@
 #define OCFS_GCC_ATTR_PACKALGN
 #endif
 
-
 enum
 {
 	OCFS_VOTE_REQUEST = 1,
@@ -116,19 +138,16 @@
 	REMASTER_REQUESTOR    // remaster lock to requestor
 };
 
-
 enum {
 	NOT_VOTING = 0, 
 	DOING_HEARTBEAT, 
 	SKIPPED_HEARTBEAT
 };
 
-
 #define  OCFS_MAX_DLM_PKT_SIZE			256
 #define  OCFS_DLM_MAX_MSG_SIZE			256
 #define  OCFS_DLM_MSG_MAGIC			0x79677083
 
-
 enum {
     OSB_DATA_LOCK,
     OSB_MD_LOCK,
@@ -179,7 +198,7 @@
 #endif
 
 
-#ifdef LINUX_2_5
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 #define OcfsQuerySystemTime(t)						      \
 	do {								      \
 		*t = (__u64)(CURRENT_TIME.tv_sec) * (__u64) 10000000;	      \
@@ -1084,7 +1103,7 @@
 #define  OCFS_IOC_GETTYPE        _IOR(OCFS_IOC_MAGIC, 1, struct ocfs_ioc)
 
 
-#ifndef LINUX_2_5
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 typedef long sector_t;
 #define map_bh(bh, sb, blk)   \
 	({ \
@@ -1094,12 +1113,12 @@
 	})
 #endif
 
-#ifndef LINUX_2_5
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 #include <linux/iobuf.h>
 #endif /* for 2.5 - no more kiovec, kiobuf structures - vfs handles
 	* this for us (direct i/o) */
 #include <linux/sysctl.h>
-#ifdef LINUX_2_5
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 #include <linux/moduleparam.h>
 #endif
 
@@ -1113,48 +1132,32 @@
 #endif
 
 /* Operates on a struct super_block * */
-#ifdef LINUX_2_5
-#define OCFS_SB_GET_KDEV(sb)  (to_kdev_t(sb->s_dev))
-#define OCFS_SET_INODE_DEV(sb, inode)   (inode->i_rdev = OCFS_SB_GET_KDEV(sb))
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#define OCFS_SET_INODE_DEV(sb, inode)   (inode->i_rdev = sb->sdev)
 typedef struct block_device * ocfs_blockdev;
 typedef dev_t ocfs_dev;
 #define OCFS_NODEV     NODEV.value
 #define OCFS_GET_BLOCKDEV(sb)   ((sb)->s_bdev)
-#else
-#define OCFS_SB_GET_KDEV(sb)  (sb->s_dev)
-#define OCFS_SET_INODE_DEV(sb, inode)   (inode->i_dev = OCFS_SB_GET_KDEV(sb))
+#else /* 2.4 kernel */
+#define OCFS_SET_INODE_DEV(sb, inode)   (inode->i_dev = sb->s_dev)
 typedef kdev_t ocfs_blockdev;
 typedef int ocfs_dev;
 #define OCFS_NODEV     NODEV
 #define OCFS_GET_BLOCKDEV(sb)   ((sb)->s_dev)
 #endif
 
-
-
-
-//#if LINUX_VERSION_CODE >= LinuxVersionCode(2,5,0)
-
-//#ifndef LINUX_2_5
-//#define LINUX_2_5
-//#endif
-
-//#endif
-
-#if LINUX_2_5
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 /* No longer exists in 2.5 */
 #define fsync_inode_buffers(inode) sync_mapping_buffers(inode->i_mapping)
 #define getblk(dev, blk, sz)	__getblk(dev, blk, sz)
-#define MOD_INC_USE_COUNT do { } while(0)
-#define MOD_DEC_USE_COUNT do { } while(0)
-#endif /* LINUX_2_5 */
+#endif /* >= 2.6.0  */
 
-#ifdef LINUX_2_5
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 #define OCFS_GENERIC_SB_P(sb)	((ocfs_super *)(sb->s_fs_info))
 #else
 #define OCFS_GENERIC_SB_P(sb)	((ocfs_super *)(sb->u.generic_sbp))
 #endif
 
-
 extern __u32 debug_context;
 extern __u32 debug_level;
 extern __u32 debug_exclude;
@@ -1553,11 +1556,18 @@
 	struct semaphore s_sem;
 	struct list_head s_list;
 	unsigned long s_blocknr;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+	dev_t s_dev;
+#else
 	kdev_t s_dev;
+#endif
 	atomic_t s_refcnt;
 	struct buffer_head *s_bh;
 	wait_queue_head_t s_wait;
 	pid_t s_pid;
+#ifdef BH_SEM_DEBUG
+	char s_modifier[40];
+#endif
 } ocfs_bh_sem;
 
 
@@ -2345,7 +2355,7 @@
 	__s32 msg_len;
 	__u8 msg[OCFS_MAX_DLM_PKT_SIZE];
 	int status;
-#ifdef LINUX_2_5
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 	struct work_struct ipc_wq;
 #else
 	struct tq_struct ipc_tq;
@@ -2364,7 +2374,7 @@
 
 typedef struct _ocfs_cfg_task
 {
-#ifdef LINUX_2_5
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 	struct work_struct cfg_wq;
 #else
 	struct tq_struct cfg_tq;

Modified: trunk/src/inc/proto.h
===================================================================
--- trunk/src/inc/proto.h	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/inc/proto.h	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * proto.h
+ *
+ * Function prototypes
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 int ocfs_allocate_extent (ocfs_super * osb, ocfs_inode * oin, struct buffer_head *fe_bh, ocfs_journal_handle *handle,__u64 actualDiskOffset, __u64 actualLength, struct inode *inode);
 int ocfs_kill_this_tree(ocfs_super *osb, struct buffer_head *extent_grp_bh, ocfs_bitmap_free_head *free_head, struct inode *inode);
 int ocfs_free_extents_for_truncate (ocfs_super * osb, ocfs_file_entry * FileEntry, ocfs_journal_handle *handle, ocfs_bitmap_free_head *free_head, struct inode *inode);
@@ -88,7 +114,6 @@
 int ocfs_bh_sem_hash_prune(void);
 int ocfs_bh_sem_hash_prune_all(void);
 int ocfs_bh_sem_lock(struct buffer_head *bh);
-int ocfs_bh_sem_lock_modify(struct buffer_head *bh);
 int ocfs_bh_sem_unlock(struct buffer_head *bh);
 int ocfs_bh_sem_hash_cleanup_pid(pid_t pid);
 void ocfs_bh_sem_up(ocfs_bh_sem *sem);
@@ -101,7 +126,39 @@
 void wait_on_buffer_modified(struct buffer_head * bh);
 void ocfs_clear_buffer_modified(struct buffer_head *bh);
 
+#ifdef BH_SEM_DEBUG
+#define ocfs_bh_sem_lock_modify(bh) ({ \
+	ocfs_bh_sem *sem; \
+	int ret; \
+	sem = ocfs_bh_sem_lookup(bh); \
+	if (!sem) \
+		BUG(); \
+	ocfs_bh_sem_down(sem); \
+	ret = OCFS_BH_SEM_GOT_LOCK; \
+	if (buffer_modified(bh)) { \
+		if (sem->s_pid == 0) { \
+			sem->s_pid = current->pid; \
+			snprintf(sem->s_modifier, 40, "%s:%s:%d",  __FUNCTION__, __FILE__, __LINE__); \
+			ocfs_bh_sem_get(sem); \
+		} else if (sem->s_pid != current->pid) { \
+			ret = OCFS_BH_SEM_WAIT_ON_MODIFY; \
+		} \
+	} else { \
+		if (sem->s_pid != 0) \
+			printk("first to modify, but pid is NOT 0!\n"); \
+		sem->s_pid = current->pid; \
+		snprintf(sem->s_modifier, 40, "%s:%s:%d",  __FUNCTION__, __FILE__, __LINE__); \
+		ocfs_bh_sem_get(sem); \
+		set_buffer_modified(bh); \
+	} \
+	ret; \
+})
+#else
+int ocfs_bh_sem_lock_modify(struct buffer_head *bh);
+#endif
 
+
+
 void ocfs_version_print (void);
 
 

Modified: trunk/src/inode.c
===================================================================
--- trunk/src/inode.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/inode.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * inode.c
+ *
+ * vfs' aops, fops, dops and iops
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #include  <ocfs.h>
 
 #define OCFS_DEBUG_CONTEXT    OCFS_DEBUG_CONTEXT_INODE

Modified: trunk/src/io.c
===================================================================
--- trunk/src/io.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/io.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,9 +1,9 @@
 /*
  * io.c
  *
- * Defines functions of I/O api
+ * Buffer cache handling
  *
- * Copyright (C) 2003 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Kurt Hackel, Sunil Mushran, Manish Singh, Wim Coekaerts,
- *          Mark Fasheh, Joel Becker
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
  */
 
 #include <ocfs.h>

Modified: trunk/src/ioctl.c
===================================================================
--- trunk/src/ioctl.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/ioctl.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,9 +1,9 @@
 /*
- * ocfsioctl.c
+ * ioctl.c
  *
- * ocfs' ioctl interface
+ * ioctl interface
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
  */
 
 #include <ocfs.h>

Modified: trunk/src/journal.c
===================================================================
--- trunk/src/journal.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/journal.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -3,7 +3,7 @@
  *
  * Defines functions of journalling api
  *
- * Copyright (C) 2003 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2003, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Kurt Hackel, Sunil Mushran, Manish Singh, Wim Coekaerts,
- *          Mark Fasheh, Joel Becker
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Joel Becker
  */
 
 #include <ocfs.h>
@@ -1705,7 +1705,6 @@
 	int status = 0, misses = 0, finish = 0;
 	ocfs_super *osb = (ocfs_super *)arg;
 	ocfs_commit_task *commit = osb->commit;
-	struct list_head *head = &commit->c_list;
 	char name[16];
 	ocfs_journal * journal = &osb->journal;
 

Modified: trunk/src/namei.c
===================================================================
--- trunk/src/namei.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/namei.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * namei.c
+ *
+ * Create and rename file, directory, symlinks
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #include  <ocfs.h>
 
 #define OCFS_DEBUG_CONTEXT    OCFS_DEBUG_CONTEXT_NAMEI
@@ -378,6 +404,7 @@
 	DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_ENABLE_CACHE_LOCK;
 	DISK_LOCK_READER_NODE (fe) = osb->node_num;
 	DISK_LOCK_WRITER_NODE (fe) = osb->node_num;
+	DISK_LOCK_OIN_MAP(fe) = (1 << osb->node_num);
        	OcfsQuerySystemTime(&t);
         DISK_LOCK_LAST_WRITE(fe) = t;
        	DISK_LOCK_LAST_READ(fe) = t;
@@ -802,7 +829,7 @@
 		    && (!IS_VALID_EXTENT_DATA(extent))) {
 			LOG_ERROR_STATUS(status = -EINVAL);
 			OCFS_BH_PUT_DATA(extent_bh);
-			clear_buffer_modified(extent_bh);
+			ocfs_clear_buffer_modified(extent_bh);
 			goto bail;
 		}
 
@@ -1098,6 +1125,7 @@
 		DISK_LOCK_LAST_READ (tmpfe) = t;
 		DISK_LOCK_READER_NODE (tmpfe) = osb->node_num;
 		DISK_LOCK_WRITER_NODE (tmpfe) = osb->node_num;
+		DISK_LOCK_OIN_MAP(tmpfe) = (1 << osb->node_num);
 		tmpfe->modify_time = OCFS_CURRENT_TIME;
 
 		if (tmpfe->attribs & OCFS_ATTRIB_DIRECTORY)

Modified: trunk/src/nm.c
===================================================================
--- trunk/src/nm.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/nm.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,9 +1,9 @@
 /*
- * ocfsgennm.c
+ * nm.c
  *
- * process vote, nm thread, etc.
+ * net and disk process vote, nm thread, etc.
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
  */
 
 #include <ocfs.h>
@@ -232,7 +232,6 @@
 	__u64 curr_node_map;
 	__u64 cfg_seq_num;
 	int which, pruned;
-	int flush_misses = 0;
 	struct buffer_head *bh = NULL;
 
 	LOG_ENTRY ();

Modified: trunk/src/oin.c
===================================================================
--- trunk/src/oin.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/oin.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * oin.c
+ *
+ * Create, verify, release oin
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #include  <ocfs.h>
 
 #define OCFS_DEBUG_CONTEXT      OCFS_DEBUG_CONTEXT_OIN

Modified: trunk/src/osb.c
===================================================================
--- trunk/src/osb.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/osb.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * osb.c
+ *
+ * Initialize, verify osb
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #include  <ocfs.h>
 
 #define OCFS_DEBUG_CONTEXT    OCFS_DEBUG_CONTEXT_OSB

Modified: trunk/src/proc.c
===================================================================
--- trunk/src/proc.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/proc.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,9 +1,9 @@
 /*
- * ocfsproc.c
+ * proc.c
  *
- * ocfs proc interface
+ * proc interface
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh
  */
 
 #define OCFSPROC_PRIVATE_DECLS

Modified: trunk/src/sem.c
===================================================================
--- trunk/src/sem.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/sem.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * sem.c
+ *
+ * Init, del, down and up recursive lock, ocfs_sem
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh
+ */
+
 #include  <ocfs.h>
 
 #define OCFS_DEBUG_CONTEXT    OCFS_DEBUG_CONTEXT_SEM

Modified: trunk/src/super.c
===================================================================
--- trunk/src/super.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/super.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * super.c
+ *
+ * load/unload driver, mount/dismount volumes
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
+ */
+
 #include  <ocfs.h>
 #include <linux/utsname.h>
 

Modified: trunk/src/sysfile.c
===================================================================
--- trunk/src/sysfile.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/sysfile.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -3,7 +3,7 @@
  *
  * Initialize, read, write, etc. system files.
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
  */
 
 #ifdef __KERNEL__

Modified: trunk/src/util.c
===================================================================
--- trunk/src/util.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/util.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -3,7 +3,7 @@
  *
  * General purpose code
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh
  */
 
 #ifdef __KERNEL__

Modified: trunk/src/ver.c
===================================================================
--- trunk/src/ver.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/ver.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,3 +1,29 @@
+/*
+ * ver.c
+ *
+ * version string
+ *
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ *
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh
+ */
+
 #include  <ocfs.h>
 #include <linux/kernel.h>
 

Modified: trunk/src/volcfg.c
===================================================================
--- trunk/src/volcfg.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/volcfg.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -3,7 +3,7 @@
  *
  * Auto configuration, namely, node number.
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh, Neeraj Goyal, Suchit Kaura
  */
 
 #include <ocfs.h>

Modified: trunk/src/vote.c
===================================================================
--- trunk/src/vote.c	2004-02-06 22:11:47 UTC (rev 29)
+++ trunk/src/vote.c	2004-02-10 05:49:45 UTC (rev 30)
@@ -1,9 +1,9 @@
 /*
  * vote.c
  *
- * IPC based DLM
+ * netdlm listener, receive, verify and send messages
  *
- * Copyright (C) 2002 Oracle Corporation.  All rights reserved.
+ * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -15,13 +15,13 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  * 
- * You should have recieved a copy of the GNU General Public
+ * You should have received a copy of the GNU General Public
  * License along with this program; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 021110-1307, USA.
  *
- * Authors: Neeraj Goyal, Suchit Kaura, Kurt Hackel, Sunil Mushran,
- *          Manish Singh, Wim Coekaerts, Mark Fasheh
+ * Authors: Kurt Hackel, Mark Fasheh, Sunil Mushran, Wim Coekaerts,
+ *	    Manish Singh
  */
 
 #include <ocfs.h>



More information about the Ocfs2-commits mailing list