/* llog_net.c */
int llog_initiator_connect(struct llog_ctxt *ctxt);
int llog_receptor_accept(struct llog_ctxt *ctxt, struct obd_import *imp);
-int llog_origin_connect(struct llog_ctxt *ctxt, int count,
+int llog_origin_connect(struct llog_ctxt *ctxt,
struct llog_logid *logid, struct llog_gen *gen,
struct obd_uuid *uuid);
int llog_handle_connect(struct ptlrpc_request *req);
struct lov_stripe_md *lsm, int count,
struct llog_cookie *cookies, int flags);
int llog_obd_repl_sync(struct llog_ctxt *ctxt, struct obd_export *exp);
-int llog_obd_repl_connect(struct llog_ctxt *ctxt, int count,
+int llog_obd_repl_connect(struct llog_ctxt *ctxt,
struct llog_logid *logid, struct llog_gen *gen,
struct obd_uuid *uuid);
struct llog_cookie *logcookies, int numcookies);
int (*lop_cancel)(struct llog_ctxt *ctxt, struct lov_stripe_md *lsm,
int count, struct llog_cookie *cookies, int flags);
- int (*lop_connect)(struct llog_ctxt *ctxt, int count,
+ int (*lop_connect)(struct llog_ctxt *ctxt,
struct llog_logid *logid, struct llog_gen *gen,
struct obd_uuid *uuid);
/* XXX add 2 more: commit callbacks and llog recovery functions */
char *name, int idx, int count,
struct llog_catid *idarray);
+int llog_put_cat_list(struct obd_device *obd, struct obd_device *disk_obd,
+ char *name, int idx, int count, struct llog_catid *idarray);
+
struct llog_ctxt {
int loc_idx; /* my index the obd array of ctxt's */
struct llog_gen loc_gen;
*/
atomic_t lcm_count;
/**
- * Ptlrpc requests set. All cancel rpcs go via this request set.
- */
- struct ptlrpc_request_set *lcm_set;
- /**
* Thread control structure. Used for control commit thread.
*/
struct ptlrpcd_ctl lcm_pc;
/**
- * Busy resources waitq
+ * Lock protecting list of llcds.
*/
- cfs_waitq_t lcm_waitq;
+ spinlock_t lcm_lock;
+ /**
+ * Llcds in flight for debugging purposes.
+ */
+ struct list_head lcm_llcds;
/**
* Commit thread name buffer. Only used for thread start.
*/
*/
int llcd_size;
/**
+ * Link to lcm llcds list.
+ */
+ struct list_head llcd_list;
+ /**
* Current llcd size while gathering cookies. This should not be
* more than ->llcd_size. Used for determining if we need to
* send this llcd (if full) and allocate new one. This is also
{
cfs_waitq_init(&olg->olg_waitq);
spin_lock_init(&olg->olg_lock);
+ sema_init(&olg->olg_cat_processing, 1);
olg->olg_group = group;
}
RETURN(rc);
}
-static inline int llog_connect(struct llog_ctxt *ctxt, int count,
+static inline int llog_connect(struct llog_ctxt *ctxt,
struct llog_logid *logid, struct llog_gen *gen,
struct obd_uuid *uuid)
{
if (lop->lop_connect == NULL)
RETURN(-EOPNOTSUPP);
- rc = lop->lop_connect(ctxt, count, logid, gen, uuid);
+ rc = lop->lop_connect(ctxt, logid, gen, uuid);
RETURN(rc);
}