structures and functions. Primarily distinguish between:
- portals event handlers (no longer called callbacks)
- brw callbacks
12 files changed:
* io_cb_data: io callback data merged into one struct to simplify
* memory managment. This may be turn out to be too simple.
*/
* io_cb_data: io callback data merged into one struct to simplify
* memory managment. This may be turn out to be too simple.
*/
-struct io_cb_data;
-typedef int (*brw_callback_t)(struct io_cb_data *, int err, int phase);
-
-struct io_cb_data {
- wait_queue_head_t waitq;
- atomic_t refcount;
- int complete;
- int err;
- struct ptlrpc_bulk_desc *desc;
- brw_callback_t cb;
- void *data;
+struct brw_cb_data;
+typedef int (*brw_cb_t)(struct brw_cb_data *, int err, int phase);
+
+struct brw_cb_data {
+ wait_queue_head_t brw_waitq;
+ atomic_t brw_refcount;
+ int brw_complete;
+ int brw_err;
+ struct ptlrpc_bulk_desc *brw_desc;
+ brw_cb_t brw_cb;
+ void *brw_data;
-int ll_sync_io_cb(struct io_cb_data *data, int err, int phase);
-struct io_cb_data *ll_init_cb(void);
+int ll_sync_brw_cb(struct brw_cb_data *data, int err, int phase);
+struct brw_cb_data *ll_init_brw_cb_data(void);
/* simple.c */
struct obd_run_ctxt;
/* simple.c */
struct obd_run_ctxt;
struct ptlrpc_client *bd_client;
__u32 bd_portal;
struct lustre_handle bd_conn;
struct ptlrpc_client *bd_client;
__u32 bd_portal;
struct lustre_handle bd_conn;
- void (*bd_cb)(struct ptlrpc_bulk_desc *, void *);
- void *bd_cb_data;
+ void (*bd_ptl_ev_hdlr)(struct ptlrpc_bulk_desc *, void *);
+ void *bd_ptl_ev_data;
wait_queue_head_t bd_waitq;
struct list_head bd_page_list;
wait_queue_head_t bd_waitq;
struct list_head bd_page_list;
struct obd_ops {
int (*o_iocontrol)(long cmd, struct lustre_handle *, int len,
struct obd_ops {
int (*o_iocontrol)(long cmd, struct lustre_handle *, int len,
struct lov_stripe_md *ea);
int (*o_brw)(int rw, struct lustre_handle *conn,
struct lov_stripe_md *ea, obd_count oa_bufs,
struct lov_stripe_md *ea);
int (*o_brw)(int rw, struct lustre_handle *conn,
struct lov_stripe_md *ea, obd_count oa_bufs,
- struct brw_page *pgarr, brw_callback_t callback,
- struct io_cb_data *data);
+ struct brw_page *pgarr, brw_cb_t callback,
+ struct brw_cb_data *data);
int (*o_punch)(struct lustre_handle *conn, struct obdo *tgt,
struct lov_stripe_md *ea, obd_size count,
obd_off offset);
int (*o_punch)(struct lustre_handle *conn, struct obdo *tgt,
struct lov_stripe_md *ea, obd_size count,
obd_off offset);
static inline int obd_brw(int cmd, struct lustre_handle *conn,
struct lov_stripe_md *ea, obd_count oa_bufs,
struct brw_page *pg,
static inline int obd_brw(int cmd, struct lustre_handle *conn,
struct lov_stripe_md *ea, obd_count oa_bufs,
struct brw_page *pg,
- brw_callback_t callback, struct io_cb_data *data)
+ brw_cb_t callback, struct brw_cb_data *data)
{
struct obd_export *exp;
int rc;
{
struct obd_export *exp;
int rc;
{
struct ll_inode_info *lli = ll_i2info(inode);
struct lov_stripe_md *lsm = lli->lli_smd;
{
struct ll_inode_info *lli = ll_i2info(inode);
struct lov_stripe_md *lsm = lli->lli_smd;
- struct io_cb_data *cbd = ll_init_cb();
+ struct brw_cb_data *cbd = ll_init_brw_cb_data();
struct brw_page pg;
int err;
ENTRY;
struct brw_page pg;
int err;
ENTRY;
pg.flag = create ? OBD_BRW_CREATE : 0;
pg.flag = create ? OBD_BRW_CREATE : 0;
- err = obd_brw(cmd, ll_i2obdconn(inode),lsm, 1, &pg, ll_sync_io_cb, cbd);
+ err = obd_brw(cmd, ll_i2obdconn(inode),lsm, 1, &pg, ll_sync_brw_cb, cbd);
RETURN(err);
} /* ll_brw */
RETURN(err);
} /* ll_brw */
struct brw_page pg;
int err;
loff_t size;
struct brw_page pg;
int err;
loff_t size;
- struct io_cb_data *cbd = ll_init_cb();
+ struct brw_cb_data *cbd = ll_init_brw_cb_data();
pg.off, pg.count);
err = obd_brw(OBD_BRW_WRITE, ll_i2obdconn(inode), md,
pg.off, pg.count);
err = obd_brw(OBD_BRW_WRITE, ll_i2obdconn(inode), md,
- 1, &pg, ll_sync_io_cb, cbd);
+ 1, &pg, ll_sync_brw_cb, cbd);
kunmap(page);
size = pg.off + pg.count;
kunmap(page);
size = pg.off + pg.count;
struct lov_stripe_md *lsm = lli->lli_smd;
struct brw_page *pga;
int i, rc = 0;
struct lov_stripe_md *lsm = lli->lli_smd;
struct brw_page *pga;
int i, rc = 0;
- struct io_cb_data *cbd;
+ struct brw_cb_data *cbd;
ENTRY;
if (!lsm || !lsm->lsm_object_id)
ENTRY;
if (!lsm || !lsm->lsm_object_id)
+ cbd = ll_init_brw_cb_data();
if (!cbd)
RETURN(-ENOMEM);
if (!cbd)
RETURN(-ENOMEM);
rc = obd_brw(rw == WRITE ? OBD_BRW_WRITE : OBD_BRW_READ,
ll_i2obdconn(inode), lsm, bufs_per_obdo, pga,
rc = obd_brw(rw == WRITE ? OBD_BRW_WRITE : OBD_BRW_READ,
ll_i2obdconn(inode), lsm, bufs_per_obdo, pga,
if (rc == 0)
rc = bufs_per_obdo * PAGE_SIZE;
if (rc == 0)
rc = bufs_per_obdo * PAGE_SIZE;
-static int lov_osc_brw_callback(struct io_cb_data *cbd, int err, int phase)
+static int lov_osc_brw_cb(struct brw_cb_data *brw_cbd, int err, int phase)
if (phase == CB_PHASE_FINISH) {
if (err)
if (phase == CB_PHASE_FINISH) {
if (err)
- cbd->err = err;
- if (atomic_dec_and_test(&cbd->refcount))
- ret = cbd->cb(cbd->data, cbd->err, phase);
+ brw_cbd->brw_err = err;
+ if (atomic_dec_and_test(&brw_cbd->brw_refcount))
+ ret = brw_cbd->brw_cb(brw_cbd->brw_data, brw_cbd->brw_err, phase);
static inline int lov_brw(int cmd, struct lustre_handle *conn,
struct lov_stripe_md *lsm, obd_count oa_bufs,
struct brw_page *pga,
static inline int lov_brw(int cmd, struct lustre_handle *conn,
struct lov_stripe_md *lsm, obd_count oa_bufs,
struct brw_page *pga,
- brw_callback_t callback, struct io_cb_data *cbd)
+ brw_cb_t brw_cb, struct brw_cb_data *brw_cbd)
{
int stripe_count = lsm->lsm_stripe_count;
struct obd_export *export = class_conn2export(conn);
{
int stripe_count = lsm->lsm_stripe_count;
struct obd_export *export = class_conn2export(conn);
} *stripeinfo, *si, *si_last;
struct brw_page *ioarr;
int rc, i;
} *stripeinfo, *si, *si_last;
struct brw_page *ioarr;
int rc, i;
- struct io_cb_data *our_cb;
+ struct brw_cb_data *osc_brw_cbd;
struct lov_oinfo *loi;
int *where;
ENTRY;
struct lov_oinfo *loi;
int *where;
ENTRY;
lov = &export->exp_obd->u.lov;
lov = &export->exp_obd->u.lov;
- our_cb = ll_init_cb();
- if (!our_cb)
+ osc_brw_cbd = ll_init_brw_cb_data();
+ if (!osc_brw_cbd)
RETURN(-ENOMEM);
OBD_ALLOC(stripeinfo, stripe_count * sizeof(*stripeinfo));
RETURN(-ENOMEM);
OBD_ALLOC(stripeinfo, stripe_count * sizeof(*stripeinfo));
/* This is the only race-free way I can think of to get the refcount
* correct. -phil */
/* This is the only race-free way I can think of to get the refcount
* correct. -phil */
- atomic_set(&our_cb->refcount, 0);
- our_cb->cb = callback;
- our_cb->data = cbd;
+ atomic_set(&osc_brw_cbd->brw_refcount, 0);
+ osc_brw_cbd->brw_cb = brw_cb;
+ osc_brw_cbd->brw_data = brw_cbd;
for (i = 0; i < oa_bufs; i++) {
where[i] = lov_stripe_number(lsm, pga[i].off);
if (stripeinfo[where[i]].bufct++ == 0)
for (i = 0; i < oa_bufs; i++) {
where[i] = lov_stripe_number(lsm, pga[i].off);
if (stripeinfo[where[i]].bufct++ == 0)
- atomic_inc(&our_cb->refcount);
+ atomic_inc(&osc_brw_cbd->brw_refcount);
}
for (i = 0, loi = lsm->lsm_oinfo, si_last = si = stripeinfo;
}
for (i = 0, loi = lsm->lsm_oinfo, si_last = si = stripeinfo;
/* XXX handle error returns here */
obd_brw(cmd, &lov->tgts[si->ost_idx].conn,
&si->lsm, si->bufct, &ioarr[shift],
/* XXX handle error returns here */
obd_brw(cmd, &lov->tgts[si->ost_idx].conn,
&si->lsm, si->bufct, &ioarr[shift],
- lov_osc_brw_callback, our_cb);
+ lov_osc_brw_cb, osc_brw_cbd);
- rc = callback(cbd, 0, CB_PHASE_START);
+ rc = brw_cb(brw_cbd, 0, CB_PHASE_START);
OBD_FREE(ioarr, sizeof(*ioarr) * oa_bufs);
out_where:
OBD_FREE(ioarr, sizeof(*ioarr) * oa_bufs);
out_where:
out_sinfo:
OBD_FREE(stripeinfo, stripe_count * sizeof(*stripeinfo));
out_cbdata:
out_sinfo:
OBD_FREE(stripeinfo, stripe_count * sizeof(*stripeinfo));
out_cbdata:
- OBD_FREE(our_cb, sizeof(*our_cb));
+ OBD_FREE(osc_brw_cbd, sizeof(*osc_brw_cbd));
case OBD_IOC_BRW_READ: {
struct lov_stripe_md tmp_lsm; // XXX fill in from create
struct lov_stripe_md *lsm = &tmp_lsm; // XXX fill in from create
case OBD_IOC_BRW_READ: {
struct lov_stripe_md tmp_lsm; // XXX fill in from create
struct lov_stripe_md *lsm = &tmp_lsm; // XXX fill in from create
- struct io_cb_data *cbd = ll_init_cb();
+ struct brw_cb_data *brw_cbd = ll_init_brw_cb_data();
obd_count pages = 0;
struct brw_page *pga, *pgp;
__u64 id = data->ioc_obdo1.o_id;
obd_count pages = 0;
struct brw_page *pga, *pgp;
__u64 id = data->ioc_obdo1.o_id;
GOTO(out, err = -ENOMEM);
obd_data2conn(&conn, data);
GOTO(out, err = -ENOMEM);
obd_data2conn(&conn, data);
- err = obd_brw(rw, &conn, lsm, j, pga, ll_sync_io_cb, cbd);
+ err = obd_brw(rw, &conn, lsm, j, pga, ll_sync_brw_cb, brw_cbd);
if (err)
CERROR("test_brw: error from obd_brw: err = %d\n", err);
EXIT;
if (err)
CERROR("test_brw: error from obd_brw: err = %d\n", err);
EXIT;
//EXPORT_SYMBOL(class_multi_cleanup);
EXPORT_SYMBOL(class_signal_connection_failure);
//EXPORT_SYMBOL(class_multi_cleanup);
EXPORT_SYMBOL(class_signal_connection_failure);
-EXPORT_SYMBOL(ll_sync_io_cb);
-EXPORT_SYMBOL(ll_init_cb);
+EXPORT_SYMBOL(ll_sync_brw_cb);
+EXPORT_SYMBOL(ll_init_brw_cb_data);
EXPORT_SYMBOL(class_nm_to_type);
static int __init init_obdclass(void)
EXPORT_SYMBOL(class_nm_to_type);
static int __init init_obdclass(void)
/* I would prefer if these next four functions were in ptlrpc, to be honest,
* but obdclass uses them for the netregression ioctls. -phil */
/* I would prefer if these next four functions were in ptlrpc, to be honest,
* but obdclass uses them for the netregression ioctls. -phil */
-static int sync_io_timeout(void *data)
+static int ll_sync_brw_timeout(void *data)
- struct io_cb_data *cbd = data;
+ struct brw_cb_data *brw_cbd = data;
struct ptlrpc_bulk_desc *desc;
ENTRY;
struct ptlrpc_bulk_desc *desc;
ENTRY;
- LASSERT(cbd);
- desc = cbd->desc;
+ LASSERT(brw_cbd);
+ desc = brw_cbd->brw_desc;
if (!desc) {
CERROR("no desc for timed-out BRW, reopen Bugzilla 214!\n");
if (!desc) {
CERROR("no desc for timed-out BRW, reopen Bugzilla 214!\n");
-static int sync_io_intr(void *data)
+static int ll_sync_brw_intr(void *data)
- struct io_cb_data *cbd = data;
- struct ptlrpc_bulk_desc *desc = cbd->desc;
+ struct brw_cb_data *brw_cbd = data;
+ struct ptlrpc_bulk_desc *desc = brw_cbd->brw_desc;
ENTRY;
desc->bd_flags |= PTL_RPC_FL_INTR;
RETURN(1); /* ignored, as of this writing */
}
ENTRY;
desc->bd_flags |= PTL_RPC_FL_INTR;
RETURN(1); /* ignored, as of this writing */
}
-int ll_sync_io_cb(struct io_cb_data *data, int err, int phase)
+int ll_sync_brw_cb(struct brw_cb_data *brw_cbd, int err, int phase)
{
int ret;
ENTRY;
if (phase == CB_PHASE_START) {
struct l_wait_info lwi;
{
int ret;
ENTRY;
if (phase == CB_PHASE_START) {
struct l_wait_info lwi;
- lwi = LWI_TIMEOUT_INTR(obd_timeout * HZ, sync_io_timeout,
- sync_io_intr, data);
- ret = l_wait_event(data->waitq, data->complete, &lwi);
- if (atomic_dec_and_test(&data->refcount))
- OBD_FREE(data, sizeof(*data));
+ lwi = LWI_TIMEOUT_INTR(obd_timeout * HZ, ll_sync_brw_timeout,
+ ll_sync_brw_intr, brw_cbd);
+ ret = l_wait_event(brw_cbd->brw_waitq, brw_cbd->brw_complete, &lwi);
+ if (atomic_dec_and_test(&brw_cbd->brw_refcount))
+ OBD_FREE(brw_cbd, sizeof(*brw_cbd));
if (ret == -EINTR)
RETURN(ret);
} else if (phase == CB_PHASE_FINISH) {
if (ret == -EINTR)
RETURN(ret);
} else if (phase == CB_PHASE_FINISH) {
- data->err = err;
- data->complete = 1;
- wake_up(&data->waitq);
- if (atomic_dec_and_test(&data->refcount))
- OBD_FREE(data, sizeof(*data));
+ brw_cbd->brw_err = err;
+ brw_cbd->brw_complete = 1;
+ wake_up(&brw_cbd->brw_waitq);
+ if (atomic_dec_and_test(&brw_cbd->brw_refcount))
+ OBD_FREE(brw_cbd, sizeof(*brw_cbd));
RETURN(err);
} else
LBUG();
RETURN(err);
} else
LBUG();
-struct io_cb_data *ll_init_cb(void)
+struct brw_cb_data *ll_init_brw_cb_data(void)
+ struct brw_cb_data *brw_cbd;
- OBD_ALLOC(d, sizeof(*d));
- if (d) {
- init_waitqueue_head(&d->waitq);
- atomic_set(&d->refcount, 2);
+ OBD_ALLOC(brw_cbd, sizeof(*brw_cbd));
+ if (brw_cbd) {
+ init_waitqueue_head(&brw_cbd->brw_waitq);
+ atomic_set(&brw_cbd->brw_refcount, 2);
static int filter_pgcache_brw(int cmd, struct lustre_handle *conn,
struct lov_stripe_md *lsm, obd_count oa_bufs,
static int filter_pgcache_brw(int cmd, struct lustre_handle *conn,
struct lov_stripe_md *lsm, obd_count oa_bufs,
- struct brw_page *pga, brw_callback_t callback,
- struct io_cb_data *data)
+ struct brw_page *pga, brw_cb_t callback,
+ struct brw_cb_data *data)
{
struct obd_export *export = class_conn2export(conn);
struct obd_run_ctxt saved;
{
struct obd_export *export = class_conn2export(conn);
struct obd_run_ctxt saved;
*/
while (index < ((src->o_size + PAGE_SIZE - 1) >> PAGE_SHIFT)) {
struct brw_page pg;
*/
while (index < ((src->o_size + PAGE_SIZE - 1) >> PAGE_SHIFT)) {
struct brw_page pg;
- struct io_cb_data *cbd = ll_init_cb();
+ struct brw_cb_data *brw_cbd = ll_init_brw_cb_data();
err = -ENOMEM;
EXIT;
break;
err = -ENOMEM;
EXIT;
break;
page->index = index;
err = obd_brw(OBD_BRW_READ, src_conn, &srcmd, 1, &pg,
page->index = index;
err = obd_brw(OBD_BRW_READ, src_conn, &srcmd, 1, &pg,
+ ll_sync_brw_cb, brw_cbd);
if ( err ) {
EXIT;
break;
}
if ( err ) {
EXIT;
break;
}
- cbd = ll_init_cb();
- if (!cbd) {
+ brw_cbd = ll_init_brw_cb_data();
+ if (!brw_cbd) {
err = -ENOMEM;
EXIT;
break;
err = -ENOMEM;
EXIT;
break;
CDEBUG(D_INFO, "Read page %ld ...\n", page->index);
err = obd_brw(OBD_BRW_WRITE, dst_conn, &dstmd, 1, &pg,
CDEBUG(D_INFO, "Read page %ld ...\n", page->index);
err = obd_brw(OBD_BRW_WRITE, dst_conn, &dstmd, 1, &pg,
+ ll_sync_brw_cb, brw_cbd);
/* XXX should handle dst->o_size, dst->o_blocks here */
if ( err ) {
/* XXX should handle dst->o_size, dst->o_blocks here */
if ( err ) {
}
struct osc_brw_cb_data {
}
struct osc_brw_cb_data {
- brw_callback_t callback;
void *cb_data;
void *obd_data;
size_t obd_size;
void *cb_data;
void *obd_data;
size_t obd_size;
-static void brw_finish(struct ptlrpc_bulk_desc *desc, void *data)
+static void osc_ptl_ev_hdlr(struct ptlrpc_bulk_desc *desc, void *data)
{
struct osc_brw_cb_data *cb_data = data;
int err = 0;
{
struct osc_brw_cb_data *cb_data = data;
int err = 0;
static int osc_brw_read(struct lustre_handle *conn, struct lov_stripe_md *lsm,
obd_count page_count, struct brw_page *pga,
static int osc_brw_read(struct lustre_handle *conn, struct lov_stripe_md *lsm,
obd_count page_count, struct brw_page *pga,
- brw_callback_t callback, struct io_cb_data *data)
+ brw_cb_t callback, struct brw_cb_data *data)
{
struct ptlrpc_connection *connection =
client_conn2cli(conn)->cl_import.imp_connection;
{
struct ptlrpc_connection *connection =
client_conn2cli(conn)->cl_import.imp_connection;
if (!desc)
GOTO(out_req, rc = -ENOMEM);
desc->bd_portal = OST_BULK_PORTAL;
if (!desc)
GOTO(out_req, rc = -ENOMEM);
desc->bd_portal = OST_BULK_PORTAL;
- desc->bd_cb = brw_finish;
+ desc->bd_ptl_ev_hdlr = osc_ptl_ev_hdlr;
OBD_ALLOC(cb_data, sizeof(*cb_data));
if (!cb_data)
GOTO(out_desc, rc = -ENOMEM);
OBD_ALLOC(cb_data, sizeof(*cb_data));
if (!cb_data)
GOTO(out_desc, rc = -ENOMEM);
cb_data->callback = callback;
cb_data->cb_data = data;
CDEBUG(D_PAGE, "data(%p)->desc = %p\n", data, desc);
cb_data->callback = callback;
cb_data->cb_data = data;
CDEBUG(D_PAGE, "data(%p)->desc = %p\n", data, desc);
- data->desc = desc;
- desc->bd_cb_data = cb_data;
+ data->brw_desc = desc;
+ desc->bd_ptl_ev_data = cb_data;
iooptr = lustre_msg_buf(request->rq_reqmsg, 1);
nioptr = lustre_msg_buf(request->rq_reqmsg, 2);
iooptr = lustre_msg_buf(request->rq_reqmsg, 1);
nioptr = lustre_msg_buf(request->rq_reqmsg, 2);
static int osc_brw_write(struct lustre_handle *conn, struct lov_stripe_md *md,
obd_count page_count, struct brw_page *pga,
static int osc_brw_write(struct lustre_handle *conn, struct lov_stripe_md *md,
obd_count page_count, struct brw_page *pga,
- brw_callback_t callback, struct io_cb_data *data)
+ brw_cb_t callback, struct brw_cb_data *data)
{
struct ptlrpc_connection *connection =
client_conn2cli(conn)->cl_import.imp_connection;
{
struct ptlrpc_connection *connection =
client_conn2cli(conn)->cl_import.imp_connection;
if (!desc)
GOTO(out_req, rc = -ENOMEM);
desc->bd_portal = OSC_BULK_PORTAL;
if (!desc)
GOTO(out_req, rc = -ENOMEM);
desc->bd_portal = OSC_BULK_PORTAL;
- desc->bd_cb = brw_finish;
+ desc->bd_ptl_ev_hdlr = osc_ptl_ev_hdlr;
OBD_ALLOC(cb_data, sizeof(*cb_data));
if (!cb_data)
GOTO(out_desc, rc = -ENOMEM);
OBD_ALLOC(cb_data, sizeof(*cb_data));
if (!cb_data)
GOTO(out_desc, rc = -ENOMEM);
cb_data->callback = callback;
cb_data->cb_data = data;
CDEBUG(D_PAGE, "data(%p)->desc = %p\n", data, desc);
cb_data->callback = callback;
cb_data->cb_data = data;
CDEBUG(D_PAGE, "data(%p)->desc = %p\n", data, desc);
- data->desc = desc;
- desc->bd_cb_data = cb_data;
+ data->brw_desc = desc;
+ desc->bd_ptl_ev_data = cb_data;
iooptr = lustre_msg_buf(request->rq_reqmsg, 1);
nioptr = lustre_msg_buf(request->rq_reqmsg, 2);
iooptr = lustre_msg_buf(request->rq_reqmsg, 1);
nioptr = lustre_msg_buf(request->rq_reqmsg, 2);
static int osc_brw(int cmd, struct lustre_handle *conn,
struct lov_stripe_md *md, obd_count page_count,
static int osc_brw(int cmd, struct lustre_handle *conn,
struct lov_stripe_md *md, obd_count page_count,
- struct brw_page *pga, brw_callback_t callback,
- struct io_cb_data *data)
+ struct brw_page *pga, brw_cb_t callback,
+ struct brw_cb_data *data)
desc = ptlrpc_prep_bulk(req->rq_connection);
if (desc == NULL)
GOTO(fail_preprw, rc = -ENOMEM);
desc = ptlrpc_prep_bulk(req->rq_connection);
if (desc == NULL)
GOTO(fail_preprw, rc = -ENOMEM);
+ desc->bd_ptl_ev_hdlr = NULL;
desc->bd_portal = OSC_BULK_PORTAL;
desc->bd_desc_private = desc_priv;
memcpy(&(desc->bd_conn), &conn, sizeof(conn));
desc->bd_portal = OSC_BULK_PORTAL;
desc->bd_desc_private = desc_priv;
memcpy(&(desc->bd_conn), &conn, sizeof(conn));
}
desc->bd_flags |= PTL_BULK_FL_SENT;
wake_up(&desc->bd_waitq);
}
desc->bd_flags |= PTL_BULK_FL_SENT;
wake_up(&desc->bd_waitq);
- if (desc->bd_cb != NULL)
- desc->bd_cb(desc, desc->bd_cb_data);
+ if (desc->bd_ptl_ev_hdlr != NULL)
+ desc->bd_ptl_ev_hdlr(desc, desc->bd_ptl_ev_data);
desc->bd_flags |= PTL_BULK_FL_RCVD;
wake_up(&desc->bd_waitq);
desc->bd_flags |= PTL_BULK_FL_RCVD;
wake_up(&desc->bd_waitq);
- if (desc->bd_cb != NULL)
- desc->bd_cb(desc, desc->bd_cb_data);
+ if (desc->bd_ptl_ev_hdlr != NULL)
+ desc->bd_ptl_ev_hdlr(desc, desc->bd_ptl_ev_data);
} else {
CERROR("Unexpected event type!\n");
LBUG();
} else {
CERROR("Unexpected event type!\n");
LBUG();