EXIT;
brw_cleanup:
- while (pages-- > 0)
- __free_pages(bufs[pages], 0);
+ i = pages;
+ while (i-- > 0)
+ __free_pages(bufs[i], 0);
brw_free:
OBD_FREE(bufs, pages * sizeof(*bufs));
OBD_FREE(counts, pages * sizeof(*counts));
{
struct osc_brw_cb_data *cb_data = data;
int i;
+ ENTRY;
if (desc->b_flags & PTL_RPC_FL_INTR)
CERROR("got signal\n");
ptlrpc_free_req(cb_data->req);
OBD_FREE(cb_data, sizeof(*cb_data));
+ EXIT;
}
static int osc_brw_write(struct obd_conn *conn, obd_count num_oa,
if (rc)
GOTO(out_bulk, rc);
+ wait_event_interruptible(desc->b_waitq, ptlrpc_check_bulk_sent(desc));
+ if (desc->b_flags & PTL_RPC_FL_INTR)
+ rc = -EINTR;
+
/* The unpackers move tmp1 and tmp2, so reset them before using */
tmp1 = lustre_msg_buf(req->rq_reqmsg, 1);
tmp2 = lustre_msg_buf(req->rq_reqmsg, 2);
static void ost_brw_write_finished_cb(struct ptlrpc_bulk_desc *desc, void *data)
{
+ ENTRY;
ptlrpc_free_bulk(desc);
+ EXIT;
}
static int ost_brw_write(struct ost_obd *obddev, struct ptlrpc_request *req)
int rc;
ENTRY;
+ atomic_set(&desc->b_finished_count, desc->b_page_count);
+
list_for_each_safe(tmp, next, &desc->b_page_list) {
struct ptlrpc_bulk_page *bulk;
bulk = list_entry(tmp, struct ptlrpc_bulk_page, b_link);
ptlrpc_cleanup_connection();
}
+/* events.c */
+EXPORT_SYMBOL(ptlrpc_check_bulk_sent);
+
/* connmgr.c */
EXPORT_SYMBOL(ptlrpc_connmgr);
EXPORT_SYMBOL(connmgr_connect);
do_insmod $LUSTRE/extN/extN.o || \
echo "info: can't load extN.o module, not fatal if using ext3"
do_insmod $LUSTRE/mds/mds.o || exit -1
- do_insmod $LUSTRE/mds/mds_ext2.o || exit -1
- do_insmod $LUSTRE/mds/mds_ext3.o || exit -1
+ #do_insmod $LUSTRE/mds/mds_ext2.o || exit -1
+ #do_insmod $LUSTRE/mds/mds_ext3.o || exit -1
do_insmod $LUSTRE/mds/mds_extN.o || \
echo "info: can't load mds_extN.o module, needs extN.o"
do_insmod $LUSTRE/obdecho/obdecho.o || exit -1