Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c893feda authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Greg Kroah-Hartman
Browse files

xfs: move incore structures out of xfs_da_format.h



commit a39f089a25e75c3d17b955d8eb8bc781f23364f3 upstream.

Move the abstract in-memory version of various btree block headers
out of xfs_da_format.h as they aren't on-disk formats.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Acked-by: default avatarDarrick J. Wong <djwong@kernel.org>
Signed-off-by: default avatarChandan Babu R <chandan.babu@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 5e13ad94
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -16,6 +16,29 @@ struct xfs_da_state_blk;
struct xfs_inode;
struct xfs_trans;

/*
 * Incore version of the attribute leaf header.
 */
struct xfs_attr3_icleaf_hdr {
	uint32_t	forw;
	uint32_t	back;
	uint16_t	magic;
	uint16_t	count;
	uint16_t	usedbytes;
	/*
	 * Firstused is 32-bit here instead of 16-bit like the on-disk variant
	 * to support maximum fsb size of 64k without overflow issues throughout
	 * the attr code. Instead, the overflow condition is handled on
	 * conversion to/from disk.
	 */
	uint32_t	firstused;
	__u8		holes;
	struct {
		uint16_t	base;
		uint16_t	size;
	} freemap[XFS_ATTR_LEAF_MAPSIZE];
};

/*
 * Used to keep a list of "remote value" extents when unlinking an inode.
 */
+13 −0
Original line number Diff line number Diff line
@@ -126,6 +126,19 @@ typedef struct xfs_da_state {
						/* for dirv2 extrablk is data */
} xfs_da_state_t;

/*
 * In-core version of the node header to abstract the differences in the v2 and
 * v3 disk format of the headers. Callers need to convert to/from disk format as
 * appropriate.
 */
struct xfs_da3_icnode_hdr {
	uint32_t		forw;
	uint32_t		back;
	uint16_t		magic;
	uint16_t		count;
	uint16_t		level;
};

/*
 * Utility macros to aid in logging changed structure fields.
 */
+1 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include "xfs_mount.h"
#include "xfs_inode.h"
#include "xfs_dir2.h"
#include "xfs_dir2_priv.h"

/*
 * Shortform directory ops
+0 −57
Original line number Diff line number Diff line
@@ -93,19 +93,6 @@ struct xfs_da3_intnode {
	struct xfs_da_node_entry __btree[];
};

/*
 * In-core version of the node header to abstract the differences in the v2 and
 * v3 disk format of the headers. Callers need to convert to/from disk format as
 * appropriate.
 */
struct xfs_da3_icnode_hdr {
	uint32_t	forw;
	uint32_t	back;
	uint16_t	magic;
	uint16_t	count;
	uint16_t	level;
};

/*
 * Directory version 2.
 *
@@ -434,14 +421,6 @@ struct xfs_dir3_leaf_hdr {
	__be32			pad;		/* 64 bit alignment */
};

struct xfs_dir3_icleaf_hdr {
	uint32_t		forw;
	uint32_t		back;
	uint16_t		magic;
	uint16_t		count;
	uint16_t		stale;
};

/*
 * Leaf block entry.
 */
@@ -520,19 +499,6 @@ struct xfs_dir3_free {

#define XFS_DIR3_FREE_CRC_OFF  offsetof(struct xfs_dir3_free, hdr.hdr.crc)

/*
 * In core version of the free block header, abstracted away from on-disk format
 * differences. Use this in the code, and convert to/from the disk version using
 * xfs_dir3_free_hdr_from_disk/xfs_dir3_free_hdr_to_disk.
 */
struct xfs_dir3_icfree_hdr {
	uint32_t	magic;
	uint32_t	firstdb;
	uint32_t	nvalid;
	uint32_t	nused;

};

/*
 * Single block format.
 *
@@ -709,29 +675,6 @@ struct xfs_attr3_leafblock {
	 */
};

/*
 * incore, neutral version of the attribute leaf header
 */
struct xfs_attr3_icleaf_hdr {
	uint32_t	forw;
	uint32_t	back;
	uint16_t	magic;
	uint16_t	count;
	uint16_t	usedbytes;
	/*
	 * firstused is 32-bit here instead of 16-bit like the on-disk variant
	 * to support maximum fsb size of 64k without overflow issues throughout
	 * the attr code. Instead, the overflow condition is handled on
	 * conversion to/from disk.
	 */
	uint32_t	firstused;
	__u8		holes;
	struct {
		uint16_t	base;
		uint16_t	size;
	} freemap[XFS_ATTR_LEAF_MAPSIZE];
};

/*
 * Special value to represent fs block size in the leaf header firstused field.
 * Only used when block size overflows the 2-bytes available on disk.
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ struct xfs_dir2_sf_entry;
struct xfs_dir2_data_hdr;
struct xfs_dir2_data_entry;
struct xfs_dir2_data_unused;
struct xfs_dir3_icfree_hdr;
struct xfs_dir3_icleaf_hdr;

extern struct xfs_name	xfs_name_dotdot;

Loading