[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