On Tue, Feb 03, 2015 at 03:07:18PM -0800, Jaegeuk Kim wrote:
> This patch defines dump.f2fs and logstate for f2fs's clean and dirty logs.
> And, also it adds _link_out_file_fs to specify output according to filesystem.
>
> Signed-off-by: Jaegeuk Kim <[email protected]>
> ---
> common/config | 1 +
> common/log | 20 +++++++++++++++++---
> common/rc | 22 ++++++++++++++++++++++
> 3 files changed, 40 insertions(+), 3 deletions(-)
>
> diff --git a/common/config b/common/config
> index 9fb3703..cdc2214 100644
> --- a/common/config
> +++ b/common/config
> @@ -221,6 +221,7 @@ case "$HOSTOS" in
> export MKFS_UDF_PROG="`set_prog_path mkudffs`"
> export MKFS_BTRFS_PROG="`set_btrfs_mkfs_prog_path_with_opts`"
> export MKFS_F2FS_PROG="`set_prog_path mkfs.f2fs`"
> + export DUMP_F2FS_PROG="`set_prog_path dump.f2fs`"
> export BMAP_F2FS_PROG="`set_prog_path fibmap.f2fs`"
> export BTRFS_UTIL_PROG="`set_prog_path btrfs`"
> export BTRFS_SHOW_SUPER_PROG="`set_prog_path btrfs-show-super`"
> diff --git a/common/log b/common/log
> index 87074d9..186eb4c 100644
> --- a/common/log
> +++ b/common/log
> @@ -218,11 +218,25 @@ _check_log()
>
> _print_logstate()
> {
> - _scratch_xfs_logprint -t | tee -a $seqres.full >$tmp.logprint
> - if grep -q "<DIRTY>" $tmp.logprint; then
> + case "$FSTYP" in
> + xfs)
> + _scratch_xfs_logprint -t | tee -a $seqres.full >$tmp.logprint
> + DIRTY="<DIRTY>"
> + CLEAN="<CLEAN>"
> + ;;
> + f2fs)
> + _scratch_f2fs_logprint | tee -a $seqres.full >$tmp.logprint
> + DIRTY="sudden-power-off"
> + CLEAN="unmount"
> + ;;
> + *)
> + ;;
> + esac
> +
> + if grep -q $DIRTY $tmp.logprint; then
> echo "dirty log"
> fi
> - if grep -q "<CLEAN>" $tmp.logprint; then
> + if grep -q $CLEAN $tmp.logprint; then
> echo "clean log"
> fi
The only output from this function is "clean log" or "dirty log".
so:
_scratch_xfs_logstate()
{
_scratch_xfs_logprint -t | tee -a $seqres.full | grep -q "<CLEAN>"
echo $?
}
_scratch_f2fs_logstate()
{
$DUMP_F2FS_PROG $SCRATCH_DEV | tee -a $seqres.full | grep -q "unmount"
echo $?
}
_print_logstate()
{
case "$FSTYP" in
xfs)
dirty=$(_scratch_xfs_logstate)
;;
f2fs)
dirty=$(_scratch_f2fs_logstate)
;;
*)
;;
esac
if [ $dirty -ne 0 ]; then
echo "dirty log"
else
echo "clean log"
fi
}
> +_link_out_file_fs()
> +{
> + if [ -z "$1" -o -z "$2" ]; then
> + echo Error must pass src and dst.
> + exit
> + fi
> + rm -f $2
> + ln -s $1.$FSTYP $2
> +}
Not sure why this is necessary, but I'll point that out where it is
used.
> +
> _die()
> {
> echo $@
> @@ -2435,6 +2450,13 @@ _require_dumpe2fs()
> fi
> }
>
> +_require_dumpf2fs()
> +{
> + if [ -z "$DUMP_F2FS_PROG" ]; then
> + _notrun "This test requires dump.f2fs utility."
> + fi
> +}
Actually, I'd make that
_require_logstate()
{
case "$FSTYP" in
xfs)
if [ -z "$XFS_LOGPRINT_PROG" ]; then
_notrun "This test requires xfs_logprint utility."
fi
f2fs)
if [ -z "$DUMP_F2FS_PROG" ]; then
_notrun "This test requires dump.f2fs utility."
fi
;;
*)
_notrun "$FSTYP does not support log state probing."
;;
esac
}
> +
> _require_ugid_map()
> {
> if [ ! -e /proc/self/uid_map ]; then
> --
> 2.1.1
>
>
--
Dave Chinner
[email protected]
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel