lcb
unsigned int lcb)
!!lcb, txqidx);
#define FILL_WR_RX_Q_ID(cid, qid, lcb, fid) \
FW_CRYPTO_LOOKASIDE_WR_LCB_V((lcb)) | \
lcb_context = pmb->ctx_u.lcb;
mbox->ctx_u.lcb = lcb_context;
struct lpfc_lcb_context *lcb; /* Used in set_beacon */
struct lcb;
struct lcb * lp[MAX_LUN]; /* The lcb's of this tcb */
static struct lcb * ncr_alloc_lcb (struct ncb *np, u_char tn, u_char ln);
static struct lcb * ncr_setup_lcb (struct ncb *np, struct scsi_device *sdev);
static void ncr_start_next_ccb (struct ncb *np, struct lcb * lp, int maxn);
struct lcb *lp = tp->lp[sdev->lun];
static void ncr_start_next_ccb(struct ncb *np, struct lcb *lp, int maxn)
struct lcb *lp;
struct lcb *lp;
struct lcb *lp = tp->lp[cp->lun];
struct lcb *lp = tp->lp[ln];
struct lcb *lp = tp->lp[cmd->device->lun];
struct lcb *lp = tp->lp[ln];
struct lcb *lp = tp->lp[cp->lun];
struct lcb *lp = tp->lp[ln];
static struct lcb *ncr_alloc_lcb (struct ncb *np, u_char tn, u_char ln)
struct lcb *lp = tp->lp[ln];
lp = m_calloc_dma(sizeof(struct lcb), "LCB");
static struct lcb *ncr_setup_lcb (struct ncb *np, struct scsi_device *sdev)
struct lcb *lp = tp->lp[ln];
struct lcb *lp = tp->lp[device->lun];
static int find_log_rec(struct ntfs_log *log, u64 lsn, struct lcb *lcb)
struct LFS_RECORD_HDR *rh = lcb->lrh;
lcb->lrh = rh;
lcb->log_rec = lr;
lcb->alloc = true;
lcb->log_rec = Add2Ptr(rh, sizeof(struct LFS_RECORD_HDR));
lcb->alloc = false;
struct lcb **lcb_)
struct lcb *lcb;
lcb = kzalloc_obj(struct lcb, GFP_NOFS);
if (!lcb)
lcb->client = log->client_id;
lcb->ctx_mode = ctx_mode;
err = find_log_rec(log, lsn, lcb);
*lcb_ = lcb;
lcb_put(lcb);
static int find_client_next_lsn(struct ntfs_log *log, struct lcb *lcb, u64 *lsn)
hdr = lcb->lrh;
if (lcb_ctx_next != lcb->ctx_mode)
if (hdr != lcb->lrh)
if (memcmp(&hdr->client, &lcb->client,
kfree(lcb->lrh);
lcb->lrh = hdr;
if (hdr != lcb->lrh)
if (lcb_ctx_undo_next == lcb->ctx_mode)
else if (lcb_ctx_prev == lcb->ctx_mode)
kfree(lcb->lrh);
lcb->lrh = hdr;
static int read_next_log_rec(struct ntfs_log *log, struct lcb *lcb, u64 *lsn)
err = find_client_next_lsn(log, lcb, lsn);
if (lcb->alloc)
kfree(lcb->log_rec);
lcb->log_rec = NULL;
lcb->alloc = false;
kfree(lcb->lrh);
lcb->lrh = NULL;
return find_log_rec(log, *lsn, lcb);
struct lcb *lcb = NULL;
static void lcb_put(struct lcb *lcb)
if (lcb->alloc)
kfree(lcb->log_rec);
kfree(lcb->lrh);
kfree(lcb);
err = read_log_rec_lcb(log, t64, lcb_ctx_prev, &lcb);
lrh = lcb->log_rec;
frh = lcb->lrh;
lcb_put(lcb);
lcb = NULL;
err = read_log_rec_lcb(log, t64, lcb_ctx_prev, &lcb);
lrh = lcb->log_rec;
frh = lcb->lrh;
lcb_put(lcb);
lcb = NULL;
err = read_log_rec_lcb(log, t64, lcb_ctx_prev, &lcb);
lrh = lcb->log_rec;
frh = lcb->lrh;
lcb_put(lcb);
lcb = NULL;
err = read_log_rec_lcb(log, t64, lcb_ctx_prev, &lcb);
lrh = lcb->log_rec;
frh = lcb->lrh;
lcb_put(lcb);
lcb = NULL;
err = read_log_rec_lcb(log, checkpt_lsn, lcb_ctx_next, &lcb);
err = read_next_log_rec(log, lcb, &rec_lsn);
frh = lcb->lrh;
lrh = lcb->log_rec;
lcb_put(lcb);
lcb = NULL;
err = read_log_rec_lcb(log, rlsn, lcb_ctx_next, &lcb);
frh = lcb->lrh;
lrh = lcb->log_rec;
err = read_next_log_rec(log, lcb, &rec_lsn);
lcb_put(lcb);
lcb = NULL;
err = read_log_rec_lcb(log, undo_next_lsn, lcb_ctx_undo_next, &lcb);
lrh = lcb->log_rec;
frh = lcb->lrh;
err = read_next_log_rec(log, lcb, &rec_lsn);
lcb_put(lcb);
lcb = NULL;
if (lcb)
lcb_put(lcb);