The Lustre Log Facility ----------------------- [[llog]] LLOG Structures ~~~~~~~~~~~~~~~ LLOG Log ID ^^^^^^^^^^^ ---- struct llog_logid { struct ost_id lgl_oi; __u32 lgl_ogen; }; ---- LLog Information ^^^^^^^^^^^^^^^^ ---- struct llogd_body { struct llog_logid lgd_logid; __u32 lgd_ctxt_idx; __u32 lgd_llh_flags; __u32 lgd_index; __u32 lgd_saved_index; __u32 lgd_len; __u64 lgd_cur_offset; }; ---- The lgd_llh_flags are: ---- enum llog_flag { LLOG_F_ZAP_WHEN_EMPTY = 0x1, LLOG_F_IS_CAT = 0x2, LLOG_F_IS_PLAIN = 0x4, }; ---- LLog Record Header ^^^^^^^^^^^^^^^^^^ ---- struct llog_rec_hdr { __u32 lrh_len; __u32 lrh_index; __u32 lrh_type; __u32 lrh_id; }; ---- LLog Record Tail ^^^^^^^^^^^^^^^^ ---- struct llog_rec_tail { __u32 lrt_len; __u32 lrt_index; }; ---- LLog Log Header Information ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---- struct llog_log_hdr { struct llog_rec_hdr llh_hdr; obd_time llh_timestamp; __u32 llh_count; __u32 llh_bitmap_offset; __u32 llh_size; __u32 llh_flags; __u32 llh_cat_idx; /* for a catalog the first plain slot is next to it */ struct obd_uuid llh_tgtuuid; __u32 llh_reserved[LLOG_HEADER_SIZE/sizeof(__u32) - 23]; __u32 llh_bitmap[LLOG_BITMAP_BYTES/sizeof(__u32)]; struct llog_rec_tail llh_tail; }; ----