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

Rich Johnston
2015-09-11T17:01:35Z

On 09/08/2015 07:47 AM, Brian Foster wrote:
> On Thu, Sep 03, 2015 at 06:43:46PM -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.

...

>> Index: b/inventory/inv_api.c
>> ===================================================================
>> --- a/inventory/inv_api.c
>> +++ b/inventory/inv_api.c
>> @@ -596,69 +596,78 @@ inv_free_session(

...

>>
>> - return invmgr_query_all_sessions((void *) &level, /* in */
>> - (void **) ses, /* out */
>> - (search_callback_t) lastsess_level_lessthan);
>> + return invmgr_query_all_sessions(fsidp /* fs uuid */
>
> This doesn't compile because of a missing comma after fsidp above.
>
My mistake, happened while cleaning up whitespace.
...

>> Index: b/inventory/inv_mgr.c
>> ===================================================================
>> --- a/inventory/inv_mgr.c
>> +++ b/inventory/inv_mgr.c

...

>> @@ -178,26 +180,27 @@ invmgr_query_all_sessions (
>> "INV: Open failed on %s\n"),
>> fname
>> );
>> - return BOOL_FALSE;
>> + continue;
>> }
>> - result = search_invt( invfd, inarg, &objectfound, func );
>> + result = search_invt(fsidp, invfd, inarg, &objectfound, func);
>> close(invfd);
>>
>> /* if error return BOOL_FALSE */
>> if (result < 0) {
>> - return BOOL_FALSE;
>> + return ret;
>
> Should this always return false? It's now possible to return true if an
> error occurs after we've found one object.

*nod* Thanks I missed that one.

I'll have a V4 out shortly.

--Rich
>
> The rest seems Ok to me.
>
> Brian
>