Skip to contentSkip to conversation

REVIEW: 031 QA failure with xfs_repair

DISCUSSION Barry Naujok 2 participants 3 messages Jan 16, 2007 Kbuild

lore
Share & tools
lore
#0 lore raw

QA 030 and 031 are failing with xfs_repair as the "zeroed log" is different
on IRIX and Linux.

xfs_repair must be coded to handle the different platform log formats.

==========================

Need a review please:

383 -> p_rdiff -um libxfs libxlog

========================================================================
===
xfsprogs/libxfs/darwin.c
========================================================================
===

--- /usr/tmp/TmpDir.5868489-0/xfsprogs/libxfs/darwin.c_1.12 Mon Jan
15 17:30:37 2007
+++ xfsprogs/libxfs/darwin.c Mon Jan 15 16:53:25 2007
@@ -22,6 +22,7 @@
#include <sys/ioctl.h>
#include <xfs/libxfs.h>

+int platform_has_uuid = 0;
extern char *progname;

int

========================================================================
===
xfsprogs/libxfs/freebsd.c
========================================================================
===

--- /usr/tmp/TmpDir.5868489-0/xfsprogs/libxfs/freebsd.c_1.15 Mon Jan
15 17:30:37 2007
+++ xfsprogs/libxfs/freebsd.c Mon Jan 15 16:53:35 2007
@@ -22,6 +22,7 @@
#include <sys/mount.h>
#include <sys/ioctl.h>

+int platform_has_uuid = 0;
extern char *progname;

int

========================================================================
===
xfsprogs/libxfs/init.h
========================================================================
===

--- /usr/tmp/TmpDir.5868489-0/xfsprogs/libxfs/init.h_1.12 Mon Jan
15 17:30:37 2007
+++ xfsprogs/libxfs/init.h Mon Jan 15 16:52:09 2007
@@ -34,5 +34,6 @@
extern int platform_align_blockdev (void);
extern int platform_aio_init (int aio_count);
extern int platform_nproc(void);
+extern int platform_has_uuid;

#endif /* LIBXFS_INIT_H */

========================================================================
===
xfsprogs/libxfs/irix.c
========================================================================
===

--- /usr/tmp/TmpDir.5868489-0/xfsprogs/libxfs/irix.c_1.13 Mon Jan
15 17:30:37 2007
+++ xfsprogs/libxfs/irix.c Mon Jan 15 16:53:49 2007
@@ -21,6 +21,7 @@
#include <diskinfo.h>
#include <sys/sysmp.h>

+int platform_has_uuid = 0;
extern char *progname;
extern __int64_t findsize(char *);

========================================================================
===
xfsprogs/libxfs/linux.c
========================================================================
===

--- /usr/tmp/TmpDir.5868489-0/xfsprogs/libxfs/linux.c_1.16 Mon Jan
15 17:30:37 2007
+++ xfsprogs/libxfs/linux.c Mon Jan 15 16:53:10 2007
@@ -26,6 +26,7 @@
#include <sys/mount.h>
#include <sys/ioctl.h>

+int platform_has_uuid = 1;
extern char *progname;
static int max_block_alignment;

========================================================================
===
xfsprogs/libxlog/xfs_log_recover.c
========================================================================
===

--- /usr/tmp/TmpDir.5868489-0/xfsprogs/libxlog/xfs_log_recover.c_1.30 Mon Jan 15 17:30:37 2007
+++ xfsprogs/libxlog/xfs_log_recover.c Mon Jan 15 16:54:50 2007 @@ -258,6 +258,7 @@

        uint            first_half_cycle, last_half_cycle;
        uint            stop_on_cycle;
        int             error, log_bbnum = log->l_logBBsize;
+       extern int      platform_has_uuid;
        /* Is the end of the log device zeroed? */
        if ((error = xlog_find_zeroed(log, &first_blk)) == -1) {
@@ -264,7 +265,7 @@
                *return_head_blk = first_blk;

                /* Is the whole lot zeroed? */
-               if (!first_blk) {
+               if (!first_blk && platform_has_uuid) {
                        /* Linux XFS shouldn't generate totally zeroed

logs -
* mkfs etc write a dummy unmount record to a
fresh
* log so we can store the uuid in there

#1 lore raw
Quoted 7 lines · Barry Naujok

QA 030 and 031 are failing with xfs_repair as the "zeroed log" is different
on IRIX and Linux.

xfs_repair must be coded to handle the different platform log formats.

Looks ok.

Cheers,

Dave.

Signature · 3 lines
Dave Chinner
Principal Engineer
SGI Australian Software Group
#2 lore raw
In reply to Barry Naujok

Well, Dave has already replied, but here is the patch again with out the line break crap and tabs intact.

Quoted 12 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Barry Naujok
Sent: Tuesday, 16 January 2007 11:51 AM
To: [email protected]
Subject: FW: REVIEW: 031 QA failure with xfs_repair

QA 030 and 031 are failing with xfs_repair as the "zeroed log" is different
on IRIX and Linux.

Quoted 6 lines

xfs_repair must be coded to handle the different platform log formats.

==========================

Need a review please:

(see attached)

===========================================================================
xfsprogs/libxfs/darwin.c
===========================================================================

libxfs/darwin.c Mon Jan 15 16:53:25 2007 renamed from usr/tmp/TmpDir.5868489-0/xfsprogs/libxfs/darwin.c_1.12 Mon Jan 15 17:30:37 2007 +1 -0
@@ -22,6 +22,7 @@
 #include <sys/ioctl.h>
 #include <xfs/libxfs.h>
 
+int platform_has_uuid = 0;
 extern char *progname;
 
 int

===========================================================================
xfsprogs/libxfs/freebsd.c
===========================================================================

libxfs/freebsd.c Mon Jan 15 16:53:35 2007 renamed from usr/tmp/TmpDir.5868489-0/xfsprogs/libxfs/freebsd.c_1.15 Mon Jan 15 17:30:37 2007 +1 -0
@@ -22,6 +22,7 @@
 #include <sys/mount.h>
 #include <sys/ioctl.h>
 
+int platform_has_uuid = 0;
 extern char *progname;
 
 int

===========================================================================
xfsprogs/libxfs/init.h
===========================================================================

libxfs/init.h Mon Jan 15 16:52:09 2007 renamed from usr/tmp/TmpDir.5868489-0/xfsprogs/libxfs/init.h_1.12 Mon Jan 15 17:30:37 2007 +1 -0
@@ -34,5 +34,6 @@
 extern int platform_align_blockdev (void);
 extern int platform_aio_init (int aio_count);
 extern int platform_nproc(void);
+extern int platform_has_uuid;
 
 #endif /* LIBXFS_INIT_H */

===========================================================================
xfsprogs/libxfs/irix.c
===========================================================================

libxfs/irix.c Mon Jan 15 16:53:49 2007 renamed from usr/tmp/TmpDir.5868489-0/xfsprogs/libxfs/irix.c_1.13 Mon Jan 15 17:30:37 2007 +1 -0
@@ -21,6 +21,7 @@
 #include <diskinfo.h>
 #include <sys/sysmp.h>
 
+int platform_has_uuid = 0;
 extern char *progname;
 extern __int64_t findsize(char *);
 

===========================================================================
xfsprogs/libxfs/linux.c
===========================================================================

libxfs/linux.c Mon Jan 15 16:53:10 2007 renamed from usr/tmp/TmpDir.5868489-0/xfsprogs/libxfs/linux.c_1.16 Mon Jan 15 17:30:37 2007 +1 -0
@@ -26,6 +26,7 @@
 #include <sys/mount.h>
 #include <sys/ioctl.h>
 
+int platform_has_uuid = 1;
 extern char *progname;
 static int max_block_alignment;
 

===========================================================================
xfsprogs/libxlog/xfs_log_recover.c
===========================================================================

libxlog/xfs_log_recover.c Mon Jan 15 16:54:50 2007 renamed from usr/tmp/TmpDir.5868489-0/xfsprogs/libxlog/xfs_log_recover.c_1.30 Mon Jan 15 17:30:37 2007 +2 -1
@@ -258,6 +258,7 @@
 	uint		first_half_cycle, last_half_cycle;
 	uint		stop_on_cycle;
 	int		error, log_bbnum = log->l_logBBsize;
+	extern int	platform_has_uuid;
 
 	/* Is the end of the log device zeroed? */
 	if ((error = xlog_find_zeroed(log, &first_blk)) == -1) {
@@ -264,7 +265,7 @@
 		*return_head_blk = first_blk;
 
 		/* Is the whole lot zeroed? */
-		if (!first_blk) {
+		if (!first_blk && platform_has_uuid) {
 			/* Linux XFS shouldn't generate totally zeroed logs -
 			 * mkfs etc write a dummy unmount record to a fresh
 			 * log so we can store the uuid in there