Re: [PATCH] xfsrestore: fix fs uuid order check for incremental restores

Dave Chinner
2015-08-26T21:31:52Z

On Wed, Aug 26, 2015 at 11:27:12AM -0500, Rich Johnston wrote:
> Restoring an incremental level 1 dump will fail with the following error
> if the fs uuid of the most recent level 0 dump in the inventory does not
> match level 1 dump we are restoring.
>
> xfsrestore: ERROR: selected dump not based on previously applied dump
>
> This can happen when you have multiple filesystems and you are restoring
> a level 1 or greater dump of filesystem FS1 but the most recent level 0
> dump in the inventory was filesystem FS2
>
> The fix is to ensure the fs uuid of the inventory entry and the dump to
> be restored match.
>
> Signed-off-by: Rich Johnston <rjohnston@sgi.com>
> ---
> dump/content.c | 8 ++-
> inventory/inv_api.c | 108 ++++++++++++++++++++++++++++++--------------------
> inventory/inv_mgr.c | 32 ++++++++++----
> inventory/inv_priv.h | 7 +--
> inventory/inventory.h | 5 ++
> restore/content.c | 17 +++++--
> 6 files changed, 113 insertions(+), 64 deletions(-)
>
> Index: b/dump/content.c
> ===================================================================
> --- a/dump/content.c
> +++ b/dump/content.c
> @@ -872,7 +872,7 @@ content_init( intgen_t argc,
> sameinterruptedpr = BOOL_FALSE;
> interruptedpr = BOOL_FALSE;
> - ok = inv_get_session_byuuid( &baseuuid, &sessp );
> + ok = inv_get_session_byuuid( &fsid, &baseuuid, &sessp );
> if ( ! ok ) {
> mlog( MLOG_NORMAL | MLOG_ERROR, _(
> "could not find specified base dump (%s) "

This patch has whitespace problems all through it (bad indenting,
all tabs converted to spaces, etc) and so it won't apply. Please fix
and resend.

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com