From: Mark Tinguely <tinguely@sgi.com>
To: Dave Chinner <david@fromorbit.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH] xfstest: ensure small symlink is removed
Date: Fri, 14 Jun 2013 08:23:32 -0500 [thread overview]
Message-ID: <51BB1954.5060801@sgi.com> (raw)
In-Reply-To: <20130614021107.GQ29338@dastard>
On 06/13/13 21:11, Dave Chinner wrote:
> On Thu, Jun 13, 2013 at 10:10:08AM -0500, Mark Tinguely wrote:
>> Tests that XFS symlinks that are small enough to be in the
>> inode, but were move to a remote symlink due to an extended
>> attribute were correctly removed.
>>
>> Signed-off-by: Mark Tinguely<tinguely@sgi.com>
>> ---
>> new/xfstests/tests/xfs/298 | 92 +++++++++++++++++++++++++++++++++++++++++
>> new/xfstests/tests/xfs/298.out | 33 ++++++++++++++
>> new/xfstests/tests/xfs/group | 1
>
> I don't see anything that really needs to be XFS specific about this
> test - can you make it generic?
>
>> +SYMLINK=""
>> +SYMLINK_ADD="0123456789ABCDEF01234567890ABCDEF"
>> +
>> +# test 32 to 512 byte symlink. This should make sure that 256 and
>> +# 512 byte inodes version 2 and 3 are covered.
>
> Better to test all the way to MAXPATHLEN, rather than just an
> arbitrary sub-range of the possible symlink ranges.
Nod. I was not covering the 1K inode.
>
>> +LOOP=16
>> +SIZE=32
>> +while [ $LOOP -gt 0 ];do
>
> while [ $SIZE -le 512 ]; do
and eliminate one variable!
>
>> + _scratch_mount>/dev/null 2>&1
>> + cd $SCRATCH_MNT
>> + echo "Testing symlink size $SIZE"
>> + SYMLINK="${SYMLINK}${SYMLINK_ADD}"
>> + ln -s $SYMLINK $SYMLINK_FILE> /dev/null 2>&1
>> +
>> + inode=`ls -li $SYMLINK_FILE | awk '{print $1}'`
>> +# add the extended attributes
>> + attr -Rs 1234567890ab $SYMLINK_FILE< /dev/null> /dev/null 2>&1
>> + attr -Rs 1234567890ac $SYMLINK_FILE< /dev/null> /dev/null 2>&1
>> + attr -Rs 1234567890ad $SYMLINK_FILE< /dev/null> /dev/null 2>&1
>> +# remove the extended attributes
>> + attr -Rr 1234567890ab $SYMLINK_FILE> /dev/null 2>&1
>> + attr -Rr 1234567890ac $SYMLINK_FILE> /dev/null 2>&1
>> + attr -Rr 1234567890ad $SYMLINK_FILE> /dev/null 2>&1
>> +# remove the symlink - make sure ifree removes the remote symlink.
>> + rm $SYMLINK_FILE
>> +# umount and check the number of extents on the inode. Should be 0.
>> + cd
>> + _scratch_unmount>/dev/null 2>&1
>> + $XFS_DB_PROG -c "inode $inode" -c "p core.nextents" $SCRATCH_DEV
>
> I'm not sure that's actually a valid thing to do - the inode has
> been removed, so the underlying inode chunk may have been removed
> and hence marked stale rather than been written back. Hence you
> cannot rely on xfs_db being able to print the extent count after the
> inode has been unlinked and the filesystem unmounted.
>
> As it is, it's not really necessary for the test to detect the
> problem that you found, right? i.e. that the kernel would assert
> fail? If you drop the xfs_db stuff here, then the test is generic...
It will ASSERT on a debug kernel, but put this test so it would still
fail in the debug case.
>
>> --- a/new/xfstests/tests/xfs/group
>> +++ b/new/xfstests/tests/xfs/group
>> @@ -177,3 +177,4 @@
>> 295 auto logprint quick
>> 296 dump auto quick
>> 297 auto freeze
>> +298 auto attr symlink
>
> + quick.
Okay, I had it in but removed it at the last minute.
>
> Cheers,
>
> Dave.
Thanks.
--Mark.
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
prev parent reply other threads:[~2013-06-14 13:23 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20130613151007.449190598@sgi.com>
2013-06-13 15:10 ` [PATCH] xfstest: ensure small symlink is removed Mark Tinguely
2013-06-14 2:11 ` Dave Chinner
2013-06-14 13:23 ` Mark Tinguely [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51BB1954.5060801@sgi.com \
--to=tinguely@sgi.com \
--cc=david@fromorbit.com \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox