On Wed, Oct 26, 2011 at 06:24:43PM -0500, Bill Kendall wrote:
> xfsrestore does not apply certain metadata until all of the file's
> data has been restored. This allows, for example, files with the
> immutable flag set to be restored properly.
> While testing multi-stream restores, I noticed that files split
> across multiple streams did not have their metadata restored.
> Looking into this further, it also applies to the single-stream
> case where files are split across media files, such as when a
> backup spans multiple tapes.
> The fix is to check to see if a file is completely restored
> whenever we hit the end of a media file. The current code
> is broken because it relies on all media files being applied
> during the same restore session.
> This also moves the S_ISREG() check into restore_complete_reg()
> rather than relying on callers to make the check.
Uhh, that's a nasty bug for people storing large files over multiple
tapes. Any chance we could get an xfstests test case for this?
Can we somehow simulate multiple tapes using small files?
The code change looks okay to me, but I have to admit I don't really
understand the code very well.