[Pvfs2-cvs] commit by slang in pvfs2/src/io/trove/trove-dbpf:
dbpf-bstream.c dbpf-dspace.c dbpf-op-queue.c dbpf-op-queue.h
dbpf-sync.c dbpf-thread.h
CVS commit program
cvs at parl.clemson.edu
Fri Mar 9 20:33:03 EST 2007
Update of /projects/cvsroot/pvfs2/src/io/trove/trove-dbpf
In directory parlweb1:/tmp/cvs-serv28984/src/io/trove/trove-dbpf
Modified Files:
Tag: pvfs-2-6-branch
dbpf-bstream.c dbpf-dspace.c dbpf-op-queue.c dbpf-op-queue.h
dbpf-sync.c dbpf-thread.h
Log Message:
merge fixes to 2.6 branch
Index: dbpf-bstream.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/trove/trove-dbpf/dbpf-bstream.c,v
diff -p -u -r1.76.6.2 -r1.76.6.3
--- dbpf-bstream.c 18 Dec 2006 20:48:35 -0000 1.76.6.2
+++ dbpf-bstream.c 10 Mar 2007 01:33:03 -0000 1.76.6.3
@@ -156,9 +156,10 @@ static void aio_progress_notification(un
list_proc_state_strings[
op_p->u.b_rw_list.list_proc_state]);
+ cur_op->state = ret;
/* this is a macro defined in dbpf-thread.h */
dbpf_queued_op_complete(
- cur_op, ret,
+ cur_op,
((ret == -TROVE_ECANCEL) ? OP_CANCELED : OP_COMPLETED));
start_delayed_ops_if_any(1);
@@ -408,6 +409,7 @@ static int issue_or_delay_io_operation(
(int)aiocb_ptr_array[i]->aio_nbytes,
aiocb_ptr_array[i]->aio_buf,
(int)aiocb_ptr_array[i]->aio_lio_opcode);
+
}
}
Index: dbpf-dspace.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/trove/trove-dbpf/dbpf-dspace.c,v
diff -p -u -r1.141.8.2 -r1.141.8.3
--- dbpf-dspace.c 13 Jan 2007 03:13:21 -0000 1.141.8.2
+++ dbpf-dspace.c 10 Mar 2007 01:33:03 -0000 1.141.8.3
@@ -1242,8 +1242,9 @@ static int dbpf_dspace_cancel(
dbpf_queued_op_put_and_dequeue(cur_op);
assert(cur_op->op.state == OP_DEQUEUED);
+ cur_op->state = 0;
/* this is a macro defined in dbpf-thread.h */
- dbpf_queued_op_complete(cur_op, 0, OP_CANCELED);
+ dbpf_queued_op_complete(cur_op, OP_CANCELED);
gossip_debug(
GOSSIP_TROVE_DEBUG, "op %p is canceled\n", cur_op);
Index: dbpf-op-queue.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/trove/trove-dbpf/dbpf-op-queue.c,v
diff -p -u -r1.28.8.1 -r1.28.8.2
--- dbpf-op-queue.c 15 Jan 2007 19:46:18 -0000 1.28.8.1
+++ dbpf-op-queue.c 10 Mar 2007 01:33:03 -0000 1.28.8.2
@@ -368,10 +368,9 @@ exit:
}
int dbpf_queued_op_complete(dbpf_queued_op_t * qop_p,
- TROVE_ds_state ret,
enum dbpf_op_state state)
{
- DBPF_COMPLETION_START(qop_p, ret, state);
+ DBPF_COMPLETION_START(qop_p, state);
DBPF_COMPLETION_SIGNAL();
DBPF_COMPLETION_FINISH(qop_p->op.context_id);
return 0;
Index: dbpf-op-queue.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/trove/trove-dbpf/dbpf-op-queue.h,v
diff -p -u -r1.18 -r1.18.20.1
--- dbpf-op-queue.h 13 Jul 2006 05:11:41 -0000 1.18
+++ dbpf-op-queue.h 10 Mar 2007 01:33:03 -0000 1.18.20.1
@@ -84,7 +84,6 @@ int dbpf_queue_or_service(
TROVE_op_id *out_op_id_p);
int dbpf_queued_op_complete(dbpf_queued_op_t * op,
- TROVE_ds_state ret,
enum dbpf_op_state state);
int dbpf_queued_op_sync_coalesce_db_ops(
Index: dbpf-sync.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/trove/trove-dbpf/dbpf-sync.c,v
diff -p -u -r1.12 -r1.12.6.1
--- dbpf-sync.c 23 Oct 2006 21:28:43 -0000 1.12
+++ dbpf-sync.c 10 Mar 2007 01:33:03 -0000 1.12.6.1
@@ -107,9 +107,13 @@ int dbpf_sync_coalesce(dbpf_queued_op_t
struct dbpf_collection* coll = qop_p->op.coll_p;
int cid = qop_p->op.context_id;
+ /* We want to set the state in all cases
+ */
+ qop_p->state = retcode;
+
if(!DBPF_OP_DOES_SYNC(qop_p->op.type))
{
- dbpf_queued_op_complete(qop_p, retcode, OP_COMPLETED);
+ dbpf_queued_op_complete(qop_p, OP_COMPLETED);
(*outcount)++;
return 0;
}
@@ -129,7 +133,7 @@ int dbpf_sync_coalesce(dbpf_queued_op_t
"[SYNC_COALESCE]: sync not needed, "
"moving to completion queue: %llu\n",
llu(qop_p->op.handle));
- dbpf_queued_op_complete(qop_p, retcode, OP_COMPLETED);
+ dbpf_queued_op_complete(qop_p, OP_COMPLETED);
return 0;
}
@@ -161,7 +165,7 @@ int dbpf_sync_coalesce(dbpf_queued_op_t
"[SYNC_COALESCE]: meta sync disabled, "
"moving operation to completion queue\n");
- ret = dbpf_queued_op_complete(qop_p, retcode, OP_COMPLETED);
+ ret = dbpf_queued_op_complete(qop_p, OP_COMPLETED);
/*
* Sync periodical if count < lw or if lw = 0 and count > hw
@@ -216,7 +220,7 @@ int dbpf_sync_coalesce(dbpf_queued_op_t
"to completion queue\n",
qop_p, llu(qop_p->op.handle));
- DBPF_COMPLETION_START(qop_p, retcode, OP_COMPLETED);
+ DBPF_COMPLETION_START(qop_p, OP_COMPLETED);
(*outcount)++;
@@ -233,7 +237,7 @@ int dbpf_sync_coalesce(dbpf_queued_op_t
ready_op, llu(ready_op->op.handle));
dbpf_op_queue_remove(ready_op);
- DBPF_COMPLETION_ADD(ready_op, 0, OP_COMPLETED);
+ DBPF_COMPLETION_ADD(ready_op, OP_COMPLETED);
(*outcount)++;
}
Index: dbpf-thread.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/trove/trove-dbpf/dbpf-thread.h,v
diff -p -u -r1.10 -r1.10.8.1
--- dbpf-thread.h 20 Sep 2006 04:36:14 -0000 1.10
+++ dbpf-thread.h 10 Mar 2007 01:33:03 -0000 1.10.8.1
@@ -24,20 +24,18 @@ void *dbpf_thread_function(void *ptr);
int dbpf_do_one_work_cycle(int *out_count);
-#define DBPF_COMPLETION_START(cur_op, ret_state, end_state) \
+#define DBPF_COMPLETION_START(cur_op, end_state) \
do { \
TROVE_context_id cid = cur_op->op.context_id; \
- cur_op->state = ret_state; \
+ gen_mutex_lock(dbpf_completion_queue_array_mutex[cid]); \
+ dbpf_op_queue_add(dbpf_completion_queue_array[cid],cur_op); \
gen_mutex_lock(&cur_op->mutex); \
cur_op->op.state = end_state; \
gen_mutex_unlock(&cur_op->mutex); \
- gen_mutex_lock(dbpf_completion_queue_array_mutex[cid]); \
- dbpf_op_queue_add(dbpf_completion_queue_array[cid],cur_op); \
} while(0)
-#define DBPF_COMPLETION_ADD(__add_op, __retstate, __endstate) \
+#define DBPF_COMPLETION_ADD(__add_op, __endstate) \
do { \
- __add_op->state = __retstate; \
gen_mutex_lock(&__add_op->mutex); \
__add_op->op.state = __endstate; \
gen_mutex_unlock(&__add_op->mutex); \
More information about the Pvfs2-cvs
mailing list