generic/062 uses getfattr to dump xattrs for a directory tree, then
deletes and recreates that directory tree, then dumps the xattrs
again and compares the dump to the original. This was failing when
run on ext4 with encryption enabled because getfattr's output is in
readdir order, but ext4 encryption by design chooses unpredictable
encrypted filenames for each new directory, causing the readdir
order to change after backup and restore. It is not really a valid
assumption that the readdir order will always be the same, so update
the test to sort the filenames, removing this assumption.
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
_backup()
{
- # NB: no filtering of scratch here... (need to restore too)
- $GETFATTR_PROG --absolute-names -dh -R -m '.' $SCRATCH_MNT >$1
+ # Note: we don't filter scratch here since we need to restore too. But
+ # we *do* sort the output by path, since it otherwise would depend on
+ # readdir order, which on some filesystems may change after re-creating
+ # the files.
+ $GETFATTR_PROG --absolute-names -dh -R -m '.' $SCRATCH_MNT | _sort_getfattr_output >$1
echo BACKUP $1 >>$seqres.full
cat $1 >> $seqres.full
[ ! -s $1 ] && echo "warning: $1 (backup file) is empty"