linux/fs/xfs/xfs_log_recover.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2000,2005 Silicon Graphics, Inc.
   3 * All Rights Reserved.
   4 *
   5 * This program is free software; you can redistribute it and/or
   6 * modify it under the terms of the GNU General Public License as
   7 * published by the Free Software Foundation.
   8 *
   9 * This program is distributed in the hope that it would be useful,
  10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12 * GNU General Public License for more details.
  13 *
  14 * You should have received a copy of the GNU General Public License
  15 * along with this program; if not, write the Free Software Foundation,
  16 * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  17 */
  18#ifndef __XFS_LOG_RECOVER_H__
  19#define __XFS_LOG_RECOVER_H__
  20
  21/*
  22 * Macros, structures, prototypes for internal log manager use.
  23 */
  24
  25#define XLOG_RHASH_BITS  4
  26#define XLOG_RHASH_SIZE 16
  27#define XLOG_RHASH_SHIFT 2
  28#define XLOG_RHASH(tid) \
  29        ((((__uint32_t)tid)>>XLOG_RHASH_SHIFT) & (XLOG_RHASH_SIZE-1))
  30
  31#define XLOG_MAX_REGIONS_IN_ITEM   (XFS_MAX_BLOCKSIZE / XFS_BLF_CHUNK / 2 + 1)
  32
  33
  34/*
  35 * item headers are in ri_buf[0].  Additional buffers follow.
  36 */
  37typedef struct xlog_recover_item {
  38        struct list_head        ri_list;
  39        int                     ri_type;
  40        int                     ri_cnt; /* count of regions found */
  41        int                     ri_total;       /* total regions */
  42        xfs_log_iovec_t         *ri_buf;        /* ptr to regions buffer */
  43} xlog_recover_item_t;
  44
  45struct xlog_tid;
  46typedef struct xlog_recover {
  47        struct hlist_node       r_list;
  48        xlog_tid_t              r_log_tid;      /* log's transaction id */
  49        xfs_trans_header_t      r_theader;      /* trans header for partial */
  50        int                     r_state;        /* not needed */
  51        xfs_lsn_t               r_lsn;          /* xact lsn */
  52        struct list_head        r_itemq;        /* q for items */
  53} xlog_recover_t;
  54
  55#define ITEM_TYPE(i)    (*(ushort *)(i)->ri_buf[0].i_addr)
  56
  57/*
  58 * This is the number of entries in the l_buf_cancel_table used during
  59 * recovery.
  60 */
  61#define XLOG_BC_TABLE_SIZE      64
  62
  63#define XLOG_RECOVER_PASS1      1
  64#define XLOG_RECOVER_PASS2      2
  65
  66#endif  /* __XFS_LOG_RECOVER_H__ */
  67
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.