Lines Matching defs:log
32 #define XLOG_BUF_CANCEL_BUCKET(log, blkno) \
33 ((log)->l_buf_cancel_table + ((uint64_t)blkno % XLOG_BC_TABLE_SIZE))
36 * This structure is used during recovery to record the buf log items which
48 struct xlog *log,
55 if (!log->l_buf_cancel_table)
58 bucket = XLOG_BUF_CANCEL_BUCKET(log, blkno);
69 struct xlog *log,
79 * log, a reference count is kept to tell how many times we expect to
82 bcp = xlog_find_buffer_cancelled(log, blkno, len);
92 list_add_tail(&bcp->bc_list, XLOG_BUF_CANCEL_BUCKET(log, blkno));
101 struct xlog *log,
105 return xlog_find_buffer_cancelled(log, blkno, len) != NULL;
118 struct xlog *log,
124 bcp = xlog_find_buffer_cancelled(log, blkno, len);
137 /* log buffer item recovery */
140 * Sort buffer items for log recovery. Most buffer items should end up on the
143 * 1. XFS_BLF_CANCEL buffers must be processed last because some log items
168 struct xlog *log,
173 xlog_buf_readahead(log, buf_f->blf_blkno, buf_f->blf_len, NULL);
182 struct xlog *log,
188 xfs_err(log->l_mp, "bad buffer log item size (%d)",
194 trace_xfs_log_recover_buf_not_cancel(log, bf);
195 else if (xlog_add_buffer_cancelled(log, bf->blf_blkno, bf->blf_len))
196 trace_xfs_log_recover_buf_cancel_add(log, bf);
198 trace_xfs_log_recover_buf_cancel_ref_inc(log, bf);
406 * the buffer is more recent than the change in the log and will be
420 * the buffer. This can occur if log recovery is interrupted at some
424 * Write verifiers update the metadata LSN from log items attached to
441 * given buffer. The bitmap in the buf log format structure indicates
480 * the log. Hence we need to trim nbits back to the length of
481 * the current region being copied out of the log.
531 * Simple algorithm: if we have found a QUOTAOFF log item of the same type
541 struct xlog *log,
548 trace_xfs_log_recover_buf_dquot_buf(log, buf_f);
566 if (log->l_quotaoffs_flag & type)
665 "Bad inode buffer log record (ptr = "PTR_FMT", bp = "PTR_FMT"). "
869 * When meta-data buffers are freed at run time we log a buffer item
871 * of the buffer in the log should not be replayed at recovery time.
876 * To handle the cancellation of buffer log items, we make two passes
877 * over the log during recovery. During the first we build a table of
885 struct xlog *log,
891 struct xfs_mount *mp = log->l_mp;
902 if (xlog_put_buffer_cancelled(log, buf_f->blf_blkno,
907 if (xlog_is_buffer_cancelled(log, buf_f->blf_blkno,
912 trace_xfs_log_recover_buf_recover(log, buf_f);
944 trace_xfs_log_recover_buf_skip(log, buf_f);
948 * We're skipping replay of this buffer log item due to the log
967 dirty = xlog_recover_do_dquot_buffer(mp, log, item, bp, buf_f);
981 * buffers in the log can be a different size if the log was generated
991 (BBTOB(bp->b_length) != M_IGEO(log->l_mp)->inode_cluster_size)) {
1004 trace_xfs_log_recover_buf_cancel(log, buf_f);
1019 struct xlog *log)
1024 ASSERT(list_empty(&log->l_buf_cancel_table[i]));
1030 struct xlog *log)
1035 ASSERT(log->l_buf_cancel_table == NULL);
1042 log->l_buf_cancel_table = p;
1044 INIT_LIST_HEAD(&log->l_buf_cancel_table[i]);
1051 struct xlog *log)
1055 if (!log->l_buf_cancel_table)
1062 &log->l_buf_cancel_table[i],
1069 kmem_free(log->l_buf_cancel_table);
1070 log->l_buf_cancel_table = NULL;