Re: [PATCH 9/8] common/populate: remember multi-device configurations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 23, 2017 at 03:49:02PM +0800, Eryu Guan wrote:
> On Wed, Jun 21, 2017 at 11:26:53PM -0700, Darrick J. Wong wrote:
> > Record the external log and realtime device configurations when we
> > create a sample filesystem.
> > 
> > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> > ---
> >  common/populate |   10 +++++++++-
> >  1 file changed, 9 insertions(+), 1 deletion(-)
> > 
> > diff --git a/common/populate b/common/populate
> > index e99ce68..b59ed02 100644
> > --- a/common/populate
> > +++ b/common/populate
> > @@ -713,7 +713,15 @@ _scratch_populate_cached() {
> >  	rm -rf "$(find "${POPULATE_METADUMP}" -mtime +2 2>/dev/null)"
> >  
> >  	# Throw away cached image if it doesn't match our spec.
> > -	meta_descr="FSTYP ${FSTYP} MKFS_OPTIONS ${MKFS_OPTIONS} SIZE $(blockdev --getsz "${SCRATCH_DEV}") ARGS $@"
> > +	case "${FSTYP}" in
> > +	"ext4")
> > +		extra_descr="LOGDEV ${SCRATCH_LOGDEV} USE_EXTERNAL ${USE_EXTERNAL}";;
> > +	"xfs")
> > +		extra_descr="LOGDEV ${SCRATCH_LOGDEV} USE_EXTERNAL ${USE_EXTERNAL} RTDEV ${SCRATCH_RTDEV}";;
> > +	*)
> > +		extra_descr="";;
> > +	esac
> > +	meta_descr="FSTYP ${FSTYP} MKFS_OPTIONS ${MKFS_OPTIONS} SIZE $(blockdev --getsz "${SCRATCH_DEV}") ${extra_descr} ARGS $@"
> 
> This works fine if "test without external log" then "test with external
> log" or vise-versa. But I just found that a second run with external log
> still cause scratch dev fail to mount. Seems it's because e2image
> doesn't take the external log dev into account when save/restore fs
> image, then mounting scratch dev failed with
> 
> [184952.642892] EXT4-fs (sdc2): journal UUID does not match

Ohhh... I just remembered that e2image (and xfs_metadump) don't capture
the external log in the dump.  ext4 chokes when the log device lacks the
header it needs and fails, though XFS is perfectly happy to complain
about the zero log and move on.

So either we can't use _scratch_populate cache in ext4 when
SCRATCH_LOGDEV is set, or I need to fix it to extract the expected
logdev uuid from the restored fs and reformat that onto the log device.

I'll work on that and resubmit.

--D

> 
> Thanks,
> Eryu
> 
> >  	cmp -s "${POPULATE_METADUMP_DESCR}" <(echo "${meta_descr}") || rm -rf "${POPULATE_METADUMP}"
> >  
> >  	# Do we have a cached image?
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux