Lines Matching refs:jd

32 int gfs2_replay_read_block(struct gfs2_jdesc *jd, unsigned int blk,
35 struct gfs2_inode *ip = GFS2_I(jd->jd_inode);
55 int gfs2_revoke_add(struct gfs2_jdesc *jd, u64 blkno, unsigned int where)
57 struct list_head *head = &jd->jd_revoke_list;
83 int gfs2_revoke_check(struct gfs2_jdesc *jd, u64 blkno, unsigned int where)
88 list_for_each_entry(iter, &jd->jd_revoke_list, rr_list) {
98 wrap = (rr->rr_where < jd->jd_replay_tail);
99 a = (jd->jd_replay_tail < where);
106 void gfs2_revoke_clean(struct gfs2_jdesc *jd)
108 struct list_head *head = &jd->jd_revoke_list;
153 * @jd: the journal
165 static int get_log_header(struct gfs2_jdesc *jd, unsigned int blk,
168 struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode);
172 error = gfs2_replay_read_block(jd, blk, &bh);
185 * @jd: the journal
196 static int foreach_descriptor(struct gfs2_jdesc *jd, u32 start,
199 struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode);
210 error = gfs2_replay_read_block(jd, start, &bh);
222 error = get_log_header(jd, start, &lh);
224 gfs2_replay_incr_blk(jd, &start);
229 gfs2_consist_inode(GFS2_I(jd->jd_inode));
239 error = lops_scan_elements(jd, start, ld, ptr, pass);
246 gfs2_replay_incr_blk(jd, &start);
256 * @jd: the journal
262 static void clean_journal(struct gfs2_jdesc *jd,
265 struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode);
268 gfs2_replay_incr_blk(jd, &lblock);
269 gfs2_write_log_header(sdp, jd, head->lh_sequence + 1, 0, lblock,
272 if (jd->jd_jid == sdp->sd_lockstruct.ls_jid) {
301 * @jd: The journal
307 static int update_statfs_inode(struct gfs2_jdesc *jd,
311 struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode);
335 "[%+lld,%+lld,%+lld]\n", jd->jd_jid, sc.sc_total,
342 if (jd->jd_jid == sdp->sd_lockstruct.ls_jid) {
371 * @jd: the journal
376 static void recover_local_statfs(struct gfs2_jdesc *jd,
380 struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode);
388 error = update_statfs_inode(jd, head, sdp->sd_statfs_inode);
395 error = update_statfs_inode(jd, NULL,
396 find_local_statfs_inode(sdp, jd->jd_jid));
403 struct gfs2_jdesc *jd = container_of(work, struct gfs2_jdesc, jd_work);
404 struct gfs2_inode *ip = GFS2_I(jd->jd_inode);
405 struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode);
416 jd->jd_jid);
422 if (jd->jd_jid != sdp->sd_lockstruct.ls_jid) {
424 jd->jd_jid);
428 error = gfs2_glock_nq_num(sdp, jd->jd_jid, &gfs2_journal_glops,
437 fs_info(sdp, "jid=%u: Busy\n", jd->jd_jid);
450 fs_info(sdp, "jid=%u, already locked for use\n", jd->jd_jid);
454 fs_info(sdp, "jid=%u: Looking at journal...\n", jd->jd_jid);
456 error = gfs2_jdesc_check(jd);
460 error = gfs2_find_jhead(jd, &head, true);
464 fs_info(sdp, "jid=%u: Journal head lookup took %lldms\n", jd->jd_jid,
473 "is frozen\n", jd->jd_jid);
497 "device\n", jd->jd_jid);
504 jd->jd_jid, head.lh_tail, head.lh_blkno);
511 lops_before_scan(jd, &head, pass);
512 error = foreach_descriptor(jd, head.lh_tail,
514 lops_after_scan(jd, error, pass);
521 recover_local_statfs(jd, &head);
522 clean_journal(jd, &head);
529 jd->jd_jid, ktime_ms_delta(t_rep, t_start),
536 gfs2_recovery_done(sdp, jd->jd_jid, LM_RD_SUCCESS);
543 fs_info(sdp, "jid=%u: Done\n", jd->jd_jid);
555 fs_info(sdp, "jid=%u: %s\n", jd->jd_jid, (error) ? "Failed" : "Done");
557 jd->jd_recover_error = error;
558 gfs2_recovery_done(sdp, jd->jd_jid, LM_RD_GAVEUP);
560 clear_bit(JDF_RECOVERY, &jd->jd_flags);
562 wake_up_bit(&jd->jd_flags, JDF_RECOVERY);
565 int gfs2_recover_journal(struct gfs2_jdesc *jd, bool wait)
569 if (test_and_set_bit(JDF_RECOVERY, &jd->jd_flags))
573 rv = queue_work(gfs2_recovery_wq, &jd->jd_work);
577 wait_on_bit(&jd->jd_flags, JDF_RECOVERY,
580 return wait ? jd->jd_recover_error : 0;