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

Commit 8bb28975 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Trond Myklebust
Browse files

pnfs: move common blocklayout XDR defintions to nfs4.h

parent 513d6d7a
Loading
Loading
Loading
Loading
+1 −18
Original line number Diff line number Diff line
@@ -46,13 +46,6 @@

struct pnfs_block_dev;

enum pnfs_block_volume_type {
	PNFS_BLOCK_VOLUME_SIMPLE	= 0,
	PNFS_BLOCK_VOLUME_SLICE		= 1,
	PNFS_BLOCK_VOLUME_CONCAT	= 2,
	PNFS_BLOCK_VOLUME_STRIPE	= 3,
};

#define PNFS_BLOCK_MAX_UUIDS	4
#define PNFS_BLOCK_MAX_DEVICES	64

@@ -117,13 +110,6 @@ struct pnfs_block_dev {
			struct pnfs_block_dev_map *map);
};

enum exstate4 {
	PNFS_BLOCK_READWRITE_DATA	= 0,
	PNFS_BLOCK_READ_DATA		= 1,
	PNFS_BLOCK_INVALID_DATA		= 2, /* mapped, but data is invalid */
	PNFS_BLOCK_NONE_DATA		= 3  /* unmapped, it's a hole */
};

/* sector_t fields are all in 512-byte sectors */
struct pnfs_block_extent {
	union {
@@ -134,15 +120,12 @@ struct pnfs_block_extent {
	sector_t	be_f_offset;	/* the starting offset in the file */
	sector_t	be_length;	/* the size of the extent */
	sector_t	be_v_offset;	/* the starting offset in the volume */
	enum exstate4	be_state;	/* the state of this extent */
	enum pnfs_block_extent_state be_state;	/* the state of this extent */
#define EXTENT_WRITTEN		1
#define EXTENT_COMMITTING	2
	unsigned int	be_tag;
};

/* on the wire size of the extent */
#define BL_EXTENT_SIZE	(7 * sizeof(__be32) + NFS4_DEVICEID4_SIZE)

struct pnfs_block_layout {
	struct pnfs_layout_hdr	bl_layout;
	struct rb_root		bl_ext_rw;
+1 −1
Original line number Diff line number Diff line
@@ -465,7 +465,7 @@ ext_tree_mark_written(struct pnfs_block_layout *bl, sector_t start,
static size_t ext_tree_layoutupdate_size(size_t count)
{
	return sizeof(__be32) /* number of entries */ +
		BL_EXTENT_SIZE * count;
		PNFS_BLOCK_EXTENT_SIZE * count;
}

static void ext_tree_free_commitdata(struct nfs4_layoutcommit_args *arg,
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ nfsd4_block_decode_layoutupdate(__be32 *p, u32 len, struct iomap **iomapp,
	}

	nr_iomaps = be32_to_cpup(p++);
	expected = sizeof(__be32) + nr_iomaps * NFS4_BLOCK_EXTENT_SIZE;
	expected = sizeof(__be32) + nr_iomaps * PNFS_BLOCK_EXTENT_SIZE;
	if (len != expected) {
		dprintk("%s: extent array size mismatch: %u/%u\n",
			__func__, len, expected);
+0 −15
Original line number Diff line number Diff line
@@ -7,13 +7,6 @@
struct iomap;
struct xdr_stream;

enum pnfs_block_extent_state {
	PNFS_BLOCK_READWRITE_DATA	= 0,
	PNFS_BLOCK_READ_DATA		= 1,
	PNFS_BLOCK_INVALID_DATA		= 2,
	PNFS_BLOCK_NONE_DATA		= 3,
};

struct pnfs_block_extent {
	struct nfsd4_deviceid		vol_id;
	u64				foff;
@@ -21,14 +14,6 @@ struct pnfs_block_extent {
	u64				soff;
	enum pnfs_block_extent_state	es;
};
#define NFS4_BLOCK_EXTENT_SIZE		44

enum pnfs_block_volume_type {
	PNFS_BLOCK_VOLUME_SIMPLE	= 0,
	PNFS_BLOCK_VOLUME_SLICE		= 1,
	PNFS_BLOCK_VOLUME_CONCAT	= 2,
	PNFS_BLOCK_VOLUME_STRIPE	= 3,
};

/*
 * Random upper cap for the uuid length to avoid unbounded allocation.
+18 −0
Original line number Diff line number Diff line
@@ -547,6 +547,24 @@ enum pnfs_notify_deviceid_type4 {
	NOTIFY_DEVICEID4_DELETE = 1 << 2,
};

enum pnfs_block_volume_type {
	PNFS_BLOCK_VOLUME_SIMPLE	= 0,
	PNFS_BLOCK_VOLUME_SLICE		= 1,
	PNFS_BLOCK_VOLUME_CONCAT	= 2,
	PNFS_BLOCK_VOLUME_STRIPE	= 3,
};

enum pnfs_block_extent_state {
	PNFS_BLOCK_READWRITE_DATA	= 0,
	PNFS_BLOCK_READ_DATA		= 1,
	PNFS_BLOCK_INVALID_DATA		= 2,
	PNFS_BLOCK_NONE_DATA		= 3,
};

/* on the wire size of a block layout extent */
#define PNFS_BLOCK_EXTENT_SIZE \
	(7 * sizeof(__be32) + NFS4_DEVICEID4_SIZE)

#define NFL4_UFLG_MASK			0x0000003F
#define NFL4_UFLG_DENSE			0x00000001
#define NFL4_UFLG_COMMIT_THRU_MDS	0x00000002