All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Thumshirn <jth@kernel.org>
To: David Sterba <dsterba@suse.com>
Cc: linux-btrfs@vger.kernel.org,
	Johannes Thumshirn <johannes.thumshirn@wdc.com>
Subject: [PATCH] btrfs-progs: remove raid stripe encoding
Date: Thu, 20 Jun 2024 09:54:55 +0200	[thread overview]
Message-ID: <20240620075455.20074-1-jth@kernel.org> (raw)

From: Johannes Thumshirn <johannes.thumshirn@wdc.com>

Remove the not needed encoding and reserved fields in struct
raid_stripe_extent.

This saves 8 bytes per stripe extent.

Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
---
 kernel-shared/accessors.h       |  3 ---
 kernel-shared/print-tree.c      | 33 +--------------------------------
 kernel-shared/uapi/btrfs_tree.h | 14 +-------------
 3 files changed, 2 insertions(+), 48 deletions(-)

diff --git a/kernel-shared/accessors.h b/kernel-shared/accessors.h
index b17c675c1807..c2681698b3cc 100644
--- a/kernel-shared/accessors.h
+++ b/kernel-shared/accessors.h
@@ -322,11 +322,8 @@ BTRFS_SETGET_FUNCS(timespec_nsec, struct btrfs_timespec, nsec, 32);
 BTRFS_SETGET_STACK_FUNCS(stack_timespec_sec, struct btrfs_timespec, sec, 64);
 BTRFS_SETGET_STACK_FUNCS(stack_timespec_nsec, struct btrfs_timespec, nsec, 32);
 
-BTRFS_SETGET_FUNCS(stripe_extent_encoding, struct btrfs_stripe_extent, encoding, 8);
 BTRFS_SETGET_FUNCS(raid_stride_devid, struct btrfs_raid_stride, devid, 64);
 BTRFS_SETGET_FUNCS(raid_stride_offset, struct btrfs_raid_stride, offset, 64);
-BTRFS_SETGET_STACK_FUNCS(stack_stripe_extent_encoding,
-			 struct btrfs_stripe_extent, encoding, 8);
 BTRFS_SETGET_STACK_FUNCS(stack_raid_stride_devid, struct btrfs_raid_stride, devid, 64);
 
 static inline struct btrfs_raid_stride *btrfs_raid_stride_nr(
diff --git a/kernel-shared/print-tree.c b/kernel-shared/print-tree.c
index 6f78ec3512de..1692e6475865 100644
--- a/kernel-shared/print-tree.c
+++ b/kernel-shared/print-tree.c
@@ -669,42 +669,11 @@ static void print_free_space_header(struct extent_buffer *leaf, int slot)
 	       (unsigned long long)btrfs_free_space_bitmaps(leaf, header));
 }
 
-struct raid_encoding_map {
-	u8 encoding;
-	char name[16];
-};
-
-static const struct raid_encoding_map raid_map[] = {
-	{ BTRFS_STRIPE_DUP,	"DUP" },
-	{ BTRFS_STRIPE_RAID0,	"RAID0" },
-	{ BTRFS_STRIPE_RAID1,	"RAID1" },
-	{ BTRFS_STRIPE_RAID1C3,	"RAID1C3" },
-	{ BTRFS_STRIPE_RAID1C4, "RAID1C4" },
-	{ BTRFS_STRIPE_RAID5,	"RAID5" },
-	{ BTRFS_STRIPE_RAID6,	"RAID6" },
-	{ BTRFS_STRIPE_RAID10,	"RAID10" }
-};
-
-static const char *stripe_encoding_name(u8 encoding)
-{
-	for (int i = 0; i < ARRAY_SIZE(raid_map); i++) {
-		if (raid_map[i].encoding == encoding)
-			return raid_map[i].name;
-	}
-
-	return "UNKNOWN";
-}
-
 static void print_raid_stripe_key(struct extent_buffer *eb,
 				  u32 item_size, struct btrfs_stripe_extent *stripe)
 {
-	int num_stripes;
-	u8 encoding = btrfs_stripe_extent_encoding(eb, stripe);
-
-	num_stripes = (item_size - offsetof(struct btrfs_stripe_extent, strides)) /
-		      sizeof(struct btrfs_raid_stride);
+	int num_stripes = item_size / sizeof(struct btrfs_raid_stride);
 
-	printf("\t\t\tencoding: %s\n", stripe_encoding_name(encoding));
 	for (int i = 0; i < num_stripes; i++)
 		printf("\t\t\tstripe %d devid %llu physical %llu\n", i,
 		       (unsigned long long)btrfs_raid_stride_devid_nr(eb, stripe, i),
diff --git a/kernel-shared/uapi/btrfs_tree.h b/kernel-shared/uapi/btrfs_tree.h
index 271346258d1d..5720a03c939b 100644
--- a/kernel-shared/uapi/btrfs_tree.h
+++ b/kernel-shared/uapi/btrfs_tree.h
@@ -712,21 +712,9 @@ struct btrfs_raid_stride {
 	__le64 offset;
 } __attribute__ ((__packed__));
 
-/* The stripe_extent::encoding, 1:1 mapping of enum btrfs_raid_types */
-#define BTRFS_STRIPE_RAID0	1
-#define BTRFS_STRIPE_RAID1	2
-#define BTRFS_STRIPE_DUP	3
-#define BTRFS_STRIPE_RAID10	4
-#define BTRFS_STRIPE_RAID5	5
-#define BTRFS_STRIPE_RAID6	6
-#define BTRFS_STRIPE_RAID1C3	7
-#define BTRFS_STRIPE_RAID1C4	8
-
 struct btrfs_stripe_extent {
-	u8 encoding;
-	u8 reserved[7];
 	/* Array of raid strides this stripe is comprised of. */
-	struct btrfs_raid_stride strides;
+	__DECLARE_FLEX_ARRAY(struct btrfs_raid_stride, strides);
 } __attribute__ ((__packed__));
 
 #define BTRFS_FREE_SPACE_EXTENT	1
-- 
2.43.0


             reply	other threads:[~2024-06-20  7:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-20  7:54 Johannes Thumshirn [this message]
2024-06-24 17:07 ` [PATCH] btrfs-progs: remove raid stripe encoding David Sterba
2024-06-24 17:09   ` David Sterba
2024-06-24 17:30 ` David Sterba

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=20240620075455.20074-1-jth@kernel.org \
    --to=jth@kernel.org \
    --cc=dsterba@suse.com \
    --cc=johannes.thumshirn@wdc.com \
    --cc=linux-btrfs@vger.kernel.org \
    /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.