xfs
[Top] [All Lists]

Re: [PATCH 22/49] xfs: split out on-disk transaction definitions

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 22/49] xfs: split out on-disk transaction definitions
From: Mark Tinguely <tinguely@xxxxxxx>
Date: Mon, 05 Aug 2013 10:22:59 -0500
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1374216324-8781-23-git-send-email-david@xxxxxxxxxxxxx>
References: <1374216324-8781-1-git-send-email-david@xxxxxxxxxxxxx> <1374216324-8781-23-git-send-email-david@xxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0
On 07/19/13 01:44, Dave Chinner wrote:
From: Dave Chinner<dchinner@xxxxxxxxxx>

There's a bunch of definitions in xfs_trans.h that define on-disk
formats - transaction headers taht get written into the log, log
item type definitions, etc. Split out everything into a separate
file so that all which remains in xfs_trans.h are kernel only
definitions.

Signed-off-by: Dave Chinner<dchinner@xxxxxxxxxx>
---

There are a couple comments that now wrap because of new indentation, but they are fixed in a later patch.

The following entries deviates from kernel patch 07/49 in they are not moved from xfs_trans.h - never are:


/*
 * This structure is used to track log items associated with
 * a transaction.  It points to the log item and keeps some
 * flags to track the state of the log item.  It also tracks
 * the amount of space needed to log the item it describes
 * once we get to commit processing (see xfs_trans_commit()).
struct xfs_log_item_desc {
        struct xfs_log_item     *lid_item;
        struct list_head        lid_trans;
        unsigned char           lid_flags;
};

#define XFS_LID_DIRTY           0x1

/*
 * Values for t_flags.
 */
#define XFS_TRANS_DIRTY         0x01    /* something needs to be logged */
#define XFS_TRANS_SB_DIRTY      0x02    /* superblock is modified */
#define XFS_TRANS_PERM_LOG_RES  0x04    /* xact took a permanent log res */
#define XFS_TRANS_SYNC          0x08    /* make commit synchronous */
#define XFS_TRANS_DQ_DIRTY      0x10    /* at least one dquot in trx dirty */
#define XFS_TRANS_RESERVE       0x20    /* OK to use reserved data blocks */
#define XFS_TRANS_FREEZE_PROT   0x40    /* Transaction has elevated writer
                                           count in superblock */

/*
 * Values for call flags parameter.
 */
#define XFS_TRANS_RELEASE_LOG_RES       0x4
#define XFS_TRANS_ABORT                 0x8

/*
 * Field values for xfs_trans_mod_sb.
 */
#define XFS_TRANS_SB_ICOUNT             0x00000001
#define XFS_TRANS_SB_IFREE              0x00000002
#define XFS_TRANS_SB_FDBLOCKS           0x00000004
#define XFS_TRANS_SB_RES_FDBLOCKS       0x00000008
#define XFS_TRANS_SB_FREXTENTS          0x00000010
#define XFS_TRANS_SB_RES_FREXTENTS      0x00000020
#define XFS_TRANS_SB_DBLOCKS            0x00000040
#define XFS_TRANS_SB_AGCOUNT            0x00000080
#define XFS_TRANS_SB_IMAXPCT            0x00000100
#define XFS_TRANS_SB_REXTSIZE           0x00000200
#define XFS_TRANS_SB_RBMBLOCKS          0x00000400
#define XFS_TRANS_SB_RBLOCKS            0x00000800
#define XFS_TRANS_SB_REXTENTS           0x00001000
#define XFS_TRANS_SB_REXTSLOG           0x00002000

/*
 * Here we centralize the specification of XFS meta-data buffer
 * reference count values.  This determine how hard the buffer
 * cache tries to hold onto the buffer.
 */
#define XFS_AGF_REF             4
#define XFS_AGI_REF             4
#define XFS_AGFL_REF            3
#define XFS_INO_BTREE_REF       3
#define XFS_ALLOC_BTREE_REF     2
#define XFS_BMAP_BTREE_REF      2
#define XFS_DIR_BTREE_REF       2
#define XFS_INO_REF             2
#define XFS_ATTR_BTREE_REF      1
#define XFS_DQUOT_REF           1

/*
 * Flags for xfs_trans_ichgtime().
 */
#define XFS_ICHGTIME_MOD        0x1     /* data fork modification timestamp */
#define XFS_ICHGTIME_CHG        0x2     /* inode field change timestamp */
#define XFS_ICHGTIME_CREATE     0x4     /* inode create timestamp */

<Prev in Thread] Current Thread [Next in Thread>