Re: [PATCH v3] common/rc: add filter in _test_inode_flag

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]




----- 原始邮件 -----
> 发件人: "Zorro Lang" <zlang@xxxxxxxxxx>
> 收件人: "XiaoLi Feng" <xifeng@xxxxxxxxxx>
> 抄送: fstests@xxxxxxxxxxxxxxx
> 发送时间: 星期四, 2021年 2 月 18日 下午 9:41:34
> 主题: Re: [PATCH v3] common/rc: add filter in _test_inode_flag
> 
> On Thu, Feb 18, 2021 at 04:57:52PM +0800, XiaoLi Feng wrote:
> > From: Xiaoli Feng <xifeng@xxxxxxxxxx>
> > 
> > Add _filter_testdir_and_scratch to avoid _test_inode_flag failed when
> > mount point contains flag string.
> > 
> > Signed-off-by: Xiaoli Feng <xifeng@xxxxxxxxxx>
> > ---
> >  common/rc | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/common/rc b/common/rc
> > index 649b1cfd..473188c1 100644
> > --- a/common/rc
> > +++ b/common/rc
> > @@ -3112,7 +3112,7 @@ _test_inode_flag()
> >  	local flag=$1
> >  	local file=$2
> >  
> > -	if $XFS_IO_PROG -r -c 'lsattr -v' "$file" | grep -q "$flag" ; then
> > +	if $XFS_IO_PROG -r -c 'lsattr -v' "$file" | _filter_testdir_and_scratch |
> > grep -q "$flag" ; then
> 
> I can't understand that. Could you give us an example about why we need this
> filter before "quiet grep"? I think this line doesn't have any output
> (except xfs_io fails), so why a filter is needed?

Oh, I just saw your reply for V1 patch review:

"When test generic/608 for dax on xfs, "_check_xflag $t_file 0" is always
failed if the $f_file has dax string. Yes, here should also include filter
for TEST_DIR."

The _check_xflag() function as below:

_check_xflag()
{
        local target=$1
        local exp_xflag=$2

        if [ $exp_xflag -eq 0 ]; then
                _test_inode_flag dax $target && echo "$target has unexpected FS_XFLAG_DAX flag"
        else
                _test_inode_flag dax $target || echo "$target doesn't have expected FS_XFLAG_DAX flag"
        fi
}

Sure, if the $1 is something likes "/mnt/scratch/file", later echo "$target ...." will print "/mnt/scratch".
If you're trying to fix this issue, I think you should filter the "$target" in or behind _check_xflag(),
not in _test_inode_flag() which has no output.

Thanks,
Zorro

> 
> Thanks,
> Zorro
> 
> >  		return 0
> >  	fi
> >  	return 1
> > --
> > 2.18.1
> > 
> 





[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux