summaryrefslogtreecommitdiff
path: root/source/ap/xfsdump
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/xfsdump')
-rw-r--r--source/ap/xfsdump/0001-xfsdump.xfsprogs-5.3.0.xfs_fsop_geom_v1_t.patch11
-rw-r--r--source/ap/xfsdump/0002-xfsdump.xfsprogs-5.3.0.xfs_bstat_t.patch660
-rw-r--r--source/ap/xfsdump/0003-xfsdump.xfsprogs-5.3.0.UUID_STR_LEN.patch14
-rw-r--r--source/ap/xfsdump/0004-xfsdump.xfsprogs-5.3.0.xfs_inogrp_t.patch81
-rw-r--r--source/ap/xfsdump/0005-xfsdump.xfsprogs-5.3.0.xfs_fsop_bulkreq_t.patch49
-rwxr-xr-xsource/ap/xfsdump/xfsdump.SlackBuild10
-rw-r--r--source/ap/xfsdump/xfsdump.xfsprogs-5.2.1.diff11
7 files changed, 822 insertions, 14 deletions
diff --git a/source/ap/xfsdump/0001-xfsdump.xfsprogs-5.3.0.xfs_fsop_geom_v1_t.patch b/source/ap/xfsdump/0001-xfsdump.xfsprogs-5.3.0.xfs_fsop_geom_v1_t.patch
new file mode 100644
index 00000000..56ca54b8
--- /dev/null
+++ b/source/ap/xfsdump/0001-xfsdump.xfsprogs-5.3.0.xfs_fsop_geom_v1_t.patch
@@ -0,0 +1,11 @@
+--- ./common/fs.c.orig 2019-11-26 13:31:51.074763965 -0600
++++ ./common/fs.c 2019-11-26 13:32:44.304759560 -0600
+@@ -204,7 +204,7 @@
+ int
+ fs_getid( char *mnts, uuid_t *idb )
+ {
+- xfs_fsop_geom_v1_t geo;
++ struct xfs_fsop_geom geo;
+ int fd;
+
+ fd = open( mnts, O_RDONLY );
diff --git a/source/ap/xfsdump/0002-xfsdump.xfsprogs-5.3.0.xfs_bstat_t.patch b/source/ap/xfsdump/0002-xfsdump.xfsprogs-5.3.0.xfs_bstat_t.patch
new file mode 100644
index 00000000..7e8c99d6
--- /dev/null
+++ b/source/ap/xfsdump/0002-xfsdump.xfsprogs-5.3.0.xfs_bstat_t.patch
@@ -0,0 +1,660 @@
+--- ./dump/content.c.orig 2017-09-21 16:21:55.000000000 -0500
++++ ./dump/content.c 2019-11-26 13:21:05.434817390 -0600
+@@ -262,30 +262,30 @@
+ /* file dumpers
+ */
+ static rv_t dump_dirs( ix_t strmix,
+- xfs_bstat_t *bstatbufp,
++ struct xfs_bstat *bstatbufp,
+ size_t bstatbuflen,
+ void *inomap_contextp );
+ static rv_t dump_dir( ix_t strmix,
+ jdm_fshandle_t *,
+ int,
+- xfs_bstat_t * );
++ struct xfs_bstat * );
+ static rv_t dump_file( void *,
+ jdm_fshandle_t *,
+ int,
+- xfs_bstat_t * );
++ struct xfs_bstat * );
+ static rv_t dump_file_reg( drive_t *drivep,
+ context_t *contextp,
+ content_inode_hdr_t *scwhdrp,
+ jdm_fshandle_t *,
+- xfs_bstat_t *,
++ struct xfs_bstat *,
+ bool_t *);
+ static rv_t dump_file_spec( drive_t *drivep,
+ context_t *contextp,
+ jdm_fshandle_t *,
+- xfs_bstat_t * );
++ struct xfs_bstat * );
+ static rv_t dump_filehdr( drive_t *drivep,
+ context_t *contextp,
+- xfs_bstat_t *,
++ struct xfs_bstat *,
+ off64_t,
+ int );
+ static rv_t dump_extenthdr( drive_t *drivep,
+@@ -296,18 +296,18 @@
+ off64_t );
+ static rv_t dump_dirent( drive_t *drivep,
+ context_t *contextp,
+- xfs_bstat_t *,
++ struct xfs_bstat *,
+ xfs_ino_t,
+ gen_t,
+ char *,
+ size_t );
+ static rv_t init_extent_group_context( jdm_fshandle_t *,
+- xfs_bstat_t *,
++ struct xfs_bstat *,
+ extent_group_context_t * );
+ static void cleanup_extent_group_context( extent_group_context_t * );
+ static rv_t dump_extent_group( drive_t *drivep,
+ context_t *contextp,
+- xfs_bstat_t *,
++ struct xfs_bstat *,
+ extent_group_context_t *,
+ off64_t,
+ off64_t,
+@@ -352,15 +352,15 @@
+ static rv_t dump_extattrs( drive_t *drivep,
+ context_t *contextp,
+ jdm_fshandle_t *fshandlep,
+- xfs_bstat_t *statp);
++ struct xfs_bstat *statp);
+ static rv_t dump_extattr_list( drive_t *drivep,
+ context_t *contextp,
+ jdm_fshandle_t *fshandlep,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ attrlist_t *listp,
+ int flag,
+ bool_t *abortprp );
+-static char *dump_extattr_buildrecord( xfs_bstat_t *statp,
++static char *dump_extattr_buildrecord( struct xfs_bstat *statp,
+ char *dumpbufp,
+ char *dumpbufendp,
+ char *namesrcp,
+@@ -369,7 +369,7 @@
+ char **valuepp );
+ static rv_t dump_extattrhdr( drive_t *drivep,
+ context_t *contextp,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ size_t recsz,
+ size_t valoff,
+ ix_t flags,
+@@ -432,7 +432,7 @@
+ static int sc_fsfd = -1;
+ /* open file descriptor for root directory
+ */
+-static xfs_bstat_t *sc_rootxfsstatp = 0;
++static struct xfs_bstat *sc_rootxfsstatp = 0;
+ /* pointer to loaded bulkstat for root directory
+ */
+ static startpt_t *sc_startptp = 0;
+@@ -1382,7 +1382,7 @@
+ }
+
+ /* figure out the ino for the root directory of the fs
+- * and get its xfs_bstat_t for inomap_build(). This could
++ * and get its struct xfs_bstat for inomap_build(). This could
+ * be a bind mount; don't ask for the mount point inode,
+ * find the actual lowest inode number in the filesystem.
+ */
+@@ -1401,7 +1401,7 @@
+ return BOOL_FALSE;
+ }
+ sc_rootxfsstatp =
+- ( xfs_bstat_t * )calloc( 1, sizeof( xfs_bstat_t ));
++ ( struct xfs_bstat * )calloc( 1, sizeof( struct xfs_bstat ));
+ assert( sc_rootxfsstatp );
+
+ /* Get the first valid (i.e. root) inode in this fs */
+@@ -2119,7 +2119,7 @@
+ bool_t empty_mediafile;
+ time_t elapsed;
+ inv_stmtoken_t inv_stmt;
+- xfs_bstat_t *bstatbufp;
++ struct xfs_bstat *bstatbufp;
+ const size_t bstatbuflen = BSTATBUFLEN;
+ int rval;
+ rv_t rv;
+@@ -2130,8 +2130,8 @@
+
+ /* allocate a buffer for use by bstat_iter
+ */
+- bstatbufp = ( xfs_bstat_t * )calloc( bstatbuflen,
+- sizeof( xfs_bstat_t ));
++ bstatbufp = ( struct xfs_bstat * )calloc( bstatbuflen,
++ sizeof( struct xfs_bstat ));
+ assert( bstatbufp );
+
+ /* allocate an inomap context */
+@@ -2806,7 +2806,7 @@
+
+ static rv_t
+ dump_dirs( ix_t strmix,
+- xfs_bstat_t *bstatbufp,
++ struct xfs_bstat *bstatbufp,
+ size_t bstatbuflen,
+ void *inomap_contextp )
+ {
+@@ -2820,8 +2820,8 @@
+ */
+ lastino = 0;
+ for ( bulkstatcallcnt = 0 ; ; bulkstatcallcnt++ ) {
+- xfs_bstat_t *p;
+- xfs_bstat_t *endp;
++ struct xfs_bstat *p;
++ struct xfs_bstat *endp;
+ __s32 buflenout;
+ int rval;
+
+@@ -2928,7 +2928,7 @@
+ dump_dir( ix_t strmix,
+ jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp )
++ struct xfs_bstat *statp )
+ {
+ context_t *contextp = &sc_contextp[ strmix ];
+ drive_t *drivep = drivepp[ strmix ];
+@@ -3110,7 +3110,7 @@
+ * if it's not there, we have to get it the slow way.
+ */
+ if ( inomap_get_gen( NULL, p->d_ino, &gen) ) {
+- xfs_bstat_t statbuf;
++ struct xfs_bstat statbuf;
+ int scrval;
+
+ scrval = bigstat_one( fsfd,
+@@ -3169,7 +3169,7 @@
+ dump_extattrs( drive_t *drivep,
+ context_t *contextp,
+ jdm_fshandle_t *fshandlep,
+- xfs_bstat_t *statp)
++ struct xfs_bstat *statp)
+ {
+ ix_t pass;
+ int flag;
+@@ -3269,7 +3269,7 @@
+ dump_extattr_list( drive_t *drivep,
+ context_t *contextp,
+ jdm_fshandle_t *fshandlep,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ attrlist_t *listp,
+ int flag,
+ bool_t *abortprp )
+@@ -3572,7 +3572,7 @@
+ }
+
+ static char *
+-dump_extattr_buildrecord( xfs_bstat_t *statp,
++dump_extattr_buildrecord( struct xfs_bstat *statp,
+ char *dumpbufp,
+ char *dumpbufendp,
+ char *namesrcp,
+@@ -3655,7 +3655,7 @@
+ static rv_t
+ dump_extattrhdr( drive_t *drivep,
+ context_t *contextp,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ size_t recsz,
+ size_t valoff,
+ ix_t flags,
+@@ -3712,7 +3712,7 @@
+ dump_file( void *arg1,
+ jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp )
++ struct xfs_bstat *statp )
+ {
+ ix_t strmix = ( ix_t )arg1;
+ context_t *contextp = &sc_contextp[ strmix ];
+@@ -3942,7 +3942,7 @@
+ context_t *contextp,
+ content_inode_hdr_t *scwhdrp,
+ jdm_fshandle_t *fshandlep,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ bool_t *file_skippedp )
+ {
+ startpt_t *startptp = &scwhdrp->cih_startpt;
+@@ -4163,7 +4163,7 @@
+ dump_file_spec( drive_t *drivep,
+ context_t *contextp,
+ jdm_fshandle_t *fshandlep,
+- xfs_bstat_t *statp )
++ struct xfs_bstat *statp )
+ {
+ int rval;
+ rv_t rv;
+@@ -4277,7 +4277,7 @@
+ */
+ static rv_t
+ init_extent_group_context( jdm_fshandle_t *fshandlep,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ extent_group_context_t *gcp )
+ {
+ bool_t isrealtime;
+@@ -4340,7 +4340,7 @@
+ static rv_t
+ dump_extent_group( drive_t *drivep,
+ context_t *contextp,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ extent_group_context_t *gcp,
+ off64_t maxcnt,
+ off64_t stopoffset,
+@@ -4932,7 +4932,7 @@
+
+ /* Note: assumes the pad fields in dst have been zeroed. */
+ static void
+-copy_xfs_bstat(bstat_t *dst, xfs_bstat_t *src)
++copy_xfs_bstat(bstat_t *dst, struct xfs_bstat *src)
+ {
+ dst->bs_ino = src->bs_ino;
+ dst->bs_mode = src->bs_mode;
+@@ -4963,7 +4963,7 @@
+ static rv_t
+ dump_filehdr( drive_t *drivep,
+ context_t *contextp,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ off64_t offset,
+ int flags )
+ {
+@@ -5086,7 +5086,7 @@
+ static rv_t
+ dump_dirent( drive_t *drivep,
+ context_t *contextp,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ xfs_ino_t ino,
+ gen_t gen,
+ char *name,
+--- ./dump/inomap.c.orig 2017-08-18 17:54:06.000000000 -0500
++++ ./dump/inomap.c 2019-11-26 13:21:05.442817390 -0600
+@@ -81,7 +81,7 @@
+ static void cb_context_free( void );
+ static int cb_count_inogrp( void *, int, xfs_inogrp_t *);
+ static int cb_add_inogrp( void *, int, xfs_inogrp_t * );
+-static int cb_add( void *, jdm_fshandle_t *, int, xfs_bstat_t * );
++static int cb_add( void *, jdm_fshandle_t *, int, struct xfs_bstat * );
+ static bool_t cb_inoinresumerange( xfs_ino_t );
+ static bool_t cb_inoresumed( xfs_ino_t );
+ static void cb_accuminit_sz( void );
+@@ -89,14 +89,14 @@
+ static int cb_startpt( void *,
+ jdm_fshandle_t *,
+ int,
+- xfs_bstat_t * );
++ struct xfs_bstat * );
+ static int supprt_prune( void *,
+ jdm_fshandle_t *,
+ int,
+- xfs_bstat_t *,
++ struct xfs_bstat *,
+ char * );
+-static off64_t quantity2offset( jdm_fshandle_t *, xfs_bstat_t *, off64_t );
+-static off64_t estimate_dump_space( xfs_bstat_t * );
++static off64_t quantity2offset( jdm_fshandle_t *, struct xfs_bstat *, off64_t );
++static off64_t estimate_dump_space( struct xfs_bstat * );
+
+ /* inomap primitives
+ */
+@@ -110,16 +110,16 @@
+ static int subtree_descend_cb( void *,
+ jdm_fshandle_t *,
+ int fsfd,
+- xfs_bstat_t *,
++ struct xfs_bstat *,
+ char * );
+ static int subtreelist_parse_cb( void *,
+ jdm_fshandle_t *,
+ int fsfd,
+- xfs_bstat_t *,
++ struct xfs_bstat *,
+ char * );
+ static int subtreelist_parse( jdm_fshandle_t *,
+ int,
+- xfs_bstat_t *,
++ struct xfs_bstat *,
+ char *[],
+ ix_t );
+
+@@ -144,7 +144,7 @@
+ bool_t
+ inomap_build( jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *rootstatp,
++ struct xfs_bstat *rootstatp,
+ bool_t last,
+ time32_t lasttime,
+ bool_t resume,
+@@ -161,7 +161,7 @@
+ size64_t statcnt,
+ size64_t *statdonep )
+ {
+- xfs_bstat_t *bstatbufp;
++ struct xfs_bstat *bstatbufp;
+ size_t bstatbuflen;
+ bool_t pruneneeded = BOOL_FALSE;
+ int igrpcnt = 0;
+@@ -185,10 +185,10 @@
+ /* allocate a bulkstat buf
+ */
+ bstatbuflen = BSTATBUFLEN;
+- bstatbufp = ( xfs_bstat_t * )memalign( pgsz,
++ bstatbufp = ( struct xfs_bstat * )memalign( pgsz,
+ bstatbuflen
+ *
+- sizeof( xfs_bstat_t ));
++ sizeof( struct xfs_bstat ));
+ assert( bstatbufp );
+
+ /* count the number of inode groups, which will serve as a
+@@ -505,7 +505,7 @@
+ cb_add( void *arg1,
+ jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp )
++ struct xfs_bstat *statp )
+ {
+ register time32_t mtime = statp->bs_mtime.tv_sec;
+ register time32_t ctime = statp->bs_ctime.tv_sec;
+@@ -691,7 +691,7 @@
+ supprt_prune( void *arg1, /* ancestors marked as changed? */
+ jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ char *name )
+ {
+ static bool_t cbrval = BOOL_FALSE;
+@@ -812,7 +812,7 @@
+ cb_startpt( void *arg1,
+ jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp )
++ struct xfs_bstat *statp )
+ {
+ register int state;
+
+@@ -1472,7 +1472,7 @@
+ static int
+ subtreelist_parse( jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *rootstatp,
++ struct xfs_bstat *rootstatp,
+ char *subtreebuf[],
+ ix_t subtreecnt )
+ {
+@@ -1513,7 +1513,7 @@
+ subtreelist_parse_cb( void *arg1,
+ jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ char *name )
+ {
+ int cbrval = 0;
+@@ -1596,7 +1596,7 @@
+ subtree_descend_cb( void *arg1,
+ jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ char *name )
+ {
+ int cbrval = 0;
+@@ -1624,7 +1624,7 @@
+ #define BMAP_LEN 512
+
+ static off64_t
+-quantity2offset( jdm_fshandle_t *fshandlep, xfs_bstat_t *statp, off64_t qty )
++quantity2offset( jdm_fshandle_t *fshandlep, struct xfs_bstat *statp, off64_t qty )
+ {
+ int fd;
+ getbmapx_t bmap[ BMAP_LEN ];
+@@ -1699,7 +1699,7 @@
+
+
+ static off64_t
+-estimate_dump_space( xfs_bstat_t *statp )
++estimate_dump_space( struct xfs_bstat *statp )
+ {
+ switch ( statp->bs_mode & S_IFMT ) {
+ case S_IFREG:
+--- ./common/content_inode.h.orig 2017-09-21 16:21:55.000000000 -0500
++++ ./common/content_inode.h 2019-11-26 13:21:05.397817393 -0600
+@@ -150,8 +150,8 @@
+
+ /* bstat_t - bulk stat structure
+ *
+- * used in filehdr_t below. derived from xfs_bstat_t, to achieve independence
+- * from changes to xfs_bstat_t.
++ * used in filehdr_t below. derived from struct xfs_bstat, to achieve independence
++ * from changes to struct xfs_bstat.
+ */
+ #define BSTAT_SZ 128
+ #define MODE_SZ 4
+--- ./common/hsmapi.h.orig 2015-11-10 13:40:23.000000000 -0600
++++ ./common/hsmapi.h 2019-11-26 13:21:05.391817394 -0600
+@@ -186,15 +186,15 @@
+
+ /******************************************************************************
+ * Name
+-* HsmModifyInode - modify a xfs_bstat_t to make a file appear offline
++* HsmModifyInode - modify a struct xfs_bstat to make a file appear offline
+ *
+ * Description
+ * HsmModifyInode uses the context provided by a previous
+-* HsmInitFileContext call to determine how to modify a xfs_bstat_t
++* HsmInitFileContext call to determine how to modify a struct xfs_bstat
+ * structure to make a dual-residency HSM file appear to be offline.
+ *
+ * Returns
+-* != 0, xfs_bstat_t structure was modified.
++* != 0, struct xfs_bstat structure was modified.
+ * == 0, if something is wrong with the file and it should not be dumped.
+ ******************************************************************************/
+
+--- ./common/util.h.orig 2017-08-18 17:54:06.000000000 -0500
++++ ./common/util.h 2019-11-26 13:21:05.411817392 -0600
+@@ -87,7 +87,7 @@
+ typedef int (*bstat_cbfp_t)(void *arg1,
+ jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp );
++ struct xfs_bstat *statp );
+
+ typedef xfs_ino_t (*bstat_seekfp_t)(void *arg1,
+ xfs_ino_t lastino);
+@@ -102,12 +102,12 @@
+ void * seek_arg1,
+ int *statp,
+ bool_t ( pfp )( int ), /* preemption chk func */
+- xfs_bstat_t *buf,
++ struct xfs_bstat *buf,
+ size_t buflen );
+
+ extern int bigstat_one( int fsfd,
+ xfs_ino_t ino,
+- xfs_bstat_t *statp );
++ struct xfs_bstat *statp );
+
+ extern int inogrp_iter( int fsfd,
+ int ( * fp )( void *arg1,
+@@ -131,11 +131,11 @@
+ */
+ extern int diriter( jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ int ( *cbfp )( void *arg1,
+ jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ char *namep ),
+ void *arg1,
+ int *cbrvalp,
+--- ./common/hsmapi.c.orig 2017-09-21 16:21:55.000000000 -0500
++++ ./common/hsmapi.c 2019-11-26 13:21:05.404817393 -0600
+@@ -108,7 +108,7 @@
+ #define DM_EVENT_TRUNCATE 18
+ #define DM_EVENT_DESTROY 20
+
+- /* Interesting bit combinations within the bs_dmevmask field of xfs_bstat_t:
++ /* Interesting bit combinations within the bs_dmevmask field of struct xfs_bstat:
+ * OFL, UNM, and PAR files have exactly these bits set.
+ * DUL and MIG files have all but the DM_EVENT_READ bit set */
+ #define DMF_EV_BITS ( (1<<DM_EVENT_DESTROY) | \
+@@ -270,7 +270,7 @@
+ HsmEstimateFileSpace(
+ hsm_fs_ctxt_t *fscontextp,
+ hsm_f_ctxt_t *fcontextp,
+-const xfs_bstat_t *statp,
++const struct xfs_bstat *statp,
+ off64_t *bytes,
+ int accurate)
+ {
+@@ -353,7 +353,7 @@
+ extern int
+ HsmEstimateFileOffset(
+ hsm_fs_ctxt_t *contextp,
+-const xfs_bstat_t *statp,
++const struct xfs_bstat *statp,
+ off64_t bytecount,
+ off64_t *byteoffset)
+ {
+@@ -458,7 +458,7 @@
+ extern int
+ HsmInitFileContext(
+ hsm_f_ctxt_t *contextp,
+-const xfs_bstat_t *statp)
++const struct xfs_bstat *statp)
+ {
+ dmf_f_ctxt_t *dmf_f_ctxtp = (dmf_f_ctxt_t *)contextp;
+ XFSattrvalue0_t *dmfattrp;
+@@ -492,7 +492,7 @@
+ attr_op.am_flags = ATTR_ROOT;
+
+ error = jdm_attr_multi(dmf_f_ctxtp->fsys.fshanp,
+- (xfs_bstat_t *)statp,
++ (struct xfs_bstat *)statp,
+ (char *)&attr_op,
+ 1,
+ 0);
+@@ -538,22 +538,22 @@
+
+ /******************************************************************************
+ * Name
+-* HsmModifyInode - modify a xfs_bstat_t to make a file appear offline
++* HsmModifyInode - modify a struct xfs_bstat to make a file appear offline
+ *
+ * Description
+ * HsmModifyInode uses the context provided by a previous
+-* HsmInitFileContext call to determine how to modify a xfs_bstat_t
++* HsmInitFileContext call to determine how to modify a struct xfs_bstat
+ * structure to make a dual-residency HSM file appear to be offline.
+ *
+ * Returns
+-* != 0, xfs_bstat_t structure was modified.
++* != 0, struct xfs_bstat structure was modified.
+ * == 0, if something is wrong with the file and it should not be dumped.
+ ******************************************************************************/
+
+ extern int
+ HsmModifyInode(
+ hsm_f_ctxt_t *contextp,
+- xfs_bstat_t *statp)
++ struct xfs_bstat *statp)
+ {
+ dmf_f_ctxt_t *dmf_f_ctxtp = (dmf_f_ctxt_t *)contextp;
+
+--- ./common/util.c.orig 2015-11-10 13:40:23.000000000 -0600
++++ ./common/util.c 2019-11-26 13:21:05.418817392 -0600
+@@ -125,7 +125,7 @@
+ void * seek_arg1,
+ int *statp,
+ bool_t ( pfp )( int ),
+- xfs_bstat_t *buf,
++ struct xfs_bstat *buf,
+ size_t buflenin )
+ {
+ __s32 buflenout;
+@@ -162,8 +162,8 @@
+ bulkreq.ubuffer = buf;
+ bulkreq.ocount = &buflenout;
+ while (!ioctl(fsfd, XFS_IOC_FSBULKSTAT, &bulkreq)) {
+- xfs_bstat_t *p;
+- xfs_bstat_t *endp;
++ struct xfs_bstat *p;
++ struct xfs_bstat *endp;
+
+ if ( buflenout == 0 ) {
+ mlog( MLOG_NITTY + 1,
+@@ -254,7 +254,7 @@
+ int
+ bigstat_one( int fsfd,
+ xfs_ino_t ino,
+- xfs_bstat_t *statp )
++ struct xfs_bstat *statp )
+ {
+ xfs_fsop_bulkreq_t bulkreq;
+ int count = 0;
+@@ -339,11 +339,11 @@
+ int
+ diriter( jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ int ( *cbfp )( void *arg1,
+ jdm_fshandle_t *fshandlep,
+ int fsfd,
+- xfs_bstat_t *statp,
++ struct xfs_bstat *statp,
+ char *namep ),
+ void *arg1,
+ int *cbrvalp,
+@@ -428,7 +428,7 @@
+ assert( nread >= 0 ),
+ p = ( struct dirent * )( ( char * )p + reclen ),
+ reclen = ( size_t )p->d_reclen ) {
+- xfs_bstat_t statbuf;
++ struct xfs_bstat statbuf;
+ assert( scrval == 0 );
+ assert( cbrval == 0 );
+
+--- ./doc/xfsdump.html.orig 2017-09-21 16:21:55.000000000 -0500
++++ ./doc/xfsdump.html 2019-11-26 13:21:05.425817391 -0600
+@@ -513,9 +513,9 @@
+ - bigstat_init on cb_add()
+ - loops doing bulkstats (using syssgi() or ioctl())
+ until system call returns non-zero value
+- - each bulkstat returns a buffer of xfs_bstat_t records
++ - each bulkstat returns a buffer of struct xfs_bstat records
+ (buffer of size bulkreq.ocount)
+- - loop thru each xfs_bstat_t record for an inode
++ - loop thru each struct xfs_bstat record for an inode
+ calling cb_add()
+ * cb_add
+ - looks at latest mtime|ctime and
+@@ -629,7 +629,7 @@
+ * dump_filehdr()
+ - write out 256 padded file header
+ - header = &lt;offset, flags, checksum, 128-byte bulk stat structure &gt;
+- - bulkstat struct derived from xfs_bstat_t
++ - bulkstat struct derived from struct xfs_bstat
+ - stnd. stat stuff + extent size, #of extents, DMI stuff
+ - if HSM context then
+ - modify bstat struct to make it offline
diff --git a/source/ap/xfsdump/0003-xfsdump.xfsprogs-5.3.0.UUID_STR_LEN.patch b/source/ap/xfsdump/0003-xfsdump.xfsprogs-5.3.0.UUID_STR_LEN.patch
new file mode 100644
index 00000000..5c5eefea
--- /dev/null
+++ b/source/ap/xfsdump/0003-xfsdump.xfsprogs-5.3.0.UUID_STR_LEN.patch
@@ -0,0 +1,14 @@
+--- ./common/types.h.orig 2017-09-21 16:21:55.000000000 -0500
++++ ./common/types.h 2019-11-26 13:23:41.819804450 -0600
+@@ -32,11 +32,6 @@
+
+ #define XFSDUMP_DIRPATH inv_basepath()
+
+-/*
+- * Should be, but isn't, defined in uuid/uuid.h
+- */
+-#define UUID_STR_LEN 36
+-
+ /* fundamental page size - probably should not be hardwired, but
+ * for now we will
+ */
diff --git a/source/ap/xfsdump/0004-xfsdump.xfsprogs-5.3.0.xfs_inogrp_t.patch b/source/ap/xfsdump/0004-xfsdump.xfsprogs-5.3.0.xfs_inogrp_t.patch
new file mode 100644
index 00000000..750433be
--- /dev/null
+++ b/source/ap/xfsdump/0004-xfsdump.xfsprogs-5.3.0.xfs_inogrp_t.patch
@@ -0,0 +1,81 @@
+--- ./dump/inomap.c.orig 2019-11-26 13:32:54.382758726 -0600
++++ ./dump/inomap.c 2019-11-26 13:34:21.686751502 -0600
+@@ -79,8 +79,8 @@
+ bool_t,
+ bool_t *);
+ static void cb_context_free( void );
+-static int cb_count_inogrp( void *, int, xfs_inogrp_t *);
+-static int cb_add_inogrp( void *, int, xfs_inogrp_t * );
++static int cb_count_inogrp( void *, int, struct xfs_inogrp *);
++static int cb_add_inogrp( void *, int, struct xfs_inogrp * );
+ static int cb_add( void *, jdm_fshandle_t *, int, struct xfs_bstat * );
+ static bool_t cb_inoinresumerange( xfs_ino_t );
+ static bool_t cb_inoresumed( xfs_ino_t );
+@@ -488,7 +488,7 @@
+ }
+
+ static int
+-cb_count_inogrp( void *arg1, int fsfd, xfs_inogrp_t *inogrp )
++cb_count_inogrp( void *arg1, int fsfd, struct xfs_inogrp *inogrp )
+ {
+ int *count = (int *)arg1;
+ (*count)++;
+@@ -1116,7 +1116,7 @@
+ * order. adds a new segment to the inomap and ino-to-gen map.
+ */
+ static int
+-cb_add_inogrp( void *arg1, int fsfd, xfs_inogrp_t *inogrp )
++cb_add_inogrp( void *arg1, int fsfd, struct xfs_inogrp *inogrp )
+ {
+ hnk_t *hunk;
+ seg_t *segp;
+--- ./common/util.h.orig 2019-11-26 13:32:54.397758725 -0600
++++ ./common/util.h 2019-11-26 13:34:21.685751502 -0600
+@@ -112,7 +112,7 @@
+ extern int inogrp_iter( int fsfd,
+ int ( * fp )( void *arg1,
+ int fsfd,
+- xfs_inogrp_t *inogrp ),
++ struct xfs_inogrp *inogrp ),
+ void * arg1,
+ int *statp );
+
+--- ./common/util.c.orig 2019-11-26 13:32:54.415758723 -0600
++++ ./common/util.c 2019-11-26 13:34:21.685751502 -0600
+@@ -274,23 +274,23 @@
+ inogrp_iter( int fsfd,
+ int ( * fp )( void *arg1,
+ int fsfd,
+- xfs_inogrp_t *inogrp ),
++ struct xfs_inogrp *inogrp ),
+ void * arg1,
+ int *statp )
+ {
+ xfs_ino_t lastino;
+ int inogrpcnt;
+- xfs_inogrp_t *igrp;
++ struct xfs_inogrp *igrp;
+ xfs_fsop_bulkreq_t bulkreq;
+
+ /* stat set with return from callback func */
+ *statp = 0;
+
+- igrp = malloc(INOGRPLEN * sizeof(xfs_inogrp_t));
++ igrp = malloc(INOGRPLEN * sizeof(struct xfs_inogrp));
+ if (!igrp) {
+ mlog(MLOG_NORMAL | MLOG_ERROR,
+ _("malloc of stream context failed (%d bytes): %s\n"),
+- INOGRPLEN * sizeof(xfs_inogrp_t),
++ INOGRPLEN * sizeof(struct xfs_inogrp),
+ strerror(errno));
+ return -1;
+ }
+@@ -302,7 +302,7 @@
+ bulkreq.ubuffer = igrp;
+ bulkreq.ocount = &inogrpcnt;
+ while (!ioctl(fsfd, XFS_IOC_FSINUMBERS, &bulkreq)) {
+- xfs_inogrp_t *p, *endp;
++ struct xfs_inogrp *p, *endp;
+
+ if ( inogrpcnt == 0 ) {
+ free(igrp);
diff --git a/source/ap/xfsdump/0005-xfsdump.xfsprogs-5.3.0.xfs_fsop_bulkreq_t.patch b/source/ap/xfsdump/0005-xfsdump.xfsprogs-5.3.0.xfs_fsop_bulkreq_t.patch
new file mode 100644
index 00000000..98c6805c
--- /dev/null
+++ b/source/ap/xfsdump/0005-xfsdump.xfsprogs-5.3.0.xfs_fsop_bulkreq_t.patch
@@ -0,0 +1,49 @@
+--- ./dump/content.c.orig 2019-11-26 13:37:51.425734146 -0600
++++ ./dump/content.c 2019-11-26 13:38:52.482729094 -0600
+@@ -1390,7 +1390,7 @@
+ stat64_t rootstat;
+ xfs_ino_t lastino = 0;
+ int ocount = 0;
+- xfs_fsop_bulkreq_t bulkreq;
++ struct xfs_fsop_bulkreq bulkreq;
+
+ /* Get the inode of the mount point */
+ rval = fstat64( sc_fsfd, &rootstat );
+@@ -2812,7 +2812,7 @@
+ {
+ xfs_ino_t lastino;
+ size_t bulkstatcallcnt;
+- xfs_fsop_bulkreq_t bulkreq;
++ struct xfs_fsop_bulkreq bulkreq;
+
+ inomap_reset_context(inomap_contextp);
+
+--- ./common/util.c.orig 2019-11-26 13:37:51.523734138 -0600
++++ ./common/util.c 2019-11-26 13:38:52.481729094 -0600
+@@ -132,7 +132,7 @@
+ xfs_ino_t lastino;
+ int saved_errno;
+ int bulkstatcnt;
+- xfs_fsop_bulkreq_t bulkreq;
++ struct xfs_fsop_bulkreq bulkreq;
+
+ /* stat set with return from callback func
+ */
+@@ -256,7 +256,7 @@
+ xfs_ino_t ino,
+ struct xfs_bstat *statp )
+ {
+- xfs_fsop_bulkreq_t bulkreq;
++ struct xfs_fsop_bulkreq bulkreq;
+ int count = 0;
+
+ assert( ino > 0 );
+@@ -281,7 +281,7 @@
+ xfs_ino_t lastino;
+ int inogrpcnt;
+ struct xfs_inogrp *igrp;
+- xfs_fsop_bulkreq_t bulkreq;
++ struct xfs_fsop_bulkreq bulkreq;
+
+ /* stat set with return from callback func */
+ *statp = 0;
diff --git a/source/ap/xfsdump/xfsdump.SlackBuild b/source/ap/xfsdump/xfsdump.SlackBuild
index 8cc6c1fc..10509532 100755
--- a/source/ap/xfsdump/xfsdump.SlackBuild
+++ b/source/ap/xfsdump/xfsdump.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=xfsdump
VERSION=${VERSION:-$(echo xfsdump-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
@@ -68,8 +68,12 @@ find . \
# developers did... ;-)
#autoreconf -vif
-# Fix build against xfsprogs-5.2.1:
-zcat $CWD/xfsdump.xfsprogs-5.2.1.diff.gz | patch -p1 --verbose || exit 1
+# Fix build against xfsprogs-5.3.0:
+zcat $CWD/0001-xfsdump.xfsprogs-5.3.0.xfs_fsop_geom_v1_t.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/0002-xfsdump.xfsprogs-5.3.0.xfs_bstat_t.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/0003-xfsdump.xfsprogs-5.3.0.UUID_STR_LEN.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/0004-xfsdump.xfsprogs-5.3.0.xfs_inogrp_t.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/0005-xfsdump.xfsprogs-5.3.0.xfs_fsop_bulkreq_t.patch.gz | patch -p1 --verbose || exit 1
./configure \
--prefix=/usr \
diff --git a/source/ap/xfsdump/xfsdump.xfsprogs-5.2.1.diff b/source/ap/xfsdump/xfsdump.xfsprogs-5.2.1.diff
deleted file mode 100644
index d12be1b3..00000000
--- a/source/ap/xfsdump/xfsdump.xfsprogs-5.2.1.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./common/fs.c.orig 2015-11-10 13:40:23.000000000 -0600
-+++ ./common/fs.c 2019-09-15 15:30:26.633808720 -0500
-@@ -204,7 +204,7 @@
- int
- fs_getid( char *mnts, uuid_t *idb )
- {
-- xfs_fsop_geom_v1_t geo;
-+ struct xfs_fsop_geom_v1 geo;
- int fd;
-
- fd = open( mnts, O_RDONLY );