Re: [PATCH] nfs: init req_lock in nfs_alloc_inode

From: Trond Myklebust
Date: Tue Feb 20 2007 - 10:10:37 EST


On Fri, 2007-02-16 at 11:05 -0600, Olof Johansson wrote:
> Seems like req_lock is never initialized. CONFIG_DEBUG_SPINLOCK reported:
>
> BUG: spinlock bad magic on CPU#0, mount/1073
> lock: c00000007fdca108, .magic: 00000000, .owner: /24576, .owner_cpu: 0
> Call Trace:
> [C00000007E913750] [C0000000000107B4] .show_stack+0x54/0x1f0 (unreliable)
> [C00000007E913800] [C0000000001D2234] .spin_bug+0xa4/0x120
> [C00000007E913890] [C0000000001D247C] ._raw_spin_lock+0xdc/0x1d0
> [C00000007E913930] [C0000000004DF990] ._spin_lock+0x10/0x30
> [C00000007E9139B0] [C00000000017623C] .nfs_sync_mapping_wait+0xac/0x310
> [C00000007E913AA0] [C000000000176F18] .nfs_sync_mapping_range+0x98/0x110
> [C00000007E913B80] [C00000000016CAA0] .nfs_getattr+0x40/0xf0
> [C00000007E913C20] [C0000000000BE668] .vfs_getattr+0x38/0x70
> [C00000007E913CA0] [C0000000000BF05C] .vfs_fstat+0x3c/0x70
> [C00000007E913D30] [C0000000000BF0B8] .sys_fstat64+0x28/0x60
> [C00000007E913E30] [C000000000008608] syscall_exit+0x0/0x40
>
>
> Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
>
> ---
>
> Trond, is your MAINTAINERS entry up to date? Seems like you mostly post
> from @netapp.com these days.

I tend to be easier to get hold of via the fys.uio.no address, since
that isn't hidden behind a VPN. I use the netapp.com address when
posting patches etc since that is sort of required by the developers
certificate of origin.

> Index: linux-2.6/fs/nfs/inode.c
> ===================================================================
> --- linux-2.6.orig/fs/nfs/inode.c
> +++ linux-2.6/fs/nfs/inode.c
> @@ -1123,6 +1123,7 @@ struct inode *nfs_alloc_inode(struct sup
> nfsi->flags = 0UL;
> nfsi->cache_validity = 0UL;
> nfsi->cache_change_attribute = jiffies;
> + nfsi->req_lock = SPIN_LOCK_UNLOCKED;
> #ifdef CONFIG_NFS_V3_ACL
> nfsi->acl_access = ERR_PTR(-EAGAIN);
> nfsi->acl_default = ERR_PTR(-EAGAIN);

As Andrew implied, this spin lock should already be initialised by the
slab allocator in the "init_once" callback. Is this a vanilla kernel, or
do you have any extra patches applied?

Cheers
Trond

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/