Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
xfs_log_recover.c File Reference
#include "xfs.h"
#include "xfs_fs.h"
#include "xfs_types.h"
#include "xfs_bit.h"
#include "xfs_log.h"
#include "xfs_inum.h"
#include "xfs_trans.h"
#include "xfs_sb.h"
#include "xfs_ag.h"
#include "xfs_mount.h"
#include "xfs_error.h"
#include "xfs_bmap_btree.h"
#include "xfs_alloc_btree.h"
#include "xfs_ialloc_btree.h"
#include "xfs_dinode.h"
#include "xfs_inode.h"
#include "xfs_inode_item.h"
#include "xfs_alloc.h"
#include "xfs_ialloc.h"
#include "xfs_log_priv.h"
#include "xfs_buf_item.h"
#include "xfs_log_recover.h"
#include "xfs_extfree_item.h"
#include "xfs_trans_priv.h"
#include "xfs_quota.h"
#include "xfs_utils.h"
#include "xfs_trace.h"

Go to the source code of this file.

Data Structures

struct  xfs_buf_cancel
 

Macros

#define xlog_recover_check_summary(log)
 
#define xlog_header_check_dump(mp, head)
 
#define xlog_pack_data_checksum(log, iclog, size)
 

Functions

STATIC int xlog_find_zeroed (struct xlog *, xfs_daddr_t *)
 
STATIC int xlog_clear_stale_blocks (struct xlog *, xfs_lsn_t)
 
STATIC xfs_buf_txlog_get_bp (struct xlog *log, int nbblks)
 
STATIC void xlog_put_bp (xfs_buf_t *bp)
 
STATIC xfs_caddr_t xlog_align (struct xlog *log, xfs_daddr_t blk_no, int nbblks, struct xfs_buf *bp)
 
STATIC int xlog_bread_noalign (struct xlog *log, xfs_daddr_t blk_no, int nbblks, struct xfs_buf *bp)
 
STATIC int xlog_bread (struct xlog *log, xfs_daddr_t blk_no, int nbblks, struct xfs_buf *bp, xfs_caddr_t *offset)
 
STATIC int xlog_bread_offset (struct xlog *log, xfs_daddr_t blk_no, int nbblks, struct xfs_buf *bp, xfs_caddr_t offset)
 
STATIC int xlog_bwrite (struct xlog *log, xfs_daddr_t blk_no, int nbblks, struct xfs_buf *bp)
 
STATIC int xlog_header_check_recover (xfs_mount_t *mp, xlog_rec_header_t *head)
 
STATIC int xlog_header_check_mount (xfs_mount_t *mp, xlog_rec_header_t *head)
 
STATIC void xlog_recover_iodone (struct xfs_buf *bp)
 
STATIC int xlog_find_cycle_start (struct xlog *log, struct xfs_buf *bp, xfs_daddr_t first_blk, xfs_daddr_t *last_blk, uint cycle)
 
STATIC int xlog_find_verify_cycle (struct xlog *log, xfs_daddr_t start_blk, int nbblks, uint stop_on_cycle_no, xfs_daddr_t *new_blk)
 
STATIC int xlog_find_verify_log_record (struct xlog *log, xfs_daddr_t start_blk, xfs_daddr_t *last_blk, int extra_bblks)
 
STATIC int xlog_find_head (struct xlog *log, xfs_daddr_t *return_head_blk)
 
STATIC int xlog_find_tail (struct xlog *log, xfs_daddr_t *head_blk, xfs_daddr_t *tail_blk)
 
STATIC void xlog_add_record (struct xlog *log, xfs_caddr_t buf, int cycle, int block, int tail_cycle, int tail_block)
 
STATIC int xlog_write_log_records (struct xlog *log, int cycle, int start_block, int blocks, int tail_cycle, int tail_block)
 
STATIC xlog_recover_txlog_recover_find_tid (struct hlist_head *head, xlog_tid_t tid)
 
STATIC void xlog_recover_new_tid (struct hlist_head *head, xlog_tid_t tid, xfs_lsn_t lsn)
 
STATIC void xlog_recover_add_item (struct list_head *head)
 
STATIC int xlog_recover_add_to_cont_trans (struct xlog *log, struct xlog_recover *trans, xfs_caddr_t dp, int len)
 
STATIC int xlog_recover_add_to_trans (struct xlog *log, struct xlog_recover *trans, xfs_caddr_t dp, int len)
 
STATIC int xlog_recover_reorder_trans (struct xlog *log, struct xlog_recover *trans, int pass)
 
STATIC int xlog_recover_buffer_pass1 (struct xlog *log, struct xlog_recover_item *item)
 
STATIC int xlog_check_buffer_cancelled (struct xlog *log, xfs_daddr_t blkno, uint len, ushort flags)
 
STATIC int xlog_recover_do_inode_buffer (struct xfs_mount *mp, xlog_recover_item_t *item, struct xfs_buf *bp, xfs_buf_log_format_t *buf_f)
 
STATIC void xlog_recover_do_reg_buffer (struct xfs_mount *mp, xlog_recover_item_t *item, struct xfs_buf *bp, xfs_buf_log_format_t *buf_f)
 
int xfs_qm_dqcheck (struct xfs_mount *mp, xfs_disk_dquot_t *ddq, xfs_dqid_t id, uint type, uint flags, char *str)
 
STATIC void xlog_recover_do_dquot_buffer (struct xfs_mount *mp, struct xlog *log, struct xlog_recover_item *item, struct xfs_buf *bp, struct xfs_buf_log_format *buf_f)
 
STATIC int xlog_recover_buffer_pass2 (struct xlog *log, struct list_head *buffer_list, struct xlog_recover_item *item)
 
STATIC int xlog_recover_inode_pass2 (struct xlog *log, struct list_head *buffer_list, struct xlog_recover_item *item)
 
STATIC int xlog_recover_quotaoff_pass1 (struct xlog *log, struct xlog_recover_item *item)
 
STATIC int xlog_recover_dquot_pass2 (struct xlog *log, struct list_head *buffer_list, struct xlog_recover_item *item)
 
STATIC int xlog_recover_efi_pass2 (struct xlog *log, struct xlog_recover_item *item, xfs_lsn_t lsn)
 
STATIC int xlog_recover_efd_pass2 (struct xlog *log, struct xlog_recover_item *item)
 
STATIC void xlog_recover_free_trans (struct xlog_recover *trans)
 
STATIC int xlog_recover_commit_pass1 (struct xlog *log, struct xlog_recover *trans, struct xlog_recover_item *item)
 
STATIC int xlog_recover_commit_pass2 (struct xlog *log, struct xlog_recover *trans, struct list_head *buffer_list, struct xlog_recover_item *item)
 
STATIC int xlog_recover_commit_trans (struct xlog *log, struct xlog_recover *trans, int pass)
 
STATIC int xlog_recover_unmount_trans (struct xlog *log, struct xlog_recover *trans)
 
STATIC int xlog_recover_process_data (struct xlog *log, struct hlist_head rhash[], struct xlog_rec_header *rhead, xfs_caddr_t dp, int pass)
 
STATIC int xlog_recover_process_efi (xfs_mount_t *mp, xfs_efi_log_item_t *efip)
 
STATIC int xlog_recover_process_efis (struct xlog *log)
 
STATIC void xlog_recover_clear_agi_bucket (xfs_mount_t *mp, xfs_agnumber_t agno, int bucket)
 
STATIC xfs_agino_t xlog_recover_process_one_iunlink (struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agino_t agino, int bucket)
 
STATIC void xlog_recover_process_iunlinks (struct xlog *log)
 
void xlog_pack_data (struct xlog *log, struct xlog_in_core *iclog, int roundoff)
 
STATIC void xlog_unpack_data (struct xlog_rec_header *rhead, xfs_caddr_t dp, struct xlog *log)
 
STATIC int xlog_valid_rec_header (struct xlog *log, struct xlog_rec_header *rhead, xfs_daddr_t blkno)
 
STATIC int xlog_do_recovery_pass (struct xlog *log, xfs_daddr_t head_blk, xfs_daddr_t tail_blk, int pass)
 
STATIC int xlog_do_log_recovery (struct xlog *log, xfs_daddr_t head_blk, xfs_daddr_t tail_blk)
 
STATIC int xlog_do_recover (struct xlog *log, xfs_daddr_t head_blk, xfs_daddr_t tail_blk)
 
int xlog_recover (struct xlog *log)
 
int xlog_recover_finish (struct xlog *log)
 

Macro Definition Documentation

#define xlog_header_check_dump (   mp,
  head 
)

Definition at line 301 of file xfs_log_recover.c.

#define xlog_pack_data_checksum (   log,
  iclog,
  size 
)

Definition at line 3237 of file xfs_log_recover.c.

#define xlog_recover_check_summary (   log)

Definition at line 59 of file xfs_log_recover.c.

Function Documentation

int xfs_qm_dqcheck ( struct xfs_mount *  mp,
xfs_disk_dquot_t ddq,
xfs_dqid_t  id,
uint  type,
uint  flags,
char str 
)

Definition at line 1936 of file xfs_log_recover.c.

STATIC void xlog_add_record ( struct xlog *  log,
xfs_caddr_t  buf,
int  cycle,
int  block,
int  tail_cycle,
int  tail_block 
)

Definition at line 1193 of file xfs_log_recover.c.

STATIC xfs_caddr_t xlog_align ( struct xlog *  log,
xfs_daddr_t  blk_no,
int  nbblks,
struct xfs_buf bp 
)

Definition at line 148 of file xfs_log_recover.c.

STATIC int xlog_bread ( struct xlog *  log,
xfs_daddr_t  blk_no,
int  nbblks,
struct xfs_buf bp,
xfs_caddr_t *  offset 
)

Definition at line 199 of file xfs_log_recover.c.

STATIC int xlog_bread_noalign ( struct xlog *  log,
xfs_daddr_t  blk_no,
int  nbblks,
struct xfs_buf bp 
)

Definition at line 165 of file xfs_log_recover.c.

STATIC int xlog_bread_offset ( struct xlog *  log,
xfs_daddr_t  blk_no,
int  nbblks,
struct xfs_buf bp,
xfs_caddr_t  offset 
)

Definition at line 221 of file xfs_log_recover.c.

STATIC int xlog_bwrite ( struct xlog *  log,
xfs_daddr_t  blk_no,
int  nbblks,
struct xfs_buf bp 
)

Definition at line 251 of file xfs_log_recover.c.

STATIC int xlog_check_buffer_cancelled ( struct xlog *  log,
xfs_daddr_t  blkno,
uint  len,
ushort  flags 
)

Definition at line 1706 of file xfs_log_recover.c.

STATIC int xlog_clear_stale_blocks ( struct xlog *  log,
xfs_lsn_t  tail_lsn 
)

Definition at line 1315 of file xfs_log_recover.c.

STATIC int xlog_do_log_recovery ( struct xlog *  log,
xfs_daddr_t  head_blk,
xfs_daddr_t  tail_blk 
)

Definition at line 3605 of file xfs_log_recover.c.

STATIC int xlog_do_recover ( struct xlog *  log,
xfs_daddr_t  head_blk,
xfs_daddr_t  tail_blk 
)

Definition at line 3656 of file xfs_log_recover.c.

STATIC int xlog_do_recovery_pass ( struct xlog *  log,
xfs_daddr_t  head_blk,
xfs_daddr_t  tail_blk,
int  pass 
)

Definition at line 3353 of file xfs_log_recover.c.

STATIC int xlog_find_cycle_start ( struct xlog *  log,
struct xfs_buf bp,
xfs_daddr_t  first_blk,
xfs_daddr_t *  last_blk,
uint  cycle 
)

Definition at line 388 of file xfs_log_recover.c.

STATIC int xlog_find_head ( struct xlog *  log,
xfs_daddr_t *  return_head_blk 
)

Definition at line 610 of file xfs_log_recover.c.

STATIC int xlog_find_tail ( struct xlog *  log,
xfs_daddr_t *  head_blk,
xfs_daddr_t *  tail_blk 
)

Definition at line 881 of file xfs_log_recover.c.

STATIC int xlog_find_verify_cycle ( struct xlog *  log,
xfs_daddr_t  start_blk,
int  nbblks,
uint  stop_on_cycle_no,
xfs_daddr_t *  new_blk 
)

Definition at line 431 of file xfs_log_recover.c.

STATIC int xlog_find_verify_log_record ( struct xlog *  log,
xfs_daddr_t  start_blk,
xfs_daddr_t *  last_blk,
int  extra_bblks 
)

Definition at line 500 of file xfs_log_recover.c.

STATIC int xlog_find_zeroed ( struct xlog *  log,
xfs_daddr_t *  blk_no 
)

Definition at line 1090 of file xfs_log_recover.c.

STATIC xfs_buf_t* xlog_get_bp ( struct xlog *  log,
int  nbblks 
)

Definition at line 97 of file xfs_log_recover.c.

STATIC int xlog_header_check_mount ( xfs_mount_t *  mp,
xlog_rec_header_t head 
)

Definition at line 341 of file xfs_log_recover.c.

STATIC int xlog_header_check_recover ( xfs_mount_t *  mp,
xlog_rec_header_t head 
)

Definition at line 308 of file xfs_log_recover.c.

void xlog_pack_data ( struct xlog *  log,
struct xlog_in_core *  iclog,
int  roundoff 
)

Definition at line 3244 of file xfs_log_recover.c.

STATIC void xlog_put_bp ( xfs_buf_t bp)

Definition at line 137 of file xfs_log_recover.c.

int xlog_recover ( struct xlog *  log)

Definition at line 3731 of file xfs_log_recover.c.

STATIC void xlog_recover_add_item ( struct list_head head)

Definition at line 1470 of file xfs_log_recover.c.

STATIC int xlog_recover_add_to_cont_trans ( struct xlog *  log,
struct xlog_recover trans,
xfs_caddr_t  dp,
int  len 
)

Definition at line 1481 of file xfs_log_recover.c.

STATIC int xlog_recover_add_to_trans ( struct xlog *  log,
struct xlog_recover trans,
xfs_caddr_t  dp,
int  len 
)

Definition at line 1527 of file xfs_log_recover.c.

STATIC int xlog_recover_buffer_pass1 ( struct xlog *  log,
struct xlog_recover_item item 
)

Definition at line 1652 of file xfs_log_recover.c.

STATIC int xlog_recover_buffer_pass2 ( struct xlog *  log,
struct list_head buffer_list,
struct xlog_recover_item item 
)

Definition at line 2118 of file xfs_log_recover.c.

STATIC void xlog_recover_clear_agi_bucket ( xfs_mount_t *  mp,
xfs_agnumber_t  agno,
int  bucket 
)

Definition at line 3048 of file xfs_log_recover.c.

STATIC int xlog_recover_commit_pass1 ( struct xlog *  log,
struct xlog_recover trans,
struct xlog_recover_item item 
)

Definition at line 2699 of file xfs_log_recover.c.

STATIC int xlog_recover_commit_pass2 ( struct xlog *  log,
struct xlog_recover trans,
struct list_head buffer_list,
struct xlog_recover_item item 
)

Definition at line 2726 of file xfs_log_recover.c.

STATIC int xlog_recover_commit_trans ( struct xlog *  log,
struct xlog_recover trans,
int  pass 
)

Definition at line 2763 of file xfs_log_recover.c.

STATIC void xlog_recover_do_dquot_buffer ( struct xfs_mount *  mp,
struct xlog *  log,
struct xlog_recover_item item,
struct xfs_buf bp,
struct xfs_buf_log_format buf_f 
)

Definition at line 2060 of file xfs_log_recover.c.

STATIC int xlog_recover_do_inode_buffer ( struct xfs_mount *  mp,
xlog_recover_item_t item,
struct xfs_buf bp,
xfs_buf_log_format_t buf_f 
)

Definition at line 1769 of file xfs_log_recover.c.

STATIC void xlog_recover_do_reg_buffer ( struct xfs_mount *  mp,
xlog_recover_item_t item,
struct xfs_buf bp,
xfs_buf_log_format_t buf_f 
)

Definition at line 1865 of file xfs_log_recover.c.

STATIC int xlog_recover_dquot_pass2 ( struct xlog *  log,
struct list_head buffer_list,
struct xlog_recover_item item 
)

Definition at line 2493 of file xfs_log_recover.c.

STATIC int xlog_recover_efd_pass2 ( struct xlog *  log,
struct xlog_recover_item item 
)

Definition at line 2626 of file xfs_log_recover.c.

STATIC int xlog_recover_efi_pass2 ( struct xlog *  log,
struct xlog_recover_item item,
xfs_lsn_t  lsn 
)

Definition at line 2588 of file xfs_log_recover.c.

STATIC xlog_recover_t* xlog_recover_find_tid ( struct hlist_head head,
xlog_tid_t  tid 
)

Definition at line 1438 of file xfs_log_recover.c.

int xlog_recover_finish ( struct xlog *  log)

Definition at line 3777 of file xfs_log_recover.c.

STATIC void xlog_recover_free_trans ( struct xlog_recover trans)

Definition at line 2679 of file xfs_log_recover.c.

STATIC int xlog_recover_inode_pass2 ( struct xlog *  log,
struct list_head buffer_list,
struct xlog_recover_item item 
)

Definition at line 2199 of file xfs_log_recover.c.

STATIC void xlog_recover_iodone ( struct xfs_buf bp)

Definition at line 365 of file xfs_log_recover.c.

STATIC void xlog_recover_new_tid ( struct hlist_head head,
xlog_tid_t  tid,
xfs_lsn_t  lsn 
)

Definition at line 1453 of file xfs_log_recover.c.

STATIC int xlog_recover_process_data ( struct xlog *  log,
struct hlist_head  rhash[],
struct xlog_rec_header rhead,
xfs_caddr_t  dp,
int  pass 
)

Definition at line 2822 of file xfs_log_recover.c.

STATIC int xlog_recover_process_efi ( xfs_mount_t *  mp,
xfs_efi_log_item_t *  efip 
)

Definition at line 2918 of file xfs_log_recover.c.

STATIC int xlog_recover_process_efis ( struct xlog *  log)

Definition at line 2996 of file xfs_log_recover.c.

STATIC void xlog_recover_process_iunlinks ( struct xlog *  log)

Definition at line 3157 of file xfs_log_recover.c.

STATIC xfs_agino_t xlog_recover_process_one_iunlink ( struct xfs_mount *  mp,
xfs_agnumber_t  agno,
xfs_agino_t  agino,
int  bucket 
)

Definition at line 3089 of file xfs_log_recover.c.

STATIC int xlog_recover_quotaoff_pass1 ( struct xlog *  log,
struct xlog_recover_item item 
)

Definition at line 2468 of file xfs_log_recover.c.

STATIC int xlog_recover_reorder_trans ( struct xlog *  log,
struct xlog_recover trans,
int  pass 
)

Definition at line 1598 of file xfs_log_recover.c.

STATIC int xlog_recover_unmount_trans ( struct xlog *  log,
struct xlog_recover trans 
)

Definition at line 2803 of file xfs_log_recover.c.

STATIC void xlog_unpack_data ( struct xlog_rec_header rhead,
xfs_caddr_t  dp,
struct xlog *  log 
)

Definition at line 3284 of file xfs_log_recover.c.

STATIC int xlog_valid_rec_header ( struct xlog *  log,
struct xlog_rec_header rhead,
xfs_daddr_t  blkno 
)

Definition at line 3309 of file xfs_log_recover.c.

STATIC int xlog_write_log_records ( struct xlog *  log,
int  cycle,
int  start_block,
int  blocks,
int  tail_cycle,
int  tail_block 
)

Definition at line 1215 of file xfs_log_recover.c.