Re: [PATCH 1/2] generic/740: set env for mkfs.exfat

"Darrick J. Wong" <[email protected]> Thu, 25 Jun 2026 11:45:16 -0700
Newsgroups org.kernel.vger.fstests
Message-ID <20260625184516.GQ6070@frogsfrogsfrogs>
On Fri, Jun 19, 2026 at 06:53:06AM +0200, Christoph Hellwig wrote:
> On Fri, Jun 19, 2026 at 04:22:35AM +0900, David Timber wrote:
> > Foreign filesystem detection is added in exfatprogs version 1.4.1. To
> > maintain backward compatibility, mkfs.exfat refuses to format the device
> > only when it's run from terminal with a tty associated to it.
> > 
> > This is similar to how e2fsprogs work around the issue. However,
> > with exfatprogs, this behaviour can be overridden with the special
> > environment variable EXFAT_TTY_OVERRIDE to simulate shell invocation by
> > user.
> > 
> > Signed-off-by: David Timber <[email protected]>
> > ---
> >  tests/generic/740 | 15 ++++++++++++++-
> >  1 file changed, 14 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tests/generic/740 b/tests/generic/740
> > index ce55200f..4f8bf099 100755
> > --- a/tests/generic/740
> > +++ b/tests/generic/740
> > @@ -28,6 +28,18 @@ _require_block_device "${SCRATCH_DEV}"
> >  # not all the FS support zoned block device
> >  _require_non_zoned_device "${SCRATCH_DEV}"
> >  
> > +mkfs_preop=""
> > +mkfs_preargs=""
> > +mkfs_postargs=""
> > +
> > +case "$FSTYP" in
> > +exfat)
> > +	# For backward compatibility, mkfs.exfat refuses to format only when run
> > +	# from a tty. This env var should override the behaviour if supported.
> > +	mkfs_preop="EXFAT_TTY_OVERRIDE=1"
> > +	;;
> > +esac
> > +
> >  echo "Silence is golden."
> >  for fs in `echo ${MKFS_PROG}.* | sed -e "s:${MKFS_PROG}.::g"`
> >  do
> > @@ -83,7 +95,8 @@ do
> >  		# next, ensure we don't overwrite it
> >  
> >  		echo "=== Attempting $FSTYP overwrite of $fs..." >>$seqres.full
> > -		${MKFS_PROG} -t $FSTYP $SCRATCH_DEV >>$seqres.full 2>&1
> > +		eval $mkfs_preop ${MKFS_PROG} -t $FSTYP $mkfs_preargs $SCRATCH_DEV $mkfs_postargs \
> 
> breaking up the long line still would be nice here, i.e. keep at 80
> characters.  Else looks good.

I wonder why we don't just redirect stdin from /dev/null, it's not like
we want to capture user input anyway...

--D