* [PATCH v0 1/3] mdadm: Remove klibc and uclibc support
2025-03-19 17:10 [PATCH v0 0/3] mdadm: Use kernel raid headers mtkaczyk
@ 2025-03-19 17:10 ` mtkaczyk
2025-03-19 17:10 ` [PATCH v0 2/3] mdadm: include asm/byteorder.h mtkaczyk
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: mtkaczyk @ 2025-03-19 17:10 UTC (permalink / raw)
To: linux-raid; +Cc: Mariusz Tkaczyk, Xiao Ni, Nigel Croxon, Song Liu, Yu Kuai
From: Mariusz Tkaczyk <mtkaczyk@kernel.org>
Klibc compilation is not working for at least 3 years because of
following error:
mdadm.h:1912:15: error: unknown type name 'sighandler_t'
It will have a conflict with le/be_to_cpu() functions family provided by
asm/byteorder.h which will be included with raid/md_p.h. Therefore we
need to remove support for it. Also, remove uclibc because it is not actively
maintained.
Remove klibc and uclibc targets from Makefile and special klibc code.
Targets can be removed safely because using CC is recommended.
Signed-off-by: Mariusz Tkaczyk <mtkaczyk@kernel.org>
---
Makefile | 34 +++-------------------------------
README.md | 3 ---
mdadm.h | 37 +------------------------------------
3 files changed, 4 insertions(+), 70 deletions(-)
diff --git a/Makefile b/Makefile
index bcd092de50c7..387e4a56f519 100644
--- a/Makefile
+++ b/Makefile
@@ -31,16 +31,6 @@
# define "CXFLAGS" to give extra flags to CC.
# e.g. make CXFLAGS=-O to optimise
CXFLAGS ?=-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE
-TCC = tcc
-UCLIBC_GCC = $(shell for nm in i386-uclibc-linux-gcc i386-uclibc-gcc; do which $$nm > /dev/null && { echo $$nm ; exit; } ; done; echo false No uclibc found )
-#DIET_GCC = diet gcc
-# sorry, but diet-libc doesn't know about posix_memalign,
-# so we cannot use it any more.
-DIET_GCC = gcc -DHAVE_STDINT_H
-
-KLIBC=/home/src/klibc/klibc-0.77
-
-KLIBC_GCC = gcc -nostdinc -iwithprefix include -I$(KLIBC)/klibc/include -I$(KLIBC)/linux/include -I$(KLIBC)/klibc/arch/i386/include -I$(KLIBC)/klibc/include/bits32
ifdef COVERITY
COVERITY_FLAGS=-include coverity-gcc-hack.h
@@ -225,8 +215,6 @@ everything: all swap_super test_stripe raid6check \
mdadm.Os mdadm.O2 man
everything-test: all swap_super test_stripe \
mdadm.Os mdadm.O2 man
-# mdadm.uclibc doesn't work on x86-64
-# mdadm.tcc doesn't work..
%.o: %.c
$(CC) $(CFLAGS) $(CPPFLAGS) $(COVERITY_FLAGS) -o $@ -c $<
@@ -237,13 +225,6 @@ mdadm : $(OBJS) | check_rundir
mdadm.static : $(OBJS) $(STATICOBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -static -o mdadm.static $(OBJS) $(STATICOBJS) $(LDLIBS)
-mdadm.tcc : $(SRCS) $(INCL)
- $(TCC) -o mdadm.tcc $(SRCS)
-
-mdadm.klibc : $(SRCS) $(INCL)
- rm -f $(OBJS)
- $(CC) -nostdinc -iwithprefix include -I$(KLIBC)/klibc/include -I$(KLIBC)/linux/include -I$(KLIBC)/klibc/arch/i386/include -I$(KLIBC)/klibc/include/bits32 $(CFLAGS) $(SRCS)
-
mdadm.Os : $(SRCS) $(INCL)
$(CC) -o mdadm.Os $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -DHAVE_STDINT_H -Os $(SRCS) $(LDLIBS)
@@ -298,15 +279,6 @@ install : install-bin install-man install-udev
install-static : mdadm.static install-man
$(INSTALL) -D $(STRIP) -m 755 mdadm.static $(DESTDIR)$(BINDIR)/mdadm
-install-tcc : mdadm.tcc install-man
- $(INSTALL) -D $(STRIP) -m 755 mdadm.tcc $(DESTDIR)$(BINDIR)/mdadm
-
-install-uclibc : mdadm.uclibc install-man
- $(INSTALL) -D $(STRIP) -m 755 mdadm.uclibc $(DESTDIR)$(BINDIR)/mdadm
-
-install-klibc : mdadm.klibc install-man
- $(INSTALL) -D $(STRIP) -m 755 mdadm.klibc $(DESTDIR)$(BINDIR)/mdadm
-
install-man: mdadm.8 md.4 mdadm.conf.5 mdmon.8
$(INSTALL) -D -m 644 mdadm.8 $(DESTDIR)$(MAN8DIR)/mdadm.8
$(INSTALL) -D -m 644 mdmon.8 $(DESTDIR)$(MAN8DIR)/mdmon.8
@@ -354,9 +326,9 @@ test: mdadm mdmon test_stripe swap_super raid6check
clean :
rm -f mdadm mdmon $(OBJS) $(MON_OBJS) $(STATICOBJS) core *.man \
- mdadm.tcc mdadm.uclibc mdadm.static *.orig *.porig *.rej *.alt \
- .merge_file_* mdadm.Os mdadm.O2 mdmon.O2 swap_super init.cpio.gz \
- mdadm.uclibc.static test_stripe raid6check raid6check.o mdmon mdadm.8
+ mdadm.static *.orig *.porig *.rej *.alt merge_file_* \
+ mdadm.Os mdadm.O2 mdmon.O2 swap_super init.cpio.gz \
+ test_stripe raid6check raid6check.o mdmon mdadm.8
rm -rf cov-int
dist : clean
diff --git a/README.md b/README.md
index 0c299a9a26a2..12a26353e7e9 100644
--- a/README.md
+++ b/README.md
@@ -138,9 +138,6 @@ List of installation targets:
The following targets are deprecated and should not be used:
- `install-static`
-- `install-tcc`
-- `install-uclibc`
-- `install-klibc`
# License
diff --git a/mdadm.h b/mdadm.h
index e84c341c3040..0b86e4849d33 100644
--- a/mdadm.h
+++ b/mdadm.h
@@ -43,6 +43,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
#include <sys/time.h>
#include <getopt.h>
#include <fcntl.h>
+#include <ftw.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
@@ -189,7 +190,6 @@ struct dlm_lksb {
((x) & 0x00000000ff000000ULL) << 8 | \
((x) & 0x000000ff00000000ULL) >> 8)
-#if !defined(__KLIBC__)
#if BYTE_ORDER == LITTLE_ENDIAN
#define __cpu_to_le16(_x) (unsigned int)(_x)
#define __cpu_to_le32(_x) (unsigned int)(_x)
@@ -221,7 +221,6 @@ struct dlm_lksb {
#else
# error "unknown endianness."
#endif
-#endif /* __KLIBC__ */
/*
* Partially stolen from include/linux/unaligned/packed_struct.h
@@ -1530,40 +1529,6 @@ extern void sysfsline(char *line);
struct stat64;
#endif
-#define HAVE_NFTW we assume
-#define HAVE_FTW
-
-#ifdef __UCLIBC__
-# include <features.h>
-# ifndef __UCLIBC_HAS_LFS__
-# define lseek64 lseek
-# endif
-# ifndef __UCLIBC_HAS_FTW__
-# undef HAVE_FTW
-# undef HAVE_NFTW
-# endif
-#endif
-
-#ifdef __dietlibc__
-# undef HAVE_NFTW
-#endif
-
-#if defined(__KLIBC__)
-# undef HAVE_NFTW
-# undef HAVE_FTW
-#endif
-
-#ifndef HAVE_NFTW
-# define FTW_PHYS 1
-# ifndef HAVE_FTW
- struct FTW {};
-# endif
-#endif
-
-#ifdef HAVE_FTW
-# include <ftw.h>
-#endif
-
extern int add_dev(const char *name, const struct stat *stb, int flag, struct FTW *s);
extern int Manage_ro(char *devname, int fd, int readonly);
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH v0 2/3] mdadm: include asm/byteorder.h
2025-03-19 17:10 [PATCH v0 0/3] mdadm: Use kernel raid headers mtkaczyk
2025-03-19 17:10 ` [PATCH v0 1/3] mdadm: Remove klibc and uclibc support mtkaczyk
@ 2025-03-19 17:10 ` mtkaczyk
2025-03-19 17:10 ` [PATCH v0 3/3] mdadm: use kernel raid headers mtkaczyk
2025-03-20 5:45 ` [PATCH v0 0/3] mdadm: Use " Xiao Ni
3 siblings, 0 replies; 5+ messages in thread
From: mtkaczyk @ 2025-03-19 17:10 UTC (permalink / raw)
To: linux-raid; +Cc: Mariusz Tkaczyk, Xiao Ni, Nigel Croxon, Song Liu, Yu Kuai
From: Mariusz Tkaczyk <mtkaczyk@kernel.org>
It will be included by raid/md_p.h anyway. Include it directly and
remove custom functions. It is not a problem now.
Signed-off-by: Mariusz Tkaczyk <mtkaczyk@kernel.org>
---
mdadm.h | 55 +------------------------------------------------------
1 file changed, 1 insertion(+), 54 deletions(-)
diff --git a/mdadm.h b/mdadm.h
index 0b86e4849d33..d2c2a4dac11b 100644
--- a/mdadm.h
+++ b/mdadm.h
@@ -34,6 +34,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
#endif
#include <assert.h>
+#include <asm/byteorder.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdarg.h>
@@ -85,7 +86,6 @@ struct dlm_lksb {
#endif
#include <linux/kdev_t.h>
-/*#include <linux/fs.h> */
#include <sys/mount.h>
#include <asm/types.h>
#include <sys/ioctl.h>
@@ -169,59 +169,6 @@ struct dlm_lksb {
#include "msg.h"
#include "mdadm_status.h"
-#include <endian.h>
-/* Redhat don't like to #include <asm/byteorder.h>, and
- * some time include <linux/byteorder/xxx_endian.h> isn't enough,
- * and there is no standard conversion function so... */
-/* And dietlibc doesn't think byteswap is ok, so.. */
-/* #include <byteswap.h> */
-#define __mdadm_bswap_16(x) (((x) & 0x00ffU) << 8 | \
- ((x) & 0xff00U) >> 8)
-#define __mdadm_bswap_32(x) (((x) & 0x000000ffU) << 24 | \
- ((x) & 0xff000000U) >> 24 | \
- ((x) & 0x0000ff00U) << 8 | \
- ((x) & 0x00ff0000U) >> 8)
-#define __mdadm_bswap_64(x) (((x) & 0x00000000000000ffULL) << 56 | \
- ((x) & 0xff00000000000000ULL) >> 56 | \
- ((x) & 0x000000000000ff00ULL) << 40 | \
- ((x) & 0x00ff000000000000ULL) >> 40 | \
- ((x) & 0x0000000000ff0000ULL) << 24 | \
- ((x) & 0x0000ff0000000000ULL) >> 24 | \
- ((x) & 0x00000000ff000000ULL) << 8 | \
- ((x) & 0x000000ff00000000ULL) >> 8)
-
-#if BYTE_ORDER == LITTLE_ENDIAN
-#define __cpu_to_le16(_x) (unsigned int)(_x)
-#define __cpu_to_le32(_x) (unsigned int)(_x)
-#define __cpu_to_le64(_x) (unsigned long long)(_x)
-#define __le16_to_cpu(_x) (unsigned int)(_x)
-#define __le32_to_cpu(_x) (unsigned int)(_x)
-#define __le64_to_cpu(_x) (unsigned long long)(_x)
-
-#define __cpu_to_be16(_x) __mdadm_bswap_16(_x)
-#define __cpu_to_be32(_x) __mdadm_bswap_32(_x)
-#define __cpu_to_be64(_x) __mdadm_bswap_64(_x)
-#define __be16_to_cpu(_x) __mdadm_bswap_16(_x)
-#define __be32_to_cpu(_x) __mdadm_bswap_32(_x)
-#define __be64_to_cpu(_x) __mdadm_bswap_64(_x)
-#elif BYTE_ORDER == BIG_ENDIAN
-#define __cpu_to_le16(_x) __mdadm_bswap_16(_x)
-#define __cpu_to_le32(_x) __mdadm_bswap_32(_x)
-#define __cpu_to_le64(_x) __mdadm_bswap_64(_x)
-#define __le16_to_cpu(_x) __mdadm_bswap_16(_x)
-#define __le32_to_cpu(_x) __mdadm_bswap_32(_x)
-#define __le64_to_cpu(_x) __mdadm_bswap_64(_x)
-
-#define __cpu_to_be16(_x) (unsigned int)(_x)
-#define __cpu_to_be32(_x) (unsigned int)(_x)
-#define __cpu_to_be64(_x) (unsigned long long)(_x)
-#define __be16_to_cpu(_x) (unsigned int)(_x)
-#define __be32_to_cpu(_x) (unsigned int)(_x)
-#define __be64_to_cpu(_x) (unsigned long long)(_x)
-#else
-# error "unknown endianness."
-#endif
-
/*
* Partially stolen from include/linux/unaligned/packed_struct.h
*/
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH v0 3/3] mdadm: use kernel raid headers
2025-03-19 17:10 [PATCH v0 0/3] mdadm: Use kernel raid headers mtkaczyk
2025-03-19 17:10 ` [PATCH v0 1/3] mdadm: Remove klibc and uclibc support mtkaczyk
2025-03-19 17:10 ` [PATCH v0 2/3] mdadm: include asm/byteorder.h mtkaczyk
@ 2025-03-19 17:10 ` mtkaczyk
2025-03-20 5:45 ` [PATCH v0 0/3] mdadm: Use " Xiao Ni
3 siblings, 0 replies; 5+ messages in thread
From: mtkaczyk @ 2025-03-19 17:10 UTC (permalink / raw)
To: linux-raid; +Cc: Mariusz Tkaczyk, Xiao Ni, Nigel Croxon, Song Liu, Yu Kuai
From: Mariusz Tkaczyk <mtkaczyk@kernel.org>
For a years we redefined these headers in mdadm. We should reuse headers
exported by kernel to integrate driver and mdadm better.
Include them and remove mdadm owned headers.
There are 3 defines not available in kernel headers, so define them
directly but put them in ifndef guard to make them transparent later.
Use MD_FEATURE_CLUSTERED instead of MD_FEATURE_BITMAP_VERSIONED. The
value is same, kernel define has different name.
Signed-off-by: Mariusz Tkaczyk <mtkaczyk@kernel.org>
---
Create.c | 2 -
Detail.c | 2 -
Examine.c | 2 -
Grow.c | 6 ---
Kill.c | 2 -
Manage.c | 2 -
Query.c | 2 -
mdadm.h | 16 ++++++-
mdmonitor.c | 2 -
super1.c | 126 ++--------------------------------------------------
udev.c | 2 -
11 files changed, 17 insertions(+), 147 deletions(-)
diff --git a/Create.c b/Create.c
index fd6c92152021..4d5c15531df1 100644
--- a/Create.c
+++ b/Create.c
@@ -23,8 +23,6 @@
*/
#include "mdadm.h"
-#include "md_u.h"
-#include "md_p.h"
#include "udev.h"
#include "xmalloc.h"
diff --git a/Detail.c b/Detail.c
index b804a624574c..3802ef8fa6fc 100644
--- a/Detail.c
+++ b/Detail.c
@@ -23,8 +23,6 @@
*/
#include "mdadm.h"
-#include "md_p.h"
-#include "md_u.h"
#include "xmalloc.h"
#include <ctype.h>
diff --git a/Examine.c b/Examine.c
index 036b7a5634ad..9c8564be90d4 100644
--- a/Examine.c
+++ b/Examine.c
@@ -24,8 +24,6 @@
#include "dlink.h"
#include "mdadm.h"
-#include "md_u.h"
-#include "md_p.h"
#include "xmalloc.h"
#if ! defined(__BIG_ENDIAN) && ! defined(__LITTLE_ENDIAN)
diff --git a/Grow.c b/Grow.c
index 53b0b3876b26..30eaa3c6a654 100644
--- a/Grow.c
+++ b/Grow.c
@@ -30,12 +30,6 @@
#include <stdint.h>
#include <sys/wait.h>
-#if ! defined(__BIG_ENDIAN) && ! defined(__LITTLE_ENDIAN)
-#error no endian defined
-#endif
-#include "md_u.h"
-#include "md_p.h"
-
int restore_backup(struct supertype *st,
struct mdinfo *content,
int working_disks,
diff --git a/Kill.c b/Kill.c
index 43c9abed3b42..9f05a1ace8e1 100644
--- a/Kill.c
+++ b/Kill.c
@@ -26,8 +26,6 @@
*/
#include "mdadm.h"
-#include "md_u.h"
-#include "md_p.h"
int Kill(char *dev, struct supertype *st, int force, int verbose, int noexcl)
{
diff --git a/Manage.c b/Manage.c
index 034eb00c7f7d..22b1f52b7dc7 100644
--- a/Manage.c
+++ b/Manage.c
@@ -23,8 +23,6 @@
*/
#include "mdadm.h"
-#include "md_u.h"
-#include "md_p.h"
#include "udev.h"
#include "xmalloc.h"
diff --git a/Query.c b/Query.c
index aedb4ce77d83..72f49a4e6e54 100644
--- a/Query.c
+++ b/Query.c
@@ -23,8 +23,6 @@
*/
#include "mdadm.h"
-#include "md_p.h"
-#include "md_u.h"
int Query(char *dev)
{
diff --git a/mdadm.h b/mdadm.h
index d2c2a4dac11b..a34a3ec2c472 100644
--- a/mdadm.h
+++ b/mdadm.h
@@ -163,8 +163,20 @@ struct dlm_lksb {
#define GROW_SERVICE "mdadm-grow-continue"
#endif /* GROW_SERVICE */
-#include "md_u.h"
-#include "md_p.h"
+#include <linux/raid/md_u.h>
+#include <linux/raid/md_p.h>
+
+/* These defines might be missing in raid headers*/
+#ifndef MD_SB_BLOCK_CONTAINER_RESHAPE
+#define MD_SB_BLOCK_CONTAINER_RESHAPE 3
+#endif
+#ifndef MD_SB_BLOCK_VOLUME
+#define MD_SB_BLOCK_VOLUME 4
+#endif
+#ifndef MD_DISK_REPLACEMENT
+#define MD_DISK_REPLACEMENT 17
+#endif
+
#include "bitmap.h"
#include "msg.h"
#include "mdadm_status.h"
diff --git a/mdmonitor.c b/mdmonitor.c
index d1cfbf947191..d51617cd0981 100644
--- a/mdmonitor.c
+++ b/mdmonitor.c
@@ -23,8 +23,6 @@
*/
#include "mdadm.h"
-#include "md_p.h"
-#include "md_u.h"
#include "udev.h"
#include "xmalloc.h"
diff --git a/super1.c b/super1.c
index fe3c4c64c66b..0db2544f18f4 100644
--- a/super1.c
+++ b/super1.c
@@ -26,92 +26,6 @@
#include "mdadm.h"
#include "xmalloc.h"
-/*
- * The version-1 superblock :
- * All numeric fields are little-endian.
- *
- * total size: 256 bytes plus 2 per device.
- * 1K allows 384 devices.
- */
-struct mdp_superblock_1 {
- /* constant array information - 128 bytes */
- __u32 magic; /* MD_SB_MAGIC: 0xa92b4efc - little endian */
- __u32 major_version; /* 1 */
- __u32 feature_map; /* 0 for now */
- __u32 pad0; /* always set to 0 when writing */
-
- __u8 set_uuid[16]; /* user-space generated. */
- char set_name[32]; /* set and interpreted by user-space */
-
- __u64 ctime; /* lo 40 bits are seconds, top 24 are microseconds or 0*/
- __u32 level; /* -4 (multipath), -1 (linear), 0,1,4,5 */
- __u32 layout; /* used for raid5, raid6, raid10, and raid0 */
- __u64 size; /* used size of component devices, in 512byte sectors */
-
- __u32 chunksize; /* in 512byte sectors */
- __u32 raid_disks;
- union {
- __u32 bitmap_offset; /* sectors after start of superblock that bitmap starts
- * NOTE: signed, so bitmap can be before superblock
- * only meaningful of feature_map[0] is set.
- */
-
- /* only meaningful when feature_map[MD_FEATURE_PPL] is set */
- struct {
- __s16 offset; /* sectors from start of superblock that ppl starts */
- __u16 size; /* ppl size in sectors */
- } ppl;
- };
-
- /* These are only valid with feature bit '4' */
- __u32 new_level; /* new level we are reshaping to */
- __u64 reshape_position; /* next address in array-space for reshape */
- __u32 delta_disks; /* change in number of raid_disks */
- __u32 new_layout; /* new layout */
- __u32 new_chunk; /* new chunk size (sectors) */
- __u32 new_offset; /* signed number to add to data_offset in new
- * layout. 0 == no-change. This can be
- * different on each device in the array.
- */
-
- /* constant this-device information - 64 bytes */
- __u64 data_offset; /* sector start of data, often 0 */
- __u64 data_size; /* sectors in this device that can be used for data */
- __u64 super_offset; /* sector start of this superblock */
- union {
- __u64 recovery_offset;/* sectors before this offset (from data_offset) have been recovered */
- __u64 journal_tail;/* journal tail of journal device (from data_offset) */
- };
- __u32 dev_number; /* permanent identifier of this device - not role in raid */
- __u32 cnt_corrected_read; /* number of read errors that were corrected by re-writing */
- __u8 device_uuid[16]; /* user-space setable, ignored by kernel */
- __u8 devflags; /* per-device flags. Only one defined...*/
-#define WriteMostly1 1 /* mask for writemostly flag in above */
-#define FailFast1 2 /* Device should get FailFast requests */
- /* bad block log. If there are any bad blocks the feature flag is set.
- * if offset and size are non-zero, that space is reserved and available.
- */
- __u8 bblog_shift; /* shift from sectors to block size for badblock list */
- __u16 bblog_size; /* number of sectors reserved for badblock list */
- __u32 bblog_offset; /* sector offset from superblock to bblog, signed */
-
- /* array state information - 64 bytes */
- __u64 utime; /* 40 bits second, 24 bits microseconds */
- __u64 events; /* incremented when superblock updated */
- __u64 resync_offset; /* data before this offset (from data_offset) known to be in sync */
- __u32 sb_csum; /* checksum upto dev_roles[max_dev] */
- __u32 max_dev; /* size of dev_roles[] array to consider */
- __u8 pad3[64-32]; /* set to 0 when writing */
-
- /* device state information. Indexed by dev_number.
- * 2 bytes per device
- * Note there are no per-device state flags. State information is rolled
- * into the 'roles' value. If a device is spare or faulty, then it doesn't
- * have a meaningful role.
- */
- __u16 dev_roles[0]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */
-};
-
#define MAX_SB_SIZE 4096
/* bitmap super size is 256, but we round up to a sector for alignment */
#define BM_SUPER_SIZE 512
@@ -126,40 +40,6 @@ struct misc_dev_info {
#define MULTIPLE_PPL_AREA_SIZE_SUPER1 (1024 * 1024) /* Size of the whole
* mutliple PPL area
*/
-/* feature_map bits */
-#define MD_FEATURE_BITMAP_OFFSET 1
-#define MD_FEATURE_RECOVERY_OFFSET 2 /* recovery_offset is present and
- * must be honoured
- */
-#define MD_FEATURE_RESHAPE_ACTIVE 4
-#define MD_FEATURE_BAD_BLOCKS 8 /* badblock list is not empty */
-#define MD_FEATURE_REPLACEMENT 16 /* This device is replacing an
- * active device with same 'role'.
- * 'recovery_offset' is also set.
- */
-#define MD_FEATURE_RESHAPE_BACKWARDS 32 /* Reshape doesn't change number
- * of devices, but is going
- * backwards anyway.
- */
-#define MD_FEATURE_NEW_OFFSET 64 /* new_offset must be honoured */
-#define MD_FEATURE_BITMAP_VERSIONED 256 /* bitmap version number checked properly */
-#define MD_FEATURE_JOURNAL 512 /* support write journal */
-#define MD_FEATURE_PPL 1024 /* support PPL */
-#define MD_FEATURE_MUTLIPLE_PPLS 2048 /* support for multiple PPLs */
-#define MD_FEATURE_RAID0_LAYOUT 4096 /* layout is meaningful in RAID0 */
-#define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \
- |MD_FEATURE_RECOVERY_OFFSET \
- |MD_FEATURE_RESHAPE_ACTIVE \
- |MD_FEATURE_BAD_BLOCKS \
- |MD_FEATURE_REPLACEMENT \
- |MD_FEATURE_RESHAPE_BACKWARDS \
- |MD_FEATURE_NEW_OFFSET \
- |MD_FEATURE_BITMAP_VERSIONED \
- |MD_FEATURE_JOURNAL \
- |MD_FEATURE_PPL \
- |MD_FEATURE_MULTIPLE_PPLS \
- |MD_FEATURE_RAID0_LAYOUT \
- )
static int role_from_sb(struct mdp_superblock_1 *sb)
{
@@ -319,7 +199,7 @@ static int awrite(struct align_fd *afd, void *buf, int len)
static inline unsigned int md_feature_any_ppl_on(__u32 feature_map)
{
return ((__cpu_to_le32(feature_map) &
- (MD_FEATURE_PPL | MD_FEATURE_MUTLIPLE_PPLS)));
+ (MD_FEATURE_PPL | MD_FEATURE_MULTIPLE_PPLS)));
}
static inline unsigned int choose_ppl_space(int chunk)
@@ -1483,7 +1363,7 @@ static int update_super1(struct supertype *st, struct mdinfo *info,
}
case UOPT_NO_PPL:
sb->feature_map &= ~__cpu_to_le32(MD_FEATURE_PPL |
- MD_FEATURE_MUTLIPLE_PPLS);
+ MD_FEATURE_MULTIPLE_PPLS);
break;
case UOPT_DEVICESIZE:
if (__le64_to_cpu(sb->super_offset) >=
@@ -2643,7 +2523,7 @@ add_internal_bitmap1(struct supertype *st,
bms->nodes = __cpu_to_le32(st->nodes);
if (st->nodes)
sb->feature_map = __cpu_to_le32(__le32_to_cpu(sb->feature_map) |
- MD_FEATURE_BITMAP_VERSIONED);
+ MD_FEATURE_CLUSTERED);
if (st->cluster_name) {
len = sizeof(bms->cluster_name);
strncpy((char *)bms->cluster_name, st->cluster_name, len);
diff --git a/udev.c b/udev.c
index 88a997818115..961ca970d460 100644
--- a/udev.c
+++ b/udev.c
@@ -20,8 +20,6 @@
#include "mdadm.h"
#include "udev.h"
-#include "md_p.h"
-#include "md_u.h"
#include "xmalloc.h"
#include <sys/wait.h>
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread