All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: xfs@oss.sgi.com
Subject: ***** SUSPECTED SPAM ***** [PATCH 03/50] xfs: split out buf log item format definitions
Date: Mon, 12 Aug 2013 20:49:24 +1000	[thread overview]
Message-ID: <1376304611-22994-4-git-send-email-david@fromorbit.com> (raw)
In-Reply-To: <1376304611-22994-1-git-send-email-david@fromorbit.com>

From: Dave Chinner <dchinner@redhat.com>

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
---
 fs/xfs/xfs_buf_item.h   | 100 ++----------------------------------------------
 fs/xfs/xfs_log_format.h |  97 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 100 insertions(+), 97 deletions(-)

diff --git a/fs/xfs/xfs_buf_item.h b/fs/xfs/xfs_buf_item.h
index 0f1c247..db63710 100644
--- a/fs/xfs/xfs_buf_item.h
+++ b/fs/xfs/xfs_buf_item.h
@@ -18,101 +18,9 @@
 #ifndef	__XFS_BUF_ITEM_H__
 #define	__XFS_BUF_ITEM_H__
 
-extern kmem_zone_t	*xfs_buf_item_zone;
-
-/*
- * This flag indicates that the buffer contains on disk inodes
- * and requires special recovery handling.
- */
-#define	XFS_BLF_INODE_BUF	(1<<0)
-/*
- * This flag indicates that the buffer should not be replayed
- * during recovery because its blocks are being freed.
- */
-#define	XFS_BLF_CANCEL		(1<<1)
-
-/*
- * This flag indicates that the buffer contains on disk
- * user or group dquots and may require special recovery handling.
- */
-#define	XFS_BLF_UDQUOT_BUF	(1<<2)
-#define XFS_BLF_PDQUOT_BUF	(1<<3)
-#define	XFS_BLF_GDQUOT_BUF	(1<<4)
-
-#define	XFS_BLF_CHUNK		128
-#define	XFS_BLF_SHIFT		7
-#define	BIT_TO_WORD_SHIFT	5
-#define	NBWORD			(NBBY * sizeof(unsigned int))
-
-/*
- * This is the structure used to lay out a buf log item in the
- * log.  The data map describes which 128 byte chunks of the buffer
- * have been logged.
- */
-#define XFS_BLF_DATAMAP_SIZE	((XFS_MAX_BLOCKSIZE / XFS_BLF_CHUNK) / NBWORD)
+/* kernel only definitions */
 
-typedef struct xfs_buf_log_format {
-	unsigned short	blf_type;	/* buf log item type indicator */
-	unsigned short	blf_size;	/* size of this item */
-	ushort		blf_flags;	/* misc state */
-	ushort		blf_len;	/* number of blocks in this buf */
-	__int64_t	blf_blkno;	/* starting blkno of this buf */
-	unsigned int	blf_map_size;	/* used size of data bitmap in words */
-	unsigned int	blf_data_map[XFS_BLF_DATAMAP_SIZE]; /* dirty bitmap */
-} xfs_buf_log_format_t;
-
-/*
- * All buffers now need to tell recovery where the magic number
- * is so that it can verify and calculate the CRCs on the buffer correctly
- * once the changes have been replayed into the buffer.
- *
- * The type value is held in the upper 5 bits of the blf_flags field, which is
- * an unsigned 16 bit field. Hence we need to shift it 11 bits up and down.
- */
-#define XFS_BLFT_BITS	5
-#define XFS_BLFT_SHIFT	11
-#define XFS_BLFT_MASK	(((1 << XFS_BLFT_BITS) - 1) << XFS_BLFT_SHIFT)
-
-enum xfs_blft {
-	XFS_BLFT_UNKNOWN_BUF = 0,
-	XFS_BLFT_UDQUOT_BUF,
-	XFS_BLFT_PDQUOT_BUF,
-	XFS_BLFT_GDQUOT_BUF,
-	XFS_BLFT_BTREE_BUF,
-	XFS_BLFT_AGF_BUF,
-	XFS_BLFT_AGFL_BUF,
-	XFS_BLFT_AGI_BUF,
-	XFS_BLFT_DINO_BUF,
-	XFS_BLFT_SYMLINK_BUF,
-	XFS_BLFT_DIR_BLOCK_BUF,
-	XFS_BLFT_DIR_DATA_BUF,
-	XFS_BLFT_DIR_FREE_BUF,
-	XFS_BLFT_DIR_LEAF1_BUF,
-	XFS_BLFT_DIR_LEAFN_BUF,
-	XFS_BLFT_DA_NODE_BUF,
-	XFS_BLFT_ATTR_LEAF_BUF,
-	XFS_BLFT_ATTR_RMT_BUF,
-	XFS_BLFT_SB_BUF,
-	XFS_BLFT_MAX_BUF = (1 << XFS_BLFT_BITS),
-};
-
-static inline void
-xfs_blft_to_flags(struct xfs_buf_log_format *blf, enum xfs_blft type)
-{
-	ASSERT(type > XFS_BLFT_UNKNOWN_BUF && type < XFS_BLFT_MAX_BUF);
-	blf->blf_flags &= ~XFS_BLFT_MASK;
-	blf->blf_flags |= ((type << XFS_BLFT_SHIFT) & XFS_BLFT_MASK);
-}
-
-static inline __uint16_t
-xfs_blft_from_flags(struct xfs_buf_log_format *blf)
-{
-	return (blf->blf_flags & XFS_BLFT_MASK) >> XFS_BLFT_SHIFT;
-}
-
-/*
- * buf log item flags
- */
+/* buf log item flags */
 #define	XFS_BLI_HOLD		0x01
 #define	XFS_BLI_DIRTY		0x02
 #define	XFS_BLI_STALE		0x04
@@ -133,8 +41,6 @@ xfs_blft_from_flags(struct xfs_buf_log_format *blf)
 	{ XFS_BLI_ORDERED,	"ORDERED" }
 
 
-#ifdef __KERNEL__
-
 struct xfs_buf;
 struct xfs_mount;
 struct xfs_buf_log_item;
@@ -169,6 +75,6 @@ void	xfs_trans_buf_set_type(struct xfs_trans *, struct xfs_buf *,
 			       enum xfs_blft);
 void	xfs_trans_buf_copy_type(struct xfs_buf *dst_bp, struct xfs_buf *src_bp);
 
-#endif	/* __KERNEL__ */
+extern kmem_zone_t	*xfs_buf_item_zone;
 
 #endif	/* __XFS_BUF_ITEM_H__ */
diff --git a/fs/xfs/xfs_log_format.h b/fs/xfs/xfs_log_format.h
index fd46a7f..77a6024 100644
--- a/fs/xfs/xfs_log_format.h
+++ b/fs/xfs/xfs_log_format.h
@@ -364,4 +364,101 @@ static inline uint xfs_icdinode_size(int version)
 		return sizeof(struct xfs_icdinode);
 	return offsetof(struct xfs_icdinode, di_next_unlinked);
 }
+
+/*
+ * Buffer Log Format defintions
+ *
+ * These are the physical dirty bitmap defintions for the log format structure.
+ */
+#define	XFS_BLF_CHUNK		128
+#define	XFS_BLF_SHIFT		7
+#define	BIT_TO_WORD_SHIFT	5
+#define	NBWORD			(NBBY * sizeof(unsigned int))
+
+/*
+ * This flag indicates that the buffer contains on disk inodes
+ * and requires special recovery handling.
+ */
+#define	XFS_BLF_INODE_BUF	(1<<0)
+
+/*
+ * This flag indicates that the buffer should not be replayed
+ * during recovery because its blocks are being freed.
+ */
+#define	XFS_BLF_CANCEL		(1<<1)
+
+/*
+ * This flag indicates that the buffer contains on disk
+ * user or group dquots and may require special recovery handling.
+ */
+#define	XFS_BLF_UDQUOT_BUF	(1<<2)
+#define XFS_BLF_PDQUOT_BUF	(1<<3)
+#define	XFS_BLF_GDQUOT_BUF	(1<<4)
+
+/*
+ * This is the structure used to lay out a buf log item in the
+ * log.  The data map describes which 128 byte chunks of the buffer
+ * have been logged.
+ */
+#define XFS_BLF_DATAMAP_SIZE	((XFS_MAX_BLOCKSIZE / XFS_BLF_CHUNK) / NBWORD)
+
+typedef struct xfs_buf_log_format {
+	unsigned short	blf_type;	/* buf log item type indicator */
+	unsigned short	blf_size;	/* size of this item */
+	ushort		blf_flags;	/* misc state */
+	ushort		blf_len;	/* number of blocks in this buf */
+	__int64_t	blf_blkno;	/* starting blkno of this buf */
+	unsigned int	blf_map_size;	/* used size of data bitmap in words */
+	unsigned int	blf_data_map[XFS_BLF_DATAMAP_SIZE]; /* dirty bitmap */
+} xfs_buf_log_format_t;
+
+/*
+ * All buffers now need to tell recovery where the magic number
+ * is so that it can verify and calculate the CRCs on the buffer correctly
+ * once the changes have been replayed into the buffer.
+ *
+ * The type value is held in the upper 5 bits of the blf_flags field, which is
+ * an unsigned 16 bit field. Hence we need to shift it 11 bits up and down.
+ */
+#define XFS_BLFT_BITS	5
+#define XFS_BLFT_SHIFT	11
+#define XFS_BLFT_MASK	(((1 << XFS_BLFT_BITS) - 1) << XFS_BLFT_SHIFT)
+
+enum xfs_blft {
+	XFS_BLFT_UNKNOWN_BUF = 0,
+	XFS_BLFT_UDQUOT_BUF,
+	XFS_BLFT_PDQUOT_BUF,
+	XFS_BLFT_GDQUOT_BUF,
+	XFS_BLFT_BTREE_BUF,
+	XFS_BLFT_AGF_BUF,
+	XFS_BLFT_AGFL_BUF,
+	XFS_BLFT_AGI_BUF,
+	XFS_BLFT_DINO_BUF,
+	XFS_BLFT_SYMLINK_BUF,
+	XFS_BLFT_DIR_BLOCK_BUF,
+	XFS_BLFT_DIR_DATA_BUF,
+	XFS_BLFT_DIR_FREE_BUF,
+	XFS_BLFT_DIR_LEAF1_BUF,
+	XFS_BLFT_DIR_LEAFN_BUF,
+	XFS_BLFT_DA_NODE_BUF,
+	XFS_BLFT_ATTR_LEAF_BUF,
+	XFS_BLFT_ATTR_RMT_BUF,
+	XFS_BLFT_SB_BUF,
+	XFS_BLFT_MAX_BUF = (1 << XFS_BLFT_BITS),
+};
+
+static inline void
+xfs_blft_to_flags(struct xfs_buf_log_format *blf, enum xfs_blft type)
+{
+	ASSERT(type > XFS_BLFT_UNKNOWN_BUF && type < XFS_BLFT_MAX_BUF);
+	blf->blf_flags &= ~XFS_BLFT_MASK;
+	blf->blf_flags |= ((type << XFS_BLFT_SHIFT) & XFS_BLFT_MASK);
+}
+
+static inline __uint16_t
+xfs_blft_from_flags(struct xfs_buf_log_format *blf)
+{
+	return (blf->blf_flags & XFS_BLFT_MASK) >> XFS_BLFT_SHIFT;
+}
+
 #endif /* __XFS_LOG_FORMAT_H__ */
-- 
1.8.3.2

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  parent reply	other threads:[~2013-08-12 10:50 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-12 10:49 ***** SUSPECTED SPAM ***** [PATCH 00/50] xfs: patches for 3.12 Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 01/50] xfs: separate out log format definitions Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 02/50] xfs: split out inode log item format definition Dave Chinner
2013-08-12 10:49 ` Dave Chinner [this message]
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 04/50] xfs: split out EFI/EFD " Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 05/50] xfs: separate dquot on disk format definitions out of xfs_quota.h Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 06/50] xfs: separate icreate log format definitions from xfs_icreate_item.h Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 07/50] xfs: split out on-disk transaction definitions Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 08/50] xfs: introduce xfs_rtalloc_defs.h Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 09/50] xfs: introduce xfs_quota_defs.h Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 10/50] xfs: sync minor header differences needed by userspace Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 11/50] xfs: split out transaction reservation code Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 12/50] xfs: move inode fork definitions to a new header file Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 13/50] xfs: move unrelated definitions out of xfs_inode.h Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 14/50] xfs: introduce xfs_inode_buf.c for inode buffer operations Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 15/50] xfs: move getdents code into it's own file Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 16/50] xfs: reshuffle dir2 definitions around for userspace Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 17/50] xfs: split out attribute listing code into separate file Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 18/50] xfs: split out attribute fork truncation " Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 19/50] xfs: split out the remote symlink handling Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 20/50] xfs: introduce xfs_sb.c for sharing with libxfs Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 21/50] xfs: create xfs_bmap_util.[ch] Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 22/50] xfs: minor cleanups Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 23/50] xfs: fix issues that cause userspace warnings Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 24/50] xfs: kill xfs_vnodeops.[ch] Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 25/50] xfs: consolidate xfs_rename.c Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 26/50] xfs: consolidate xfs_utils.c Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 27/50] xfs: consolidate extent swap code Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 28/50] xfs: don't special case shared superblock mounts Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 29/50] xfs: kill __KERNEL__ check for debug code in allocation code Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 30/50] xfs: remove __KERNEL__ from debug code Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 31/50] xfs: remove __KERNEL__ check from xfs_dir2_leaf.c Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 32/50] xfs: xfs_filestreams.h doesn't need __KERNEL__ Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 33/50] xfs: move kernel specific type definitions to xfs.h Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 34/50] xfs: make struct xfs_perag kernel only Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 35/50] xfs: Introduce a new structure to hold transaction reservation items Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 36/50] xfs: Introduce tr_fsyncts to m_reservation Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 37/50] xfs: Make writeid transaction use tr_writeid Dave Chinner
2013-08-12 10:49 ` ***** SUSPECTED SPAM ***** [PATCH 38/50] xfs: refactor xfs_trans_reserve() interface Dave Chinner
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 39/50] xfs: Get rid of all XFS_XXX_LOG_RES() macro Dave Chinner
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 40/50] xfs: Refactor xfs_ticket_alloc() to extract a new helper Dave Chinner
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 41/50] xfs: Add xfs_log_rlimit.c Dave Chinner
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 42/50] xfs: Validate log space at mount time Dave Chinner
2013-08-12 18:46   ` Mark Tinguely
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 43/50] xfs: return log item size in IOP_SIZE Dave Chinner
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 44/50] xfs: Reduce allocations during CIL insertion Dave Chinner
2013-08-13 13:28   ` Mark Tinguely
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 45/50] xfs: avoid CIL allocation during insert Dave Chinner
2013-08-13 13:37   ` Mark Tinguely
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 46/50] xfs: Combine CIL insert and prepare passes Dave Chinner
2013-08-13 14:02   ` Mark Tinguely
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 47/50] xfs: split the CIL lock Dave Chinner
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 48/50] xfs: Add read-only support for dirent filetype field Dave Chinner
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 49/50] xfs: Add write " Dave Chinner
2013-08-12 10:50 ` ***** SUSPECTED SPAM ***** [PATCH 50/50] xfs: use reference counts to free clean buffer items Dave Chinner
2013-08-13 15:03   ` Mark Tinguely
2013-08-13 21:46     ` Dave Chinner
2013-08-13 22:00       ` Mark Tinguely
2013-08-14  3:57         ` Dave Chinner
2013-08-14  4:12           ` Zhi Yong Wu
2013-08-14  6:41             ` Dave Chinner
2013-08-14 13:26           ` Mark Tinguely
2013-08-14 17:49             ` Mark Tinguely
2013-08-15  0:48               ` Dave Chinner
2013-08-15 21:43   ` ***** SUSPECTED SPAM ***** " Ben Myers
2013-08-12 22:55 ` ***** SUSPECTED SPAM ***** [PATCH 00/50] xfs: patches for 3.12 Ben Myers
2013-08-13 21:28   ` Ben Myers
2013-08-19 20:19 ` [PATCH 51/50] xfs: add xfs sb v4 support for dirent filetype field Mark Tinguely
2013-08-19 23:28   ` Eric Sandeen
2013-08-20 14:29     ` Mark Tinguely
2013-08-20 14:45       ` Eric Sandeen
2013-08-20 18:50         ` Ben Myers
2013-08-20 21:00           ` Mark Tinguely
2013-08-20 21:05             ` Ben Myers
2013-08-20 23:19       ` Dave Chinner
2013-08-21  0:06       ` Dave Chinner
2013-08-21 17:03         ` Ben Myers
2013-08-22  2:02           ` Dave Chinner
2013-08-22 16:14             ` Geoffrey Wehrman
2013-08-22 18:19               ` Ben Myers
2013-08-25  5:18                 ` Michael L. Semon
2013-08-25 23:21                   ` Michael L. Semon
2013-08-26 15:40                   ` Mark Tinguely
2013-08-19 23:40   ` Dave Chinner
2013-08-20 19:57   ` Geoffrey Wehrman
2013-08-22 15:59 ` ***** SUSPECTED SPAM ***** [PATCH 00/50] xfs: patches for 3.12 Ben Myers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1376304611-22994-4-git-send-email-david@fromorbit.com \
    --to=david@fromorbit.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.