* [PATCH] xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux
@ 2013-10-18 4:16 Eric Sandeen
2013-10-18 4:48 ` Eryu Guan
2013-10-18 16:23 ` [PATCH V2] " Eric Sandeen
0 siblings, 2 replies; 7+ messages in thread
From: Eric Sandeen @ 2013-10-18 4:16 UTC (permalink / raw)
To: xfs-oss
In some cases selinux's creation of an xattr on the temporary
fd creates a local xattr, but the file we are trying to
defragment has attrs in extent format, and the forkoff mismatch
will cause xfs_fsr to fail. This test demonstrates it; I
have old patches sent to the list long ago that should fix
it. I'll resend them soon.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
diff --git a/tests/xfs/351 b/tests/xfs/351
new file mode 100755
index 0000000..b21ba7a
--- /dev/null
+++ b/tests/xfs/351
@@ -0,0 +1,89 @@
+#! /bin/bash
+# FS QA Test No. 350
+#
+# Test xfs_fsr / swapext management of di_forkoff w/ selinux
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2013 Red Hat, Inc. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#-----------------------------------------------------------------------
+#
+# creator
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ cd /
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+_require_scratch
+
+# real QA test starts here
+
+_supported_fs xfs
+_supported_os Linux
+
+getenforce | grep -q "Enforcing\|Permissive" || _notrun "SELinux not enabled"
+[ "$XFS_FSR_PROG" = "" ] && _notrun "xfs_fsr not found"
+
+rm -f $seqres.full
+
+_scratch_mkfs_xfs -i size=256 >> $seq.full 2>&1 || _fail "mkfs failed"
+
+# Manually mount to avoid fs-wide context set by default in xfstests
+mount $SCRATCH_DEV $SCRATCH_MNT
+
+touch $SCRATCH_MNT/$seq.test
+
+# Create an extents-format attribute on a file
+xfs_io -f -c "pwrite -S 0x63 0 4096" $SCRATCH_MNT/attrvals 2>&1 &> $seqres.full
+cat $SCRATCH_MNT/attrvals | attr -s name $SCRATCH_MNT/$seq.test 2>&1 &> $seqres.full
+
+# Fragment the file by writing backwards
+for I in `seq 6 -1 0`; do
+ dd if=/dev/zero of=$SCRATCH_MNT/$seq.test seek=$I bs=4k \
+ oflag=direct count=1 conv=notrunc 2>&1 &> $seqres.full
+done
+
+# See if xfs_fsr works.
+
+# The target file now has a non-local attribute, but the
+# fsr temp file gets assigned a local attribute on creation,
+# due to selinux.
+
+# In this case, the large-ish selinux attr will create a forkoff
+# in the temp file smaller than the forkoff in the target file,
+# because the FMT_EXTENTS attr takes up less space. If there is
+# no mechanism to grow the temp forkoff to match, we can end up
+# failing to swap these 2 inodes if the result is not enough
+# data space in the temp inode as a result.
+
+$XFS_FSR_PROG -v $SCRATCH_MNT/$seq.test | _filter_scratch
+
+# success, all done
+status=0
+exit
diff --git a/tests/xfs/351.out b/tests/xfs/351.out
new file mode 100644
index 0000000..86cbe5d
--- /dev/null
+++ b/tests/xfs/351.out
@@ -0,0 +1,3 @@
+QA output created by 351
+SCRATCH_MNT/351.test
+extents before:6 after:1 DONE SCRATCH_MNT/351.test
diff --git a/tests/xfs/group b/tests/xfs/group
index acb92ac..da76770 100644
--- a/tests/xfs/group
+++ b/tests/xfs/group
@@ -180,4 +180,4 @@
298 auto attr symlink quick
299 auto quota
350 auto dump quota
-
+351 auto fsr
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH] xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux
2013-10-18 4:16 [PATCH] xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux Eric Sandeen
@ 2013-10-18 4:48 ` Eryu Guan
2013-10-18 5:04 ` Eric Sandeen
2013-10-18 16:23 ` [PATCH V2] " Eric Sandeen
1 sibling, 1 reply; 7+ messages in thread
From: Eryu Guan @ 2013-10-18 4:48 UTC (permalink / raw)
To: Eric Sandeen; +Cc: xfs-oss
On Thu, Oct 17, 2013 at 11:16:45PM -0500, Eric Sandeen wrote:
> In some cases selinux's creation of an xattr on the temporary
> fd creates a local xattr, but the file we are trying to
> defragment has attrs in extent format, and the forkoff mismatch
> will cause xfs_fsr to fail. This test demonstrates it; I
> have old patches sent to the list long ago that should fix
> it. I'll resend them soon.
>
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> ---
>
> diff --git a/tests/xfs/351 b/tests/xfs/351
> new file mode 100755
> index 0000000..b21ba7a
> --- /dev/null
> +++ b/tests/xfs/351
> @@ -0,0 +1,89 @@
> +#! /bin/bash
> +# FS QA Test No. 350
> +#
> +# Test xfs_fsr / swapext management of di_forkoff w/ selinux
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2013 Red Hat, Inc. All Rights Reserved.
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it would be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write the Free Software Foundation,
> +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> +#-----------------------------------------------------------------------
> +#
> +# creator
Seems we don't need "creator" in comment now.
> +
> +seq=`basename $0`
Forgot about "seqres=$RESULT_DIR/$seq" ?
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1 # failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> + cd /
> + rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +
> +_require_scratch
> +
> +# real QA test starts here
> +
> +_supported_fs xfs
> +_supported_os Linux
> +
> +getenforce | grep -q "Enforcing\|Permissive" || _notrun "SELinux not enabled"
> +[ "$XFS_FSR_PROG" = "" ] && _notrun "xfs_fsr not found"
> +
> +rm -f $seqres.full
> +
> +_scratch_mkfs_xfs -i size=256 >> $seq.full 2>&1 || _fail "mkfs failed"
> +
> +# Manually mount to avoid fs-wide context set by default in xfstests
> +mount $SCRATCH_DEV $SCRATCH_MNT
> +
> +touch $SCRATCH_MNT/$seq.test
> +
> +# Create an extents-format attribute on a file
> +xfs_io -f -c "pwrite -S 0x63 0 4096" $SCRATCH_MNT/attrvals 2>&1 &> $seqres.full
Use $XFS_IO_PROG instead?
And seems "2>&1" is redundant, "&>" can do the work.
Thanks,
Eryu Guan
> +cat $SCRATCH_MNT/attrvals | attr -s name $SCRATCH_MNT/$seq.test 2>&1 &> $seqres.full
> +
> +# Fragment the file by writing backwards
> +for I in `seq 6 -1 0`; do
> + dd if=/dev/zero of=$SCRATCH_MNT/$seq.test seek=$I bs=4k \
> + oflag=direct count=1 conv=notrunc 2>&1 &> $seqres.full
> +done
> +
> +# See if xfs_fsr works.
> +
> +# The target file now has a non-local attribute, but the
> +# fsr temp file gets assigned a local attribute on creation,
> +# due to selinux.
> +
> +# In this case, the large-ish selinux attr will create a forkoff
> +# in the temp file smaller than the forkoff in the target file,
> +# because the FMT_EXTENTS attr takes up less space. If there is
> +# no mechanism to grow the temp forkoff to match, we can end up
> +# failing to swap these 2 inodes if the result is not enough
> +# data space in the temp inode as a result.
> +
> +$XFS_FSR_PROG -v $SCRATCH_MNT/$seq.test | _filter_scratch
> +
> +# success, all done
> +status=0
> +exit
> diff --git a/tests/xfs/351.out b/tests/xfs/351.out
> new file mode 100644
> index 0000000..86cbe5d
> --- /dev/null
> +++ b/tests/xfs/351.out
> @@ -0,0 +1,3 @@
> +QA output created by 351
> +SCRATCH_MNT/351.test
> +extents before:6 after:1 DONE SCRATCH_MNT/351.test
> diff --git a/tests/xfs/group b/tests/xfs/group
> index acb92ac..da76770 100644
> --- a/tests/xfs/group
> +++ b/tests/xfs/group
> @@ -180,4 +180,4 @@
> 298 auto attr symlink quick
> 299 auto quota
> 350 auto dump quota
> -
> +351 auto fsr
>
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux
2013-10-18 4:48 ` Eryu Guan
@ 2013-10-18 5:04 ` Eric Sandeen
0 siblings, 0 replies; 7+ messages in thread
From: Eric Sandeen @ 2013-10-18 5:04 UTC (permalink / raw)
To: Eryu Guan; +Cc: Eric Sandeen, xfs-oss
On 10/17/13 11:48 PM, Eryu Guan wrote:
> On Thu, Oct 17, 2013 at 11:16:45PM -0500, Eric Sandeen wrote:
>> In some cases selinux's creation of an xattr on the temporary
>> fd creates a local xattr, but the file we are trying to
>> defragment has attrs in extent format, and the forkoff mismatch
>> will cause xfs_fsr to fail. This test demonstrates it; I
>> have old patches sent to the list long ago that should fix
>> it. I'll resend them soon.
>>
>> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
>> ---
>>
>> diff --git a/tests/xfs/351 b/tests/xfs/351
>> new file mode 100755
>> index 0000000..b21ba7a
>> --- /dev/null
>> +++ b/tests/xfs/351
>> @@ -0,0 +1,89 @@
>> +#! /bin/bash
>> +# FS QA Test No. 350
>> +#
>> +# Test xfs_fsr / swapext management of di_forkoff w/ selinux
>> +#
>> +#-----------------------------------------------------------------------
>> +# Copyright (c) 2013 Red Hat, Inc. All Rights Reserved.
>> +#
>> +# This program is free software; you can redistribute it and/or
>> +# modify it under the terms of the GNU General Public License as
>> +# published by the Free Software Foundation.
>> +#
>> +# This program is distributed in the hope that it would be useful,
>> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
>> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>> +# GNU General Public License for more details.
>> +#
>> +# You should have received a copy of the GNU General Public License
>> +# along with this program; if not, write the Free Software Foundation,
>> +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
>> +#-----------------------------------------------------------------------
>> +#
>> +# creator
>
> Seems we don't need "creator" in comment now.
yup
>> +
>> +seq=`basename $0`
>
> Forgot about "seqres=$RESULT_DIR/$seq" ?
crud. :)
...
>> +# Create an extents-format attribute on a file
>> +xfs_io -f -c "pwrite -S 0x63 0 4096" $SCRATCH_MNT/attrvals 2>&1 &> $seqres.full
>
> Use $XFS_IO_PROG instead?
yup
> And seems "2>&1" is redundant, "&>" can do the work.
heh, yeah. Ok, will tidy up and resend tomorrow.
Thanks!
-Eric
> Thanks,
> Eryu Guan
>
>> +cat $SCRATCH_MNT/attrvals | attr -s name $SCRATCH_MNT/$seq.test 2>&1 &> $seqres.full
>> +
>> +# Fragment the file by writing backwards
>> +for I in `seq 6 -1 0`; do
>> + dd if=/dev/zero of=$SCRATCH_MNT/$seq.test seek=$I bs=4k \
>> + oflag=direct count=1 conv=notrunc 2>&1 &> $seqres.full
>> +done
>> +
>> +# See if xfs_fsr works.
>> +
>> +# The target file now has a non-local attribute, but the
>> +# fsr temp file gets assigned a local attribute on creation,
>> +# due to selinux.
>> +
>> +# In this case, the large-ish selinux attr will create a forkoff
>> +# in the temp file smaller than the forkoff in the target file,
>> +# because the FMT_EXTENTS attr takes up less space. If there is
>> +# no mechanism to grow the temp forkoff to match, we can end up
>> +# failing to swap these 2 inodes if the result is not enough
>> +# data space in the temp inode as a result.
>> +
>> +$XFS_FSR_PROG -v $SCRATCH_MNT/$seq.test | _filter_scratch
>> +
>> +# success, all done
>> +status=0
>> +exit
>> diff --git a/tests/xfs/351.out b/tests/xfs/351.out
>> new file mode 100644
>> index 0000000..86cbe5d
>> --- /dev/null
>> +++ b/tests/xfs/351.out
>> @@ -0,0 +1,3 @@
>> +QA output created by 351
>> +SCRATCH_MNT/351.test
>> +extents before:6 after:1 DONE SCRATCH_MNT/351.test
>> diff --git a/tests/xfs/group b/tests/xfs/group
>> index acb92ac..da76770 100644
>> --- a/tests/xfs/group
>> +++ b/tests/xfs/group
>> @@ -180,4 +180,4 @@
>> 298 auto attr symlink quick
>> 299 auto quota
>> 350 auto dump quota
>> -
>> +351 auto fsr
>>
>>
>> _______________________________________________
>> xfs mailing list
>> xfs@oss.sgi.com
>> http://oss.sgi.com/mailman/listinfo/xfs
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
>
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH V2] xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux
2013-10-18 4:16 [PATCH] xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux Eric Sandeen
2013-10-18 4:48 ` Eryu Guan
@ 2013-10-18 16:23 ` Eric Sandeen
2013-10-18 17:26 ` Eryu Guan
2013-10-22 21:03 ` Rich Johnston
1 sibling, 2 replies; 7+ messages in thread
From: Eric Sandeen @ 2013-10-18 16:23 UTC (permalink / raw)
To: Eric Sandeen; +Cc: xfs-oss
In some cases selinux's creation of an xattr on the temporary
fd creates a local xattr, but the file we are trying to
defragment has attrs in extent format, and the forkoff mismatch
will cause xfs_fsr to fail. This test demonstrates it; I
have old patches sent to the list long ago that should fix
it. I'll resend them soon.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
V2: Address Eryu's review
diff --git a/tests/xfs/351 b/tests/xfs/351
new file mode 100755
index 0000000..13c7629
--- /dev/null
+++ b/tests/xfs/351
@@ -0,0 +1,88 @@
+#! /bin/bash
+# FS QA Test No. 351
+#
+# Test xfs_fsr / swapext management of di_forkoff w/ selinux
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2013 Red Hat, Inc. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#-----------------------------------------------------------------------
+
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ cd /
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+_require_scratch
+
+# real QA test starts here
+
+_supported_fs xfs
+_supported_os Linux
+
+getenforce | grep -q "Enforcing\|Permissive" || _notrun "SELinux not enabled"
+[ "$XFS_FSR_PROG" = "" ] && _notrun "xfs_fsr not found"
+
+rm -f $seqres.full
+
+_scratch_mkfs_xfs -i size=256 >> $seq.full 2>&1 || _fail "mkfs failed"
+
+# Manually mount to avoid fs-wide context set by default in xfstests
+mount $SCRATCH_DEV $SCRATCH_MNT
+
+touch $SCRATCH_MNT/$seq.test
+
+# Create an extents-format attribute on a file
+$XFS_IO_PROG -f -c "pwrite -S 0x63 0 4096" $SCRATCH_MNT/attrvals >> $seqres.full 2>&1
+cat $SCRATCH_MNT/attrvals | attr -s name $SCRATCH_MNT/$seq.test >> $seqres.full 2>&1
+
+# Fragment the file by writing backwards
+for I in `seq 6 -1 0`; do
+ dd if=/dev/zero of=$SCRATCH_MNT/$seq.test seek=$I bs=4k \
+ oflag=direct count=1 conv=notrunc >> $seqres.full 2>&1
+done
+
+# See if xfs_fsr works.
+
+# The target file now has a non-local attribute, but the
+# fsr temp file gets assigned a local attribute on creation,
+# due to selinux.
+
+# In this case, the large-ish selinux attr will create a forkoff
+# in the temp file smaller than the forkoff in the target file,
+# because the FMT_EXTENTS attr takes up less space. If there is
+# no mechanism to grow the temp forkoff to match, we can end up
+# failing to swap these 2 inodes if the result is not enough
+# data space in the temp inode as a result.
+
+$XFS_FSR_PROG -v $SCRATCH_MNT/$seq.test | _filter_scratch
+
+# success, all done
+status=0
+exit
diff --git a/tests/xfs/351.out b/tests/xfs/351.out
new file mode 100644
index 0000000..86cbe5d
--- /dev/null
+++ b/tests/xfs/351.out
@@ -0,0 +1,3 @@
+QA output created by 351
+SCRATCH_MNT/351.test
+extents before:6 after:1 DONE SCRATCH_MNT/351.test
diff --git a/tests/xfs/group b/tests/xfs/group
index acb92ac..da76770 100644
--- a/tests/xfs/group
+++ b/tests/xfs/group
@@ -180,4 +180,4 @@
298 auto attr symlink quick
299 auto quota
350 auto dump quota
-
+351 auto fsr
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH V2] xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux
2013-10-18 16:23 ` [PATCH V2] " Eric Sandeen
@ 2013-10-18 17:26 ` Eryu Guan
2013-10-18 17:27 ` Eric Sandeen
2013-10-22 21:03 ` Rich Johnston
1 sibling, 1 reply; 7+ messages in thread
From: Eryu Guan @ 2013-10-18 17:26 UTC (permalink / raw)
To: Eric Sandeen; +Cc: Eric Sandeen, xfs-oss
On Fri, Oct 18, 2013 at 11:23:14AM -0500, Eric Sandeen wrote:
> In some cases selinux's creation of an xattr on the temporary
> fd creates a local xattr, but the file we are trying to
> defragment has attrs in extent format, and the forkoff mismatch
> will cause xfs_fsr to fail. This test demonstrates it; I
> have old patches sent to the list long ago that should fix
> it. I'll resend them soon.
>
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> ---
>
> V2: Address Eryu's review
>
> diff --git a/tests/xfs/351 b/tests/xfs/351
> new file mode 100755
> index 0000000..13c7629
> --- /dev/null
> +++ b/tests/xfs/351
> @@ -0,0 +1,88 @@
> +#! /bin/bash
> +# FS QA Test No. 351
> +#
> +# Test xfs_fsr / swapext management of di_forkoff w/ selinux
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2013 Red Hat, Inc. All Rights Reserved.
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it would be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write the Free Software Foundation,
> +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> +#-----------------------------------------------------------------------
> +
> +seq=`basename $0`
> +seqres=$RESULT_DIR/$seq
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1 # failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> + cd /
> + rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +
> +_require_scratch
> +
> +# real QA test starts here
> +
> +_supported_fs xfs
> +_supported_os Linux
> +
> +getenforce | grep -q "Enforcing\|Permissive" || _notrun "SELinux not enabled"
> +[ "$XFS_FSR_PROG" = "" ] && _notrun "xfs_fsr not found"
> +
> +rm -f $seqres.full
> +
> +_scratch_mkfs_xfs -i size=256 >> $seq.full 2>&1 || _fail "mkfs failed"
> +
> +# Manually mount to avoid fs-wide context set by default in xfstests
> +mount $SCRATCH_DEV $SCRATCH_MNT
> +
> +touch $SCRATCH_MNT/$seq.test
> +
> +# Create an extents-format attribute on a file
> +$XFS_IO_PROG -f -c "pwrite -S 0x63 0 4096" $SCRATCH_MNT/attrvals >> $seqres.full 2>&1
> +cat $SCRATCH_MNT/attrvals | attr -s name $SCRATCH_MNT/$seq.test >> $seqres.full 2>&1
> +
> +# Fragment the file by writing backwards
> +for I in `seq 6 -1 0`; do
> + dd if=/dev/zero of=$SCRATCH_MNT/$seq.test seek=$I bs=4k \
> + oflag=direct count=1 conv=notrunc >> $seqres.full 2>&1
> +done
> +
> +# See if xfs_fsr works.
> +
> +# The target file now has a non-local attribute, but the
> +# fsr temp file gets assigned a local attribute on creation,
> +# due to selinux.
> +
There's trailing whitespaces issue here, otherwise looks good to me.
I suppose the seq number can be fixed at commit time, as well as the
trailing whitespaces.
Reviewed-by: Eryu Guan <eguan@redhat.com>
Thanks!
Eryu
BTW, test fails on 3.12-rc5 kernel
--- tests/xfs/351.out 2013-10-18 13:23:10.219847555 -0400
+++ /root/xfstests/results//xfs/351.out.bad 2013-10-18 13:24:38.014147342 -0400
@@ -1,3 +1,3 @@
QA output created by 351
SCRATCH_MNT/351.test
-extents before:6 after:1 DONE SCRATCH_MNT/351.test
+XFS_IOC_SWAPEXT failed: SCRATCH_MNT/351.test: Invalid argument
> +# In this case, the large-ish selinux attr will create a forkoff
> +# in the temp file smaller than the forkoff in the target file,
> +# because the FMT_EXTENTS attr takes up less space. If there is
> +# no mechanism to grow the temp forkoff to match, we can end up
> +# failing to swap these 2 inodes if the result is not enough
> +# data space in the temp inode as a result.
> +
> +$XFS_FSR_PROG -v $SCRATCH_MNT/$seq.test | _filter_scratch
> +
> +# success, all done
> +status=0
> +exit
> diff --git a/tests/xfs/351.out b/tests/xfs/351.out
> new file mode 100644
> index 0000000..86cbe5d
> --- /dev/null
> +++ b/tests/xfs/351.out
> @@ -0,0 +1,3 @@
> +QA output created by 351
> +SCRATCH_MNT/351.test
> +extents before:6 after:1 DONE SCRATCH_MNT/351.test
> diff --git a/tests/xfs/group b/tests/xfs/group
> index acb92ac..da76770 100644
> --- a/tests/xfs/group
> +++ b/tests/xfs/group
> @@ -180,4 +180,4 @@
> 298 auto attr symlink quick
> 299 auto quota
> 350 auto dump quota
> -
> +351 auto fsr
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH V2] xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux
2013-10-18 17:26 ` Eryu Guan
@ 2013-10-18 17:27 ` Eric Sandeen
0 siblings, 0 replies; 7+ messages in thread
From: Eric Sandeen @ 2013-10-18 17:27 UTC (permalink / raw)
To: Eryu Guan; +Cc: Eric Sandeen, xfs-oss
On 10/18/13 12:26 PM, Eryu Guan wrote:
...
> There's trailing whitespaces issue here, otherwise looks good to me.
>
> I suppose the seq number can be fixed at commit time, as well as the
> trailing whitespaces.
>
> Reviewed-by: Eryu Guan <eguan@redhat.com>
>
> Thanks!
> Eryu
>
> BTW, test fails on 3.12-rc5 kernel
Yup. (actually it's a userspace bug)
-Eric
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V2] xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux
2013-10-18 16:23 ` [PATCH V2] " Eric Sandeen
2013-10-18 17:26 ` Eryu Guan
@ 2013-10-22 21:03 ` Rich Johnston
1 sibling, 0 replies; 7+ messages in thread
From: Rich Johnston @ 2013-10-22 21:03 UTC (permalink / raw)
To: xfs
Committed as test xfs/300.
--Rich
commit 5d88b638ff4ad68f5ecce96d5d4d3a85fc4a2a5c
Author: Eric Sandeen <sandeen@sandeen.net>
Date: Fri Oct 18 16:23:14 2013 +0000
xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-10-22 21:03 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-18 4:16 [PATCH] xfstests: Test xfs_fsr / swapext management of di_forkoff w/ selinux Eric Sandeen
2013-10-18 4:48 ` Eryu Guan
2013-10-18 5:04 ` Eric Sandeen
2013-10-18 16:23 ` [PATCH V2] " Eric Sandeen
2013-10-18 17:26 ` Eryu Guan
2013-10-18 17:27 ` Eric Sandeen
2013-10-22 21:03 ` Rich Johnston
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox