[Ocfs2-commits] jlbec commits r1235 - trunk/src

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri Jul 2 18:09:19 CDT 2004


Author: jlbec
Date: 2004-07-02 17:09:17 -0500 (Fri, 02 Jul 2004)
New Revision: 1235

Modified:
   trunk/src/dlm.c
   trunk/src/heartbeat.c
   trunk/src/nm.c
   trunk/src/ocfs.h
   trunk/src/ocfs2_disk_dlm.h
   trunk/src/ocfs2_fs.h
   trunk/src/super.c
   trunk/src/volcfg.c
   trunk/src/vote.c
Log:

o Make node_num stuff a s16... as -1 is INVALID_NODE_NUM, it better be
  signed.
o Make max_nodes a u16...no reason for it to be bigger.



Modified: trunk/src/dlm.c
===================================================================
--- trunk/src/dlm.c	2004-07-02 18:36:19 UTC (rev 1234)
+++ trunk/src/dlm.c	2004-07-02 22:09:17 UTC (rev 1235)
@@ -224,7 +224,7 @@
 	__u32 timewaited = 0;
 	ocfs2_dinode *fe = NULL;
 	struct buffer_head *bh = NULL;
-	__u32 curr_master;
+	__s16 curr_master;
 	__u8 lock_level;
 	int disk_vote = 0;
 	ocfs_lock_res *lockres = GET_INODE_LOCKRES(inode);
@@ -1040,7 +1040,7 @@
 	int disk_vote = 0;
 	ocfs2_dinode *fe = NULL;
 	struct buffer_head *tmpbh = NULL, **b = NULL;
-	__u32 curr_master;
+	__s16 curr_master;
 	int lockflags =
 		(OCFS_I(inode)->ip_flags & OCFS_INODE_SYSTEM_FILE) ?
 		0 : OCFS_BH_CACHED;

Modified: trunk/src/heartbeat.c
===================================================================
--- trunk/src/heartbeat.c	2004-07-02 18:36:19 UTC (rev 1234)
+++ trunk/src/heartbeat.c	2004-07-02 22:09:17 UTC (rev 1235)
@@ -134,8 +134,8 @@
 {
 	ocfs_publish *publish;
 	ocfs_vol_node_map *node_map;
-	__u32 i;
-	__u32 num_nodes;
+	int i;
+	__u16 num_nodes;
 
 	LOG_ENTRY_ARGS ("(0x%p, 0x%p, %u)\n", osb, bhs, first_time);
 

Modified: trunk/src/nm.c
===================================================================
--- trunk/src/nm.c	2004-07-02 18:36:19 UTC (rev 1234)
+++ trunk/src/nm.c	2004-07-02 22:09:17 UTC (rev 1235)
@@ -263,9 +263,8 @@
 	ocfs_publish *publish;
 	__u32 i;
 	unsigned long j;
-	__u32 highest_vote_node;
-	__u32 num_nodes = 0;
-	__u32 vote_node;
+	__s16 highest_vote_node, vote_node;
+	__u16 num_nodes = 0;
 	ocfs_node_config_hdr *node_cfg_hdr = NULL;
 	__u64 cfg_seq_num;
 	int which;
@@ -700,7 +699,8 @@
 	int status = 0;
 	int tmpstat = 0;
 	ocfs_lock_res *lockres = NULL;
-	__u32 flags, num_nodes;
+	__u32 flags;
+	__u16 num_nodes;
 	ocfs2_dinode *fe = NULL;
 	ocfs_vote *vote = NULL;
 	struct buffer_head *fe_bh = NULL, *vote_bh = NULL;
@@ -715,7 +715,7 @@
 	int have_io_sem = 0;
 	ocfs_publish *publish = (disk_vote ? ctxt->u.publish : NULL);
 	ocfs_dlm_msg *dlm_msg = (comm_vote ? ctxt->u.dlm_msg : NULL);
-	__u32 node_num = ctxt->node_num;
+	__s16 node_num = ctxt->node_num;
 	__u64 lock_id, seq_num;
 	int needs_trunc = 0;
 	ocfs_node_map disk_map;

Modified: trunk/src/ocfs.h
===================================================================
--- trunk/src/ocfs.h	2004-07-02 18:36:19 UTC (rev 1234)
+++ trunk/src/ocfs.h	2004-07-02 22:09:17 UTC (rev 1235)
@@ -190,7 +190,7 @@
 #define  OCFS_DLM_EXCLUSIVE_LOCK       (0x2)
 #define  OCFS_DLM_CACHE_LOCK           (0x8)
 
-#define  OCFS_INVALID_NODE_NUM         UINT_MAX
+#define  OCFS_INVALID_NODE_NUM         -1
 
 /* lockres->lock_state flags */
 #define  FLAG_READONLY_DROPPING        0x00000008
@@ -378,7 +378,7 @@
 #define OCFS_NODE_MAP_MAX_NODES    256
 typedef struct _ocfs_node_map
 {
-	__u32 num_nodes;
+	__u16 num_nodes;
 	unsigned long map[BITS_TO_LONGS(OCFS_NODE_MAP_MAX_NODES)];
 } ocfs_node_map;
 
@@ -387,12 +387,12 @@
 /* XXX: fields that can go if we move this to the inode private */
 struct _ocfs_lock_res
 {
-	__u32 master_node_num;	/* Master Node */
+	__s16 master_node_num;	/* Master Node */
 	__u32 lock_state;
 	__u32 lock_holders;
 	__u8 lock_type;
 	struct semaphore lock_mutex;
-	__u32 readonly_node;
+	__s16 readonly_node;
 	ocfs_node_map readonly_map;
 	ocfs_node_map oin_openmap;
 	__u64 last_upd_seq_num;
@@ -588,10 +588,10 @@
 	BARF_BARF_BARF **node_cfg_info;
 	__u64 cfg_seq_num;
 	int cfg_initialized;
-	u32 max_nodes;
-	u32 num_cfg_nodes;
-	u32 num_nodes;
-	u32 node_num;
+	u16 max_nodes;
+	u16 num_cfg_nodes;
+	u16 num_nodes;
+	s16 node_num;
 	int reclaim_id;		/* reclaim the original node number*/
 	__u32 hbt;
 	int s_sectsize_bits;
@@ -659,7 +659,7 @@
 	kmem_cache_t *inode_cache;
 	kmem_cache_t *extent_cache;
 	__u32 flags;
-	__u32 pref_node_num;		/* preferred... osb has the real one */
+	__s16 pref_node_num;		/* preferred... osb has the real one */
 	ocfs_guid guid;			/* uniquely identifies a node */
 	char *node_name;		/* human readable node identification */
 	char *cluster_name;		/* unused */
@@ -737,8 +737,8 @@
 	__u32 magic;
 	__u32 msg_len;
 	__u8 vol_id[MAX_VOL_ID_LENGTH];
-	__u32 src_node;
-	__u32 dst_node;
+	__s16 src_node;
+	__s16 dst_node;
 	__u32 msg_type;
 	__u32 check_sum;
 	__u8 msg_buf[0];
@@ -823,7 +823,7 @@
 typedef struct _ocfs_vote_request_ctxt
 {
 	int request_method;
-	__u32 node_num;
+	__s16 node_num;
 	int status;
 	union {
 		ocfs_dlm_msg *dlm_msg;
@@ -856,7 +856,7 @@
 	__u64 length;
 	__u64 file_off;
 	__u32 type;
-	__u32 node_num;
+	__s16 node_num;
 }
 ocfs_bitmap_update;
 

Modified: trunk/src/ocfs2_disk_dlm.h
===================================================================
--- trunk/src/ocfs2_disk_dlm.h	2004-07-02 18:36:19 UTC (rev 1234)
+++ trunk/src/ocfs2_disk_dlm.h	2004-07-02 22:09:17 UTC (rev 1235)
@@ -90,7 +90,8 @@
 /*00*/	ocfs2_disk_lock disk_lock;
 /*30*/	__u8 signature[OCFS2_NODE_CONFIG_SIGN_LEN];
 	__u32 version;
-	__u32 num_nodes;
+	__u16 num_nodes;
+	__u16 reserved1;
 /*40*/	__u32 last_node;
 	__u32 onch_pad;
 	__u64 cfg_seq_num;

Modified: trunk/src/ocfs2_fs.h
===================================================================
--- trunk/src/ocfs2_fs.h	2004-07-02 18:36:19 UTC (rev 1234)
+++ trunk/src/ocfs2_fs.h	2004-07-02 22:09:17 UTC (rev 1235)
@@ -252,7 +252,7 @@
 /*00*/	__u8 h_signature[8];		/* Signature for verification */
 	__u64 h_suballoc_blkno;		/* Node suballocator offset,
 					   in blocks */
-/*10*/	__u16 h_suballoc_node;		/* Node suballocator this
+/*10*/	__s16 h_suballoc_node;		/* Node suballocator this
 					   extent_header belongs to */
 	__u16 h_reserved1;
 	__u32 h_reserved2;
@@ -272,9 +272,10 @@
  */
 typedef struct _ocfs2_disk_lock
 {
-/*00*/	__u32 dl_master;	/* Node number of current master */
+/*00*/	__s16 dl_master;	/* Node number of current master */
+	__u16 dl_reserved1;
 	__u8 dl_level;		/* Lock level */
-	__u8 dl_reserved1[3];	/* Pad to u64 */
+	__u8 dl_reserved2[3];	/* Pad to u64 */
 	__u64 dl_seq_num;	/* Lock transaction seqnum */
 /*10*/	__u32 dl_node_map[8];	/* Bitmap of interested nodes,
 				   was __u32 */ 
@@ -305,10 +306,11 @@
 					   directory dinode */
 	__u32 s_blocksize_bits;		/* Blocksize for this fs */
 	__u32 s_clustersize_bits;	/* Clustersize for this fs */
-/*40*/	__u32 s_max_nodes;		/* Max nodes in this cluster before
+/*40*/	__u16 s_max_nodes;		/* Max nodes in this cluster before
 					   tunefs required */
-	__u32 s_reserved1;
-	__u64 s_reserved2;
+	__u16 s_reserved1;
+	__u32 s_reserved2;
+	__u64 s_reserved3;
 /*50*/	__u8  s_label[64];		/* Label for mounting, etc. */
 /*90*/	__u8  s_uuid[16];		/* Was vol_id */
 /*A0*/
@@ -338,7 +340,7 @@
 /*00*/	__u8 i_signature[8];		/* Signature for validation */
 	__u32 i_generation;		/* Generation number */
 	__u16 i_reserved1;
-	__u16 i_suballoc_node;		/* Node suballocater this inode
+	__s16 i_suballoc_node;		/* Node suballocater this inode
 					   belongs to */
 /*10*/	__u64 i_suballoc_blkno;		/* Node suballocator offset,
        					   in blocks */

Modified: trunk/src/super.c
===================================================================
--- trunk/src/super.c	2004-07-02 18:36:19 UTC (rev 1234)
+++ trunk/src/super.c	2004-07-02 22:09:17 UTC (rev 1235)
@@ -79,7 +79,7 @@
 __u32 mount_cnt;          /* Number of volumes currently mounted */
 
 char *node_name = NULL;
-__u32 node_number = OCFS_INVALID_NODE_NUM;
+__s32 node_number = OCFS_INVALID_NODE_NUM;
 __u32 debug_context = 0;
 __u32 debug_level = 0;
 __u32 debug_exclude = 0;
@@ -132,7 +132,7 @@
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 module_param (node_name, charp, 0);
-module_param (node_number, uint, 0);
+module_param (node_number, int, 0);
 module_param (debug_context, uint, 0);
 module_param (debug_level, uint, 0);
 module_param (debug_exclude, uint, 0);
@@ -1337,6 +1337,12 @@
 	/* this needs to be done before most other initializations */
 	di = (ocfs2_dinode *) bh->b_data;
 	osb->max_nodes = le32_to_cpu(di->id2.i_super.s_max_nodes);
+	if (osb->max_nodes > OCFS2_MAX_NODES) {
+		LOG_ERROR_ARGS("Invalid number of nodes (%u)\n",
+			       osb->max_nodes);
+		status = -EINVAL;
+		goto done_nojournal;
+	}
 	printk("max_nodes for this device: %u\n", osb->max_nodes);
 
 	osb->s_feature_compat =

Modified: trunk/src/volcfg.c
===================================================================
--- trunk/src/volcfg.c	2004-07-02 18:36:19 UTC (rev 1234)
+++ trunk/src/volcfg.c	2004-07-02 22:09:17 UTC (rev 1235)
@@ -46,7 +46,7 @@
 
 static void ocfs_worker (void *arg);
 static void ocfs_assert_lock_owned (unsigned long arg);
-static int ocfs_add_to_disk_config (ocfs_super * osb, __u32 pref_node_num, ocfs_node_config_info * new_disk_node);
+static int ocfs_add_to_disk_config (ocfs_super * osb, __s16 pref_node_num, ocfs_node_config_info * new_disk_node);
 static int ocfs_write_volcfg_header (ocfs_super * osb, ocfs_volcfg_op op);
 static int ocfs_update_disk_config (ocfs_super * osb, __u32 node_num, ocfs_node_config_info * disk);
 static int ocfs_release_disk_lock (ocfs_super * osb, __u64 lock_off);
@@ -131,12 +131,12 @@
  * ocfs_add_to_disk_config()
  *
  */
-static int ocfs_add_to_disk_config (ocfs_super * osb, __u32 pref_node_num, ocfs_node_config_info * new_disk_node)
+static int ocfs_add_to_disk_config (ocfs_super * osb, __s16 pref_node_num, ocfs_node_config_info * new_disk_node)
 {
 	int status = 0;
 	int i;
 	ocfs_node_config_info *disk_node = NULL;
-	__u32 node_num;
+	__s16 node_num;
 	struct buffer_head **cfg_bhs = NULL;
 
 	LOG_ENTRY ();
@@ -294,7 +294,7 @@
  *
  * Returns 0 if success, < 0 if error.
  */
-static int ocfs_config_with_disk_lock (ocfs_super * osb, __u64 lock_off, __u8 * cfg_buf, __u32 node_num, ocfs_volcfg_op op)
+static int ocfs_config_with_disk_lock (ocfs_super * osb, __u64 lock_off, __u8 * cfg_buf, __s16 node_num, ocfs_volcfg_op op)
 {
 	int status = 0;
 	char *lock_buf;
@@ -302,7 +302,7 @@
 	int break_lock = 0;
 	ocfs2_disk_lock *disk_lock;
 	ocfs_cfg_task *cfg_task;
-	__u64 lock_node_num = OCFS_INVALID_NODE_NUM;
+	__s16 lock_node_num = OCFS_INVALID_NODE_NUM;
 	struct buffer_head *bh = NULL;
 	int i;
 

Modified: trunk/src/vote.c
===================================================================
--- trunk/src/vote.c	2004-07-02 18:36:19 UTC (rev 1234)
+++ trunk/src/vote.c	2004-07-02 22:09:17 UTC (rev 1235)
@@ -165,7 +165,7 @@
 static int ocfs_send_bcast (ocfs_super * osb, ocfs_node_map *votemap, ocfs_dlm_msg * dlm_msg)
 {
 	int status = 0, error;
-	__u32 num;
+	__s16 num;
 	BARF_BARF_BARF *node;
 	struct sockaddr_in sin;
 	mm_segment_t oldfs;
@@ -672,7 +672,7 @@
 	ocfs_dlm_req_master *req_master;
 	struct list_head *iter_osb, *temp_iter;
 	ocfs_vote_request_ctxt ctxt;
-	__u32 src_node;
+	__s16 src_node;
 
 	LOG_ENTRY ();
 



More information about the Ocfs2-commits mailing list