_filter_mkfs is a filter so that it should read from stdin first before printing anything out. Otherwise the command prior to the pipeline may get EPIPE. I saw this when testing extN with generic/204, _scratch_mkfs_sized was unable to create fs because of EPIPE, then _scratch_mount failed. generic/204 12s ... [failed, exit status 1] - output mismatch (see /root/xfstests/results//generic/204.out.bad) --- tests/generic/204.out 2013-11-01 16:47:56.728591856 +0800 +++ /root/xfstests/results//generic/204.out.bad 2013-11-01 22:52:53.207828779 +0800 @@ -1,2 +1,7 @@ QA output created by 204 -*** done +mount: wrong fs type, bad option, bad superblock on /dev/sda6, + missing codepage or helper program, or other error + In some cases useful info is found in syslog - try + dmesg | tail or so + Signed-off-by: Eryu Guan <eguan@xxxxxxxxxx> --- common/filter | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/common/filter b/common/filter index e37ce69..faf33e3 100644 --- a/common/filter +++ b/common/filter @@ -134,16 +134,19 @@ _filter_date() # Non XFS filesystems always return a 4k block size and a 256 byte inode. _filter_mkfs() { + local tmp=/tmp/mkfs_filter + cat - >$tmp + case $FSTYP in xfs) ;; *) perl -e 'print STDERR "dbsize=4096\nisize=256\n"' + rm -f $tmp return ;; esac - set - - perl -ne ' + cat $tmp | perl -ne ' if (/^meta-data=([\w,|\/.-]+)\s+isize=(\d+)\s+agcount=(\d+), agsize=(\d+) blks/) { print STDERR "ddev=$1\nisize=$2\nagcount=$3\nagsize=$4\n"; print STDOUT "meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks\n"; @@ -175,6 +178,7 @@ _filter_mkfs() print STDERR "rtdev=$1\nrtextsz=$2\nrtblocks=$3\nrtextents=$4\n"; print STDOUT "realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX\n"; }' + rm -f $tmp } -- 1.8.3.1 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs