diff options
author | Jeff Liu <jeff.liu@oracle.com> | 2012-06-07 15:44:32 +0800 |
---|---|---|
committer | Ben Myers <bpm@sgi.com> | 2012-06-20 14:58:24 -0500 |
commit | 3b876c8f2a361ceeed3fed894980c69066f903a0 (patch) | |
tree | 13d2eff1e5eb382e97746bbff615d5601efa58e9 | |
parent | 66f9311381b4772003d595fb6c518f1647450db0 (diff) | |
download | linux-3.10-3b876c8f2a361ceeed3fed894980c69066f903a0.tar.gz linux-3.10-3b876c8f2a361ceeed3fed894980c69066f903a0.tar.bz2 linux-3.10-3b876c8f2a361ceeed3fed894980c69066f903a0.zip |
xfs: fix debug_object WARN at xfs_alloc_vextent()
Fengguang reports:
[ 780.529603] XFS (vdd): Ending clean mount
[ 781.454590] ODEBUG: object is on stack, but not annotated
[ 781.455433] ------------[ cut here ]------------
[ 781.455433] WARNING: at /c/kernel-tests/sound/lib/debugobjects.c:301 __debug_object_init+0x173/0x1f1()
[ 781.455433] Hardware name: Bochs
[ 781.455433] Modules linked in:
[ 781.455433] Pid: 26910, comm: kworker/0:2 Not tainted 3.4.0+ #51
[ 781.455433] Call Trace:
[ 781.455433] [<ffffffff8106bc84>] warn_slowpath_common+0x83/0x9b
[ 781.455433] [<ffffffff8106bcb6>] warn_slowpath_null+0x1a/0x1c
[ 781.455433] [<ffffffff814919a5>] __debug_object_init+0x173/0x1f1
[ 781.455433] [<ffffffff81491c65>] debug_object_init+0x14/0x16
[ 781.455433] [<ffffffff8108842a>] __init_work+0x20/0x22
[ 781.455433] [<ffffffff8134ea56>] xfs_alloc_vextent+0x6c/0xd5
Use INIT_WORK_ONSTACK in xfs_alloc_vextent instead of INIT_WORK.
Reported-by: Wu Fengguang <wfg@linux.intel.com>
Signed-off-by: Jie Liu <jeff.liu@oracle.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
-rw-r--r-- | fs/xfs/xfs_alloc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 229641fb8e6..a996e398692 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -2441,7 +2441,7 @@ xfs_alloc_vextent( DECLARE_COMPLETION_ONSTACK(done); args->done = &done; - INIT_WORK(&args->work, xfs_alloc_vextent_worker); + INIT_WORK_ONSTACK(&args->work, xfs_alloc_vextent_worker); queue_work(xfs_alloc_wq, &args->work); wait_for_completion(&done); return args->result; |