[Pvfs2-cvs] commit by pcarns in pvfs2-1/src/io/trove/trove-dbpf: dbpf-keyval.c

CVS commit program cvs at parl.clemson.edu
Thu Feb 7 09:26:56 EST 2008


Update of /projects/cvsroot/pvfs2-1/src/io/trove/trove-dbpf
In directory parlweb1:/tmp/cvs-serv25541/trove-dbpf

Modified Files:
      Tag: small-file-branch
	dbpf-keyval.c 
Log Message:
make keyval iterate functions honor the HANDLE_COUNT flag if the
ITERATE_REMOVE flag is also set; untested


Index: dbpf-keyval.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/io/trove/trove-dbpf/dbpf-keyval.c,v
diff -p -u -r1.85.6.5 -r1.85.6.6
--- dbpf-keyval.c	6 Feb 2008 20:42:51 -0000	1.85.6.5
+++ dbpf-keyval.c	7 Feb 2008 14:26:56 -0000	1.85.6.6
@@ -806,6 +806,7 @@ static int dbpf_keyval_iterate_op_svc(st
     int count, ret;
     uint64_t tmp_pos = 0;
     PINT_dbpf_keyval_iterate_callback tmp_callback = NULL;
+    int i;
 
     assert(*op_p->u.k_iterate.count_p > 0);
 
@@ -876,6 +877,18 @@ static int dbpf_keyval_iterate_op_svc(st
                 op_p->u.k_iterate.key_array[count-1].buffer, 
                 op_p->u.k_iterate.key_array[count-1].read_sz);
         }
+
+        if(op_p->flags & TROVE_KEYVAL_ITERATE_REMOVE)
+        {
+            for(i=0; i<count; i++)
+            {
+                ret = dbpf_keyval_handle_info_ops(op_p, DBPF_KEYVAL_HANDLE_COUNT_DECREMENT);
+                if(ret < 0)
+                {
+                    return(ret);
+                }
+            }
+        }
     }
     
     *op_p->u.k_iterate.count_p = count;
@@ -959,6 +972,7 @@ static int dbpf_keyval_iterate_keys_op_s
 {
     int count, ret;
     PINT_dbpf_keyval_iterate_callback tmp_callback = NULL;
+    int i;
 
     count = *op_p->u.k_iterate_keys.count_p;
 
@@ -1013,6 +1027,17 @@ static int dbpf_keyval_iterate_keys_op_s
                 *op_p->u.k_iterate_keys.position_p,
                 op_p->u.k_iterate_keys.key_array[count-1].buffer,
                 op_p->u.k_iterate_keys.key_array[count-1].read_sz);
+        }
+        if(op_p->flags & TROVE_KEYVAL_ITERATE_REMOVE)
+        {
+            for(i=0; i<count; i++)
+            {
+                ret = dbpf_keyval_handle_info_ops(op_p, DBPF_KEYVAL_HANDLE_COUNT_DECREMENT);
+                if(ret < 0)
+                {
+                    return(ret);
+                }
+            }
         }
     }
 



More information about the Pvfs2-cvs mailing list