[PATCH 01/13] libxfs: fix incorrect porting to 6.7

Darrick J. Wong
2024-03-13T01:49:55Z

From: Darrick J. Wong <djwong@kernel.org>

Userspace libxfs is supposed to match the kernel libxfs except for the
preprocessor include directives. Fix a few discrepancies that came up
for whatever reason.

To fix the build errors resulting from CONFIG_XFS_RT not being defined,
add it to libxfs.h and alter the Makefile to track xfs_rtbitmap.h.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
db/check.c | 1 -
include/libxfs.h | 4 ++++
libxfs/Makefile | 1 +
libxfs/xfs_rtbitmap.c | 2 +-
libxfs/xfs_rtbitmap.h | 3 ---
repair/rt.c | 1 -
6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/db/check.c b/db/check.c
index 9d5576c333b2..a47a5d9cb5b4 100644
--- a/db/check.c
+++ b/db/check.c
@@ -20,7 +20,6 @@
#include "init.h"
#include "malloc.h"
#include "dir2.h"
-#include "xfs_rtbitmap.h"

typedef enum {
IS_USER_QUOTA, IS_PROJECT_QUOTA, IS_GROUP_QUOTA,
diff --git a/include/libxfs.h b/include/libxfs.h
index 9cec394ca407..aeec2bc76126 100644
--- a/include/libxfs.h
+++ b/include/libxfs.h
@@ -7,6 +7,9 @@
#ifndef __LIBXFS_H__
#define __LIBXFS_H__

+/* For userspace XFS_RT is always defined */
+#define CONFIG_XFS_RT
+
#include "libxfs_api_defs.h"
#include "platform_defs.h"
#include "xfs.h"
@@ -80,6 +83,7 @@ struct iomap;
#include "xfs_refcount_btree.h"
#include "xfs_refcount.h"
#include "xfs_btree_staging.h"
+#include "xfs_rtbitmap.h"

#ifndef ARRAY_SIZE
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
diff --git a/libxfs/Makefile b/libxfs/Makefile
index 010ee68e2292..6f688c0ad25a 100644
--- a/libxfs/Makefile
+++ b/libxfs/Makefile
@@ -50,6 +50,7 @@ HFILES = \
xfs_refcount_btree.h \
xfs_rmap.h \
xfs_rmap_btree.h \
+ xfs_rtbitmap.h \
xfs_sb.h \
xfs_shared.h \
xfs_trans_resv.h \
diff --git a/libxfs/xfs_rtbitmap.c b/libxfs/xfs_rtbitmap.c
index 8f313339e97f..fb083499070c 100644
--- a/libxfs/xfs_rtbitmap.c
+++ b/libxfs/xfs_rtbitmap.c
@@ -931,7 +931,7 @@ xfs_rtcheck_alloc_range(
*/
int
xfs_rtfree_extent(
- xfs_trans_t *tp, /* transaction pointer */
+ struct xfs_trans *tp, /* transaction pointer */
xfs_rtxnum_t start, /* starting rtext number to free */
xfs_rtxlen_t len) /* length of extent freed */
{
diff --git a/libxfs/xfs_rtbitmap.h b/libxfs/xfs_rtbitmap.h
index db2f8c924b05..c0637057d69c 100644
--- a/libxfs/xfs_rtbitmap.h
+++ b/libxfs/xfs_rtbitmap.h
@@ -6,9 +6,6 @@
#ifndef __XFS_RTBITMAP_H__
#define __XFS_RTBITMAP_H__

-/* For userspace XFS_RT is always defined */
-#define CONFIG_XFS_RT
-
struct xfs_rtalloc_args {
struct xfs_mount *mp;
struct xfs_trans *tp;
diff --git a/repair/rt.c b/repair/rt.c
index abe58b569c0c..9f3bc8d53ec6 100644
--- a/repair/rt.c
+++ b/repair/rt.c
@@ -13,7 +13,6 @@
#include "protos.h"
#include "err_protos.h"
#include "rt.h"
-#include "xfs_rtbitmap.h"

#define xfs_highbit64 libxfs_highbit64 /* for XFS_RTBLOCKLOG macro */