lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 3 Aug 2022 22:03:49 -0700 From: "Darrick J. Wong" <djwong@...nel.org> To: guaneryu@...il.com, zlang@...hat.com Cc: linux-xfs@...r.kernel.org, fstests@...r.kernel.org, guan@...u.me, tytso@....edu, linux-ext4@...r.kernel.org Subject: Re: [PATCH v1.2 3/3] common/ext4: provide custom ext4 scratch fs options On Wed, Aug 03, 2022 at 05:25:11PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@...nel.org> > > Create a _scratch_options backend for ext* so that we can inject > pathnames to external log devices into the scratch fs mount options. > This enables common/dm* to install block device filters, e.g. dm-error > for stress testing. > > Signed-off-by: Darrick J. Wong <djwong@...nel.org> > v1.2: refactor _scratch_mkfs_ext4 to use _scratch_options too Self NAK, this still has broken bits... > --- > common/ext4 | 34 +++++++++++++++++++++++++++++++--- > common/rc | 3 +++ > 2 files changed, 34 insertions(+), 3 deletions(-) > > diff --git a/common/ext4 b/common/ext4 > index 287705af..8a3385af 100644 > --- a/common/ext4 > +++ b/common/ext4 > @@ -63,16 +63,24 @@ _setup_large_ext4_fs() > return 0 > } > > +_scratch_mkfs_ext4_opts() > +{ > + mkfs_opts=$* > + > + _scratch_options mkfs > + > + echo "$MKFS_EXT4_PROG -F $SCRATCH_OPTIONS $mkfs_opts" ...the -F should go in _scratch_ext4_options... > +} > + > _scratch_mkfs_ext4() > { > - local mkfs_cmd="$MKFS_EXT4_PROG -F" > + local mkfs_cmd="`_scratch_mkfs_ext4_opts`" > local mkfs_filter="grep -v -e ^Warning: -e \"^mke2fs \" | grep -v \"^$\"" > local tmp=`mktemp -u` > local mkfs_status > > [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ > - $mkfs_cmd -O journal_dev $MKFS_OPTIONS $SCRATCH_LOGDEV && \ > - mkfs_cmd="$mkfs_cmd -J device=$SCRATCH_LOGDEV" > + $MKFS_EXT4_PROG -F -O journal_dev $MKFS_OPTIONS $SCRATCH_LOGDEV > > _scratch_do_mkfs "$mkfs_cmd" "$mkfs_filter" $* 2>$tmp.mkfserr 1>$tmp.mkfsstd > mkfs_status=$? > @@ -154,3 +162,23 @@ _require_scratch_richacl_ext4() > || _notrun "kernel doesn't support richacl feature on $FSTYP" > _scratch_unmount > } > + > +_scratch_ext4_options() > +{ > + local type=$1 > + local log_opt="" > + > + case $type in > + mkfs) > + log_opt="-J device=$SCRATCH_LOGDEV" > + ;; > + mount) > + # As of kernel 5.19, the kernel mount option path parser only accepts > + # direct paths to block devices--the final path component cannot be a > + # symlink. > + log_opt="-o journal_path=$(realpath $SCRATCH_LOGDEV)" ...and this ought to be `realpath -q "$SCRATCH_LOGDEV"' to avoid breaking the non-external-journal case. > + ;; > + esac > + [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ > + SCRATCH_OPTIONS="$SCRATCH_OPTIONS ${log_opt}" Tab/space insanity here. --D > +} > diff --git a/common/rc b/common/rc > index dc1d65c3..b82bb36b 100644 > --- a/common/rc > +++ b/common/rc > @@ -178,6 +178,9 @@ _scratch_options() > "xfs") > _scratch_xfs_options "$@" > ;; > + ext2|ext3|ext4|ext4dev) > + _scratch_ext4_options "$@" > + ;; > esac > } >
Powered by blists - more mailing lists