[Pvfs2-cvs] commit by shuangy in pvfs2/src/common/misc: dist-dir-utils.c dist-dir-utils.h pint-util.c

CVS commit program cvs at parl.clemson.edu
Mon Dec 13 16:17:00 EST 2010


Update of /projects/cvsroot/pvfs2/src/common/misc
In directory parlweb1:/tmp/cvs-serv12810/src/common/misc

Modified Files:
      Tag: Orange-Elaine-Distr-Dir-Branch
	dist-dir-utils.c dist-dir-utils.h pint-util.c 
Log Message:
1. sys-getattr only contact active dirdata servers. 2. cleanup mkdir. 3. fix a memory leak in PINT_free_object_attr.


Index: dist-dir-utils.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/common/misc/Attic/dist-dir-utils.c,v
diff -p -u -r1.1.2.4 -r1.1.2.5
--- dist-dir-utils.c	23 Aug 2010 00:10:17 -0000	1.1.2.4
+++ dist-dir-utils.c	13 Dec 2010 21:17:00 -0000	1.1.2.5
@@ -136,6 +136,30 @@ int PINT_init_dist_dir_state(
 	return 0;
 }
 
+/* functions to test whether a dirdata server is active or not. 
+ * will return 0 if server_no is out of bound or server is inactive.
+ */
+int PINT_is_dist_dir_bucket_active(
+		const PVFS_dist_dir_attr *dist_dir_attr_p, 
+		const PVFS_dist_dir_bitmap bitmap,
+		const int server_no)
+{
+    if((server_no < 0) ||
+            (server_no >= dist_dir_attr_p->num_servers))
+    {
+        return 0;
+    }
+
+    if(TST_BIT(bitmap, server_no))
+    {
+        return 1;
+    }
+    else
+    {
+        return 0;
+    }
+
+}
 
 /*
  * client uses this function to find the server that should hold

Index: dist-dir-utils.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/common/misc/Attic/dist-dir-utils.h,v
diff -p -u -r1.1.2.3 -r1.1.2.4
--- dist-dir-utils.h	23 Aug 2010 00:10:17 -0000	1.1.2.3
+++ dist-dir-utils.h	13 Dec 2010 21:17:00 -0000	1.1.2.4
@@ -43,6 +43,10 @@ int PINT_init_dist_dir_state(
 		const int num_servers, 
 		const int server_no, 
 		const int pre_dsg_num_server);
+int PINT_is_dist_dir_bucket_active(
+		const PVFS_dist_dir_attr *dist_dir_attr_p, 
+		const PVFS_dist_dir_bitmap bitmap,
+		const int server_no); 
 int PINT_find_dist_dir_bucket(
 		const PVFS_dist_dir_hash_type hash, 
 		const PVFS_dist_dir_attr *const dist_dir_attr,

Index: pint-util.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/common/misc/pint-util.c,v
diff -p -u -r1.30.10.1.8.8 -r1.30.10.1.8.9
--- pint-util.c	26 Oct 2010 21:03:25 -0000	1.30.10.1.8.8
+++ pint-util.c	13 Dec 2010 21:17:00 -0000	1.30.10.1.8.9
@@ -414,6 +414,9 @@ void PINT_free_object_attr(PVFS_object_a
                 free(attr->u.dir.hint.dist_params);
                 attr->u.dir.hint.dist_params = NULL;
             }
+        }
+        if (attr->mask & PVFS_ATTR_DIR_DISTDIR_ATTR)
+        {
             if (attr->u.dir.dist_dir_bitmap)
             {
                 free(attr->u.dir.dist_dir_bitmap);



More information about the Pvfs2-cvs mailing list