diff options
author | xiao yang <yangx.jy@cn.fujitsu.com> | 2018-01-16 15:26:55 +0800 |
---|---|---|
committer | Eryu Guan <eguan@redhat.com> | 2018-01-19 11:01:44 +0800 |
commit | e33b0351dae375105680dd70582a43ad89ac4bb8 (patch) | |
tree | 0ddefae2d12eee52d48d5958333942512d34cf57 | |
parent | 1ee97207dce2db8c36f592c6853d19a7c010e3d1 (diff) | |
download | xfstests-e33b0351dae375105680dd70582a43ad89ac4bb8.tar.gz |
common/xfs: Check if write supports [-c|-d] option in xfs_db
Make sure _scratch_xfs_set_metadata_field() can be used on an
old xfsprogs-dev(e.g. v3.1.1).
The "-d" option was introduced since xfsprogs-dev v4.7.0 by commit
86769b3 ("xfs_db: allow recalculating CRCs on invalid metadata").
The special argument "--" is only used to end option-scanning
in getopt(). getopt() was introduced since xfsprogs-dev v3.2.3 by
commit c9f5e3d ("xfs_db: Allow writes of corrupted data")'.
Signed-off-by: xiao yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
-rw-r--r-- | common/xfs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/common/xfs b/common/xfs index 45b84a04f4..ab58364079 100644 --- a/common/xfs +++ b/common/xfs @@ -658,8 +658,11 @@ _scratch_xfs_set_metadata_field() for arg in "$@"; do cmds+=("-c" "${arg}") done - _scratch_xfs_db -x "${cmds[@]}" -c "write -d ${key} -- ${value}" - echo + + local wr_cmd="write" + _scratch_xfs_db -x -c "help write" | egrep -q "(-c|-d)" && value="-- ${value}" + _scratch_xfs_db -x -c "help write" | egrep -q "(-d)" && wr_cmd="${wr_cmd} -d" + _scratch_xfs_db -x "${cmds[@]}" -c "${wr_cmd} ${key} ${value}" } _scratch_xfs_get_sb_field() |