Re: [PATCH v2] xfstests: Introduce test case 285 to check statfs(2) will not cause ASSERT(XFS_IS_QUOTA_RUNNING(mp)) failed.

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

 



Hey Jeff,

On Fri, Apr 13, 2012 at 05:09:17PM +0800, Jeff Liu wrote:
> Call statfs(2) against a project directory cause ASSERT(XFS_IS_QUOTA_RUNNING(mp)) at xfs_qm_dqget() failed pre-vanilla kernel-3.4
> if the "pquota" or "prjquota" mount option was not enabled on the underlying partition.  This test case can help checking it.
> 
> [15002.359375] XFS: Assertion failed: *nmap >= 1, file: fs/xfs/xfs_bmap.c, line: 4362

I'd have expected to see an xfs_qm_dqget related stack trace here.  Are you
sure that this is the one you intended to include?

Thanks,
	Ben


> [15002.359416] ------------[ cut here ]------------
> [15002.359508] kernel BUG at fs/xfs/xfs_message.c:101!
> [15002.359594] invalid opcode: 0000 [#1] SMP 
> [15002.359683] Modules linked in: xfs(O) cryptd aes_i586 aes_generic binfmt_misc ...
> [15002.361578] 
> [15002.361614] Pid: 4886, comm: seek_test Tainted: G           O 3.2.0-rc1-00306-g7f80850 #6 LENOVO 7661D43/7661D43
> [15002.361807] EIP: 0060:[<f94f9d2c>] EFLAGS: 00210246 CPU: 1
> [15002.361976] EIP is at assfail+0x47/0x57 [xfs]
> [15002.362055] EAX: 0000005c EBX: e90d4400 ECX: 00000000 EDX: 000000b6
> [15002.362162] ESI: 00000000 EDI: f39ed800 EBP: f39d7e40 ESP: f39d7e2c
> [15002.362269]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
> [15002.362366] Process seek_test (pid: 4886, ti=f39d6000 task=db5cd960 task.ti=f39d6000)
> [15002.362452] Stack:
> [15002.362452]  00000000 f95b705a f95bb47d f95ba4f4 0000110a f39d7ee4 f952a5b5 00000000
> [15002.362452]  f39d7ed0 f39d7ed4 f39d7eb0 f39d7e94 00000000 00000000 f39d7eb0 f95662ad
> [15002.362452]  00000000 00000000 00000000 f950910e e90d4438 00000001 00000000 00000000
> [15002.362452] Call Trace:
> [15002.362452]  [<f952a5b5>] xfs_bmapi_read+0x65/0x5fb [xfs]
> [15002.362452]  [<f95662ad>] ? xfs_iext_bno_to_ext+0x10b/0x231 [xfs]
> [15002.362452]  [<f950910e>] ? kmem_alloc+0x4c/0x102 [xfs]
> [15002.362452]  [<f952b808>] ? xfs_getbmapx_fix_eof_hole+0x210/0x269 [xfs]
> [15002.362452]  [<f94f7a3b>] xfs_find_desired_extent+0x37e/0x5ac [xfs]
> [15002.362452]  [<f94e6e70>] xfs_file_llseek+0xe9/0x1d8 [xfs]
> [15002.362452]  [<c1213670>] ? fsnotify_modify+0xa9/0xbf
> [15002.362452]  [<f94e6d87>] ? i_size_read+0x8f/0x8f [xfs]
> [15002.362452]  [<c1213330>] vfs_llseek+0x76/0x8a
> [15002.362452]  [<c1213ebf>] sys_lseek+0x78/0xc7
> [15002.362452]  [<c1814814>] syscall_call+0x7/0xb
> [15002.362452] Code: 10 89 54 24 0c 89 44 24 08 c7 44 24 04 5a 70 5b f9 c7 04 24 00 00 00 00 e8 ad fc ff ff 83 05 305 ...
> [15002.362452] EIP: [<f94f9d2c>] assfail+0x47/0x57 [xfs] SS:ESP 0068:f39d7e2c
> [15002.466588] ---[ end trace ce044edd5a2cbfa7 ]---
> 
> 
> Signed-off-by: Jie Liu <jeff.liu@xxxxxxxxxx>
> 
> ---
>  285     |   75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  285.out |    2 +
>  group   |    1 +
>  3 files changed, 78 insertions(+), 0 deletions(-)
>  create mode 100755 285
>  create mode 100644 285.out
> 
> diff --git a/285 b/285
> new file mode 100755
> index 0000000..9084fbb
> --- /dev/null
> +++ b/285
> @@ -0,0 +1,75 @@
> +#! /bin/bash
> +# FS QA Test No. 285
> +#
> +# This test verify statfs(2) against a project directory will not cause
> +# ASSERT(XFS_IS_QUOTA_RUNNING(mp)) at xfs_qm_dqget() failed if the project
> +# quota option was not enabled on the underlying partition.  It was failed
> +# pre-vanilla kernel 3.4.
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2012 Oracle Liu Jie.  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  021101301  USA
> +# ---------------------------------------------------------------------
> +#
> +# creator
> +owner=jeff.liu@xxxxxxxxxx
> +
> +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 /
> +	umount $SCRATCH_MNT 2>/dev/null
> +	rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common.rc
> +. ./common.filter
> +. ./common.quota
> +
> +echo "Silence is golden."
> +
> +# Modify as appropriate.
> +_supported_fs xfs
> +_supported_os Linux
> +_require_xfs_quota
> +_require_scratch
> +
> +proj_dir="${SCRATCH_MNT}/test_project"
> +test_file="${proj_dir}/test_file"
> +
> +_scratch_mkfs_xfs			>/dev/null 2>&1
> +_qmount
> +
> +mkdir $proj_dir
> +touch $test_file
> +
> +$XFS_QUOTA_PROG -x -c "project -s -p ${proj_dir} 2012" $SCRATCH_DEV \
> +					>/dev/null 2>&1
> +du -sh $proj_dir			>/dev/null 2>&1
> +
> +# Clean up
> +rm -rf $proj_dir
> +_scratch_unmount
> +
> +status=0
> +exit
> diff --git a/285.out b/285.out
> new file mode 100644
> index 0000000..18b5787
> --- /dev/null
> +++ b/285.out
> @@ -0,0 +1,2 @@
> +QA output created by 285
> +Silence is golden.
> diff --git a/group b/group
> index 104ed35..51ee3fd 100644
> --- a/group
> +++ b/group
> @@ -403,3 +403,4 @@ deprecated
>  282 dump ioctl auto quick
>  283 dump ioctl auto quick
>  284 auto
> +285 auto quick quota
> -- 
> 1.7.9
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs


[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux