diff mbox series

[3/8] xfsprogs: remove platform_uuid_compare()

Message ID 20210802215024.949616-4-preichl@redhat.com (mailing list archive)
State Deferred, archived
Headers show
Series xfsprogs: Drop the 'platform_' prefix | expand

Commit Message

Pavel Reichl Aug. 2, 2021, 9:50 p.m. UTC
---
 copy/xfs_copy.c      | 2 +-
 db/sb.c              | 2 +-
 include/linux.h      | 5 -----
 libxfs/libxfs_priv.h | 2 +-
 libxlog/util.c       | 2 +-
 repair/agheader.c    | 4 ++--
 repair/attr_repair.c | 2 +-
 repair/dinode.c      | 6 +++---
 repair/phase6.c      | 2 +-
 repair/scan.c        | 4 ++--
 10 files changed, 13 insertions(+), 18 deletions(-)

Comments

Darrick J. Wong Aug. 2, 2021, 10:35 p.m. UTC | #1
On Mon, Aug 02, 2021 at 11:50:19PM +0200, Pavel Reichl wrote:
> ---
>  copy/xfs_copy.c      | 2 +-
>  db/sb.c              | 2 +-
>  include/linux.h      | 5 -----

It's fine to change the platform_uuid_compare usages inside xfsprogs
itself, but linux.h is shipped as part of the development headers, which
means that you can't get rid of the wrapper functions without causing
build problems for other userspace programs.

--D

>  libxfs/libxfs_priv.h | 2 +-
>  libxlog/util.c       | 2 +-
>  repair/agheader.c    | 4 ++--
>  repair/attr_repair.c | 2 +-
>  repair/dinode.c      | 6 +++---
>  repair/phase6.c      | 2 +-
>  repair/scan.c        | 4 ++--
>  10 files changed, 13 insertions(+), 18 deletions(-)
> 
> diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
> index c80b42d1..2a17bf38 100644
> --- a/copy/xfs_copy.c
> +++ b/copy/xfs_copy.c
> @@ -15,7 +15,7 @@
>  #include "libfrog/common.h"
>  
>  #define	rounddown(x, y)	(((x)/(y))*(y))
> -#define uuid_equal(s,d) (platform_uuid_compare((s),(d)) == 0)
> +#define uuid_equal(s,d) (uuid_compare((*s),(*d)) == 0)
>  
>  extern int	platform_check_ismounted(char *, char *, struct stat *, int);
>  
> diff --git a/db/sb.c b/db/sb.c
> index cec7dce9..7017e1e5 100644
> --- a/db/sb.c
> +++ b/db/sb.c
> @@ -17,7 +17,7 @@
>  #include "output.h"
>  #include "init.h"
>  
> -#define uuid_equal(s,d)		(platform_uuid_compare((s),(d)) == 0)
> +#define uuid_equal(s,d)		(uuid_compare((*s),(*d)) == 0)
>  
>  static int	sb_f(int argc, char **argv);
>  static void     sb_help(void);
> diff --git a/include/linux.h b/include/linux.h
> index a22f7812..9c7ea189 100644
> --- a/include/linux.h
> +++ b/include/linux.h
> @@ -85,11 +85,6 @@ static __inline__ void platform_getoptreset(void)
>  	optind = 0;
>  }
>  
> -static __inline__ int platform_uuid_compare(uuid_t *uu1, uuid_t *uu2)
> -{
> -	return uuid_compare(*uu1, *uu2);
> -}
> -
>  static __inline__ void platform_uuid_unparse(uuid_t *uu, char *buffer)
>  {
>  	uuid_unparse(*uu, buffer);
> diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h
> index 2815c79f..22b4f606 100644
> --- a/libxfs/libxfs_priv.h
> +++ b/libxfs/libxfs_priv.h
> @@ -505,7 +505,7 @@ static inline int retzero(void) { return 0; }
>  #define xfs_qm_dqattach(i)			(0)
>  
>  #define uuid_copy(s,d)		platform_uuid_copy((s),(d))
> -#define uuid_equal(s,d)		(platform_uuid_compare((s),(d)) == 0)
> +#define uuid_equal(s,d)		(uuid_compare((*s),(*d)) == 0)
>  
>  #define xfs_icreate_log(tp, agno, agbno, cnt, isize, len, gen) ((void) 0)
>  #define xfs_sb_validate_fsb_count(sbp, nblks)		(0)
> diff --git a/libxlog/util.c b/libxlog/util.c
> index a85d70c9..b4dfeca0 100644
> --- a/libxlog/util.c
> +++ b/libxlog/util.c
> @@ -76,7 +76,7 @@ header_check_uuid(xfs_mount_t *mp, xlog_rec_header_t *head)
>  
>      if (print_skip_uuid)
>  		return 0;
> -    if (!platform_uuid_compare(&mp->m_sb.sb_uuid, &head->h_fs_uuid))
> +    if (!uuid_compare(mp->m_sb.sb_uuid, head->h_fs_uuid))
>  		return 0;
>  
>      platform_uuid_unparse(&mp->m_sb.sb_uuid, uu_sb);
> diff --git a/repair/agheader.c b/repair/agheader.c
> index 2af24106..1c4138e4 100644
> --- a/repair/agheader.c
> +++ b/repair/agheader.c
> @@ -100,7 +100,7 @@ verify_set_agf(xfs_mount_t *mp, xfs_agf_t *agf, xfs_agnumber_t i)
>  	if (!xfs_sb_version_hascrc(&mp->m_sb))
>  		return retval;
>  
> -	if (platform_uuid_compare(&agf->agf_uuid, &mp->m_sb.sb_meta_uuid)) {
> +	if (uuid_compare(agf->agf_uuid, mp->m_sb.sb_meta_uuid)) {
>  		char uu[64];
>  
>  		retval = XR_AG_AGF;
> @@ -179,7 +179,7 @@ verify_set_agi(xfs_mount_t *mp, xfs_agi_t *agi, xfs_agnumber_t agno)
>  	if (!xfs_sb_version_hascrc(&mp->m_sb))
>  		return retval;
>  
> -	if (platform_uuid_compare(&agi->agi_uuid, &mp->m_sb.sb_meta_uuid)) {
> +	if (uuid_compare(agi->agi_uuid, mp->m_sb.sb_meta_uuid)) {
>  		char uu[64];
>  
>  		retval = XR_AG_AGI;
> diff --git a/repair/attr_repair.c b/repair/attr_repair.c
> index bc3c2bef..25bdff73 100644
> --- a/repair/attr_repair.c
> +++ b/repair/attr_repair.c
> @@ -947,7 +947,7 @@ _("expected block %" PRIu64 ", got %llu, inode %" PRIu64 "attr block\n"),
>  		return 1;
>  	}
>  	/* verify uuid */
> -	if (platform_uuid_compare(&info->uuid, &mp->m_sb.sb_meta_uuid) != 0) {
> +	if (uuid_compare(info->uuid, mp->m_sb.sb_meta_uuid) != 0) {
>  		do_warn(
>  _("wrong FS UUID, inode %" PRIu64 " attr block %" PRIu64 "\n"),
>  			ino, bp->b_bn);
> diff --git a/repair/dinode.c b/repair/dinode.c
> index 291c5807..a6156830 100644
> --- a/repair/dinode.c
> +++ b/repair/dinode.c
> @@ -1098,7 +1098,7 @@ null_check(char *name, int length)
>   * This does /not/ do quotacheck, it validates the basic quota
>   * inode metadata, checksums, etc.
>   */
> -#define uuid_equal(s,d) (platform_uuid_compare((s),(d)) == 0)
> +#define uuid_equal(s,d) (uuid_compare((*s),(*d)) == 0)
>  static int
>  process_quota_inode(
>  	struct xfs_mount	*mp,
> @@ -2329,8 +2329,8 @@ _("inode identifier %llu mismatch on inode %" PRIu64 "\n"),
>  				return 1;
>  			goto clear_bad_out;
>  		}
> -		if (platform_uuid_compare(&dino->di_uuid,
> -					  &mp->m_sb.sb_meta_uuid)) {
> +		if (uuid_compare(dino->di_uuid,
> +				mp->m_sb.sb_meta_uuid)) {
>  			if (!uncertain)
>  				do_warn(
>  			_("UUID mismatch on inode %" PRIu64 "\n"), lino);
> diff --git a/repair/phase6.c b/repair/phase6.c
> index 6bddfefa..05e6a321 100644
> --- a/repair/phase6.c
> +++ b/repair/phase6.c
> @@ -1886,7 +1886,7 @@ _("expected block %" PRIu64 ", got %llu, directory inode %" PRIu64 "\n"),
>  		return 1;
>  	}
>  	/* verify uuid */
> -	if (platform_uuid_compare(uuid, &mp->m_sb.sb_meta_uuid) != 0) {
> +	if (uuid_compare(*uuid, mp->m_sb.sb_meta_uuid) != 0) {
>  		do_warn(
>  _("wrong FS UUID, directory inode %" PRIu64 " block %" PRIu64 "\n"),
>  			ino, bp->b_bn);
> diff --git a/repair/scan.c b/repair/scan.c
> index 2c25af57..361c3b3c 100644
> --- a/repair/scan.c
> +++ b/repair/scan.c
> @@ -268,8 +268,8 @@ _("expected block %" PRIu64 ", got %llu, bmbt block %" PRIu64 "\n"),
>  			return 1;
>  		}
>  		/* verify uuid */
> -		if (platform_uuid_compare(&block->bb_u.l.bb_uuid,
> -					  &mp->m_sb.sb_meta_uuid) != 0) {
> +		if (uuid_compare(block->bb_u.l.bb_uuid,
> +			mp->m_sb.sb_meta_uuid) != 0) {
>  			do_warn(
>  _("wrong FS UUID, bmbt block %" PRIu64 "\n"),
>  				bno);
> -- 
> 2.31.1
>
Pavel Reichl Aug. 3, 2021, 4:07 p.m. UTC | #2
On 8/3/21 12:35 AM, Darrick J. Wong wrote:
> On Mon, Aug 02, 2021 at 11:50:19PM +0200, Pavel Reichl wrote:
>> ---
>>   copy/xfs_copy.c      | 2 +-
>>   db/sb.c              | 2 +-
>>   include/linux.h      | 5 -----
> It's fine to change the platform_uuid_compare usages inside xfsprogs
> itself, but linux.h is shipped as part of the development headers, which
> means that you can't get rid of the wrapper functions without causing
> build problems for other userspace programs.
>
> --D
>
OK, maybe it would be best to split the effort into more steps:

1) A patchset that stops using platform_* functions and replace them 
with standard linux calls inside xfsprogs

2) A patchset that adds deprecation warnings into publicly visible 
platform_*() calls

3) Fix userspace programs now using the deprecated functions

4) Remove completely platform_*() functions from xfsprogs

Would that be a suitable path?

Thanks!
diff mbox series

Patch

diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
index c80b42d1..2a17bf38 100644
--- a/copy/xfs_copy.c
+++ b/copy/xfs_copy.c
@@ -15,7 +15,7 @@ 
 #include "libfrog/common.h"
 
 #define	rounddown(x, y)	(((x)/(y))*(y))
-#define uuid_equal(s,d) (platform_uuid_compare((s),(d)) == 0)
+#define uuid_equal(s,d) (uuid_compare((*s),(*d)) == 0)
 
 extern int	platform_check_ismounted(char *, char *, struct stat *, int);
 
diff --git a/db/sb.c b/db/sb.c
index cec7dce9..7017e1e5 100644
--- a/db/sb.c
+++ b/db/sb.c
@@ -17,7 +17,7 @@ 
 #include "output.h"
 #include "init.h"
 
-#define uuid_equal(s,d)		(platform_uuid_compare((s),(d)) == 0)
+#define uuid_equal(s,d)		(uuid_compare((*s),(*d)) == 0)
 
 static int	sb_f(int argc, char **argv);
 static void     sb_help(void);
diff --git a/include/linux.h b/include/linux.h
index a22f7812..9c7ea189 100644
--- a/include/linux.h
+++ b/include/linux.h
@@ -85,11 +85,6 @@  static __inline__ void platform_getoptreset(void)
 	optind = 0;
 }
 
-static __inline__ int platform_uuid_compare(uuid_t *uu1, uuid_t *uu2)
-{
-	return uuid_compare(*uu1, *uu2);
-}
-
 static __inline__ void platform_uuid_unparse(uuid_t *uu, char *buffer)
 {
 	uuid_unparse(*uu, buffer);
diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h
index 2815c79f..22b4f606 100644
--- a/libxfs/libxfs_priv.h
+++ b/libxfs/libxfs_priv.h
@@ -505,7 +505,7 @@  static inline int retzero(void) { return 0; }
 #define xfs_qm_dqattach(i)			(0)
 
 #define uuid_copy(s,d)		platform_uuid_copy((s),(d))
-#define uuid_equal(s,d)		(platform_uuid_compare((s),(d)) == 0)
+#define uuid_equal(s,d)		(uuid_compare((*s),(*d)) == 0)
 
 #define xfs_icreate_log(tp, agno, agbno, cnt, isize, len, gen) ((void) 0)
 #define xfs_sb_validate_fsb_count(sbp, nblks)		(0)
diff --git a/libxlog/util.c b/libxlog/util.c
index a85d70c9..b4dfeca0 100644
--- a/libxlog/util.c
+++ b/libxlog/util.c
@@ -76,7 +76,7 @@  header_check_uuid(xfs_mount_t *mp, xlog_rec_header_t *head)
 
     if (print_skip_uuid)
 		return 0;
-    if (!platform_uuid_compare(&mp->m_sb.sb_uuid, &head->h_fs_uuid))
+    if (!uuid_compare(mp->m_sb.sb_uuid, head->h_fs_uuid))
 		return 0;
 
     platform_uuid_unparse(&mp->m_sb.sb_uuid, uu_sb);
diff --git a/repair/agheader.c b/repair/agheader.c
index 2af24106..1c4138e4 100644
--- a/repair/agheader.c
+++ b/repair/agheader.c
@@ -100,7 +100,7 @@  verify_set_agf(xfs_mount_t *mp, xfs_agf_t *agf, xfs_agnumber_t i)
 	if (!xfs_sb_version_hascrc(&mp->m_sb))
 		return retval;
 
-	if (platform_uuid_compare(&agf->agf_uuid, &mp->m_sb.sb_meta_uuid)) {
+	if (uuid_compare(agf->agf_uuid, mp->m_sb.sb_meta_uuid)) {
 		char uu[64];
 
 		retval = XR_AG_AGF;
@@ -179,7 +179,7 @@  verify_set_agi(xfs_mount_t *mp, xfs_agi_t *agi, xfs_agnumber_t agno)
 	if (!xfs_sb_version_hascrc(&mp->m_sb))
 		return retval;
 
-	if (platform_uuid_compare(&agi->agi_uuid, &mp->m_sb.sb_meta_uuid)) {
+	if (uuid_compare(agi->agi_uuid, mp->m_sb.sb_meta_uuid)) {
 		char uu[64];
 
 		retval = XR_AG_AGI;
diff --git a/repair/attr_repair.c b/repair/attr_repair.c
index bc3c2bef..25bdff73 100644
--- a/repair/attr_repair.c
+++ b/repair/attr_repair.c
@@ -947,7 +947,7 @@  _("expected block %" PRIu64 ", got %llu, inode %" PRIu64 "attr block\n"),
 		return 1;
 	}
 	/* verify uuid */
-	if (platform_uuid_compare(&info->uuid, &mp->m_sb.sb_meta_uuid) != 0) {
+	if (uuid_compare(info->uuid, mp->m_sb.sb_meta_uuid) != 0) {
 		do_warn(
 _("wrong FS UUID, inode %" PRIu64 " attr block %" PRIu64 "\n"),
 			ino, bp->b_bn);
diff --git a/repair/dinode.c b/repair/dinode.c
index 291c5807..a6156830 100644
--- a/repair/dinode.c
+++ b/repair/dinode.c
@@ -1098,7 +1098,7 @@  null_check(char *name, int length)
  * This does /not/ do quotacheck, it validates the basic quota
  * inode metadata, checksums, etc.
  */
-#define uuid_equal(s,d) (platform_uuid_compare((s),(d)) == 0)
+#define uuid_equal(s,d) (uuid_compare((*s),(*d)) == 0)
 static int
 process_quota_inode(
 	struct xfs_mount	*mp,
@@ -2329,8 +2329,8 @@  _("inode identifier %llu mismatch on inode %" PRIu64 "\n"),
 				return 1;
 			goto clear_bad_out;
 		}
-		if (platform_uuid_compare(&dino->di_uuid,
-					  &mp->m_sb.sb_meta_uuid)) {
+		if (uuid_compare(dino->di_uuid,
+				mp->m_sb.sb_meta_uuid)) {
 			if (!uncertain)
 				do_warn(
 			_("UUID mismatch on inode %" PRIu64 "\n"), lino);
diff --git a/repair/phase6.c b/repair/phase6.c
index 6bddfefa..05e6a321 100644
--- a/repair/phase6.c
+++ b/repair/phase6.c
@@ -1886,7 +1886,7 @@  _("expected block %" PRIu64 ", got %llu, directory inode %" PRIu64 "\n"),
 		return 1;
 	}
 	/* verify uuid */
-	if (platform_uuid_compare(uuid, &mp->m_sb.sb_meta_uuid) != 0) {
+	if (uuid_compare(*uuid, mp->m_sb.sb_meta_uuid) != 0) {
 		do_warn(
 _("wrong FS UUID, directory inode %" PRIu64 " block %" PRIu64 "\n"),
 			ino, bp->b_bn);
diff --git a/repair/scan.c b/repair/scan.c
index 2c25af57..361c3b3c 100644
--- a/repair/scan.c
+++ b/repair/scan.c
@@ -268,8 +268,8 @@  _("expected block %" PRIu64 ", got %llu, bmbt block %" PRIu64 "\n"),
 			return 1;
 		}
 		/* verify uuid */
-		if (platform_uuid_compare(&block->bb_u.l.bb_uuid,
-					  &mp->m_sb.sb_meta_uuid) != 0) {
+		if (uuid_compare(block->bb_u.l.bb_uuid,
+			mp->m_sb.sb_meta_uuid) != 0) {
 			do_warn(
 _("wrong FS UUID, bmbt block %" PRIu64 "\n"),
 				bno);