Message ID | 1587720830-11955-3-git-send-email-jefflexu@linux.alibaba.com |
---|---|
State | New |
Headers | show |
Series | fsx: make fsx perceptive to cluster size | expand |
On Fri, Apr 24, 2020 at 05:33:50PM +0800, Jeffle Xu wrote: > Inserting and collapsing range on ext4 with 'bigalloc' feature will > fail due to the offset and size should be alligned with the cluster > size. > > The previous patch has add support for cluster size in fsx. Detect and > pass the cluster size parameter to fsx if the underlying filesystem > is ext4 with bigalloc. > > Signed-off-by: Jeffle Xu <jefflexu@linux.alibaba.com> > --- > common/rc | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/common/rc b/common/rc > index 2000bd9..71dde5f 100644 > --- a/common/rc > +++ b/common/rc > @@ -3908,6 +3908,15 @@ run_fsx() > { > echo fsx $@ > local args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"` > + > + if [ "$FSTYP" == "ext4" ]; then > + local cluster_size=$(tune2fs -l $TEST_DEV | grep 'Cluster size' | awk '{print $3}') > + if [ -n $cluster_size ]; then > + echo "cluster size: $cluster_size" > + args="$args -u $cluster_size" > + fi > + fi Computing the file allocation block size ought to be a separate helper. I wonder if there's a standard way to report cluster sizes, seeing as fat, ext4, ocfs2, and xfs can all have minimum space allocation units that are larger than the base fs block size. --D > + > set -- $here/ltp/fsx $args $FSX_AVOID $TEST_DIR/junk > echo "$@" >>$seqres.full > rm -f $TEST_DIR/junk > -- > 1.8.3.1 >
diff --git a/common/rc b/common/rc index 2000bd9..71dde5f 100644 --- a/common/rc +++ b/common/rc @@ -3908,6 +3908,15 @@ run_fsx() { echo fsx $@ local args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"` + + if [ "$FSTYP" == "ext4" ]; then + local cluster_size=$(tune2fs -l $TEST_DEV | grep 'Cluster size' | awk '{print $3}') + if [ -n $cluster_size ]; then + echo "cluster size: $cluster_size" + args="$args -u $cluster_size" + fi + fi + set -- $here/ltp/fsx $args $FSX_AVOID $TEST_DIR/junk echo "$@" >>$seqres.full rm -f $TEST_DIR/junk
Inserting and collapsing range on ext4 with 'bigalloc' feature will fail due to the offset and size should be alligned with the cluster size. The previous patch has add support for cluster size in fsx. Detect and pass the cluster size parameter to fsx if the underlying filesystem is ext4 with bigalloc. Signed-off-by: Jeffle Xu <jefflexu@linux.alibaba.com> --- common/rc | 9 +++++++++ 1 file changed, 9 insertions(+)