[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