kernel_optimize_test/fs/xfs
Dave Chinner f112a04971 xfs: lockdep needs to know about 3 dquot-deep nesting
Michael Semon reported that xfs/299 generated this lockdep warning:

=============================================
[ INFO: possible recursive locking detected ]
3.12.0-rc2+ #2 Not tainted
---------------------------------------------
touch/21072 is trying to acquire lock:
 (&xfs_dquot_other_class){+.+...}, at: [<c12902fb>] xfs_trans_dqlockedjoin+0x57/0x64

but task is already holding lock:
 (&xfs_dquot_other_class){+.+...}, at: [<c12902fb>] xfs_trans_dqlockedjoin+0x57/0x64

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&xfs_dquot_other_class);
  lock(&xfs_dquot_other_class);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

7 locks held by touch/21072:
 #0:  (sb_writers#10){++++.+}, at: [<c11185b6>] mnt_want_write+0x1e/0x3e
 #1:  (&type->i_mutex_dir_key#4){+.+.+.}, at: [<c11078ee>] do_last+0x245/0xe40
 #2:  (sb_internal#2){++++.+}, at: [<c122c9e0>] xfs_trans_alloc+0x1f/0x35
 #3:  (&(&ip->i_lock)->mr_lock/1){+.+...}, at: [<c126cd1b>] xfs_ilock+0x100/0x1f1
 #4:  (&(&ip->i_lock)->mr_lock){++++-.}, at: [<c126cf52>] xfs_ilock_nowait+0x105/0x22f
 #5:  (&dqp->q_qlock){+.+...}, at: [<c12902fb>] xfs_trans_dqlockedjoin+0x57/0x64
 #6:  (&xfs_dquot_other_class){+.+...}, at: [<c12902fb>] xfs_trans_dqlockedjoin+0x57/0x64

The lockdep annotation for dquot lock nesting only understands
locking for user and "other" dquots, not user, group and quota
dquots. Fix the annotations to match the locking heirarchy we now
have.

Reported-by: Michael L. Semon <mlsemon35@gmail.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
2013-09-30 17:48:25 -05:00
..
Kconfig
kmem.c xfs: factor all the kmalloc-or-vmalloc fallback allocations 2013-09-10 13:57:03 -05:00
kmem.h xfs: factor all the kmalloc-or-vmalloc fallback allocations 2013-09-10 13:57:03 -05:00
Makefile
mrlock.h
time.h
uuid.c
uuid.h
xfs_acl.c xfs: factor all the kmalloc-or-vmalloc fallback allocations 2013-09-10 13:57:03 -05:00
xfs_acl.h
xfs_ag.h
xfs_alloc_btree.c
xfs_alloc_btree.h
xfs_alloc.c
xfs_alloc.h
xfs_aops.c truncate: drop 'oldsize' truncate_pagecache() parameter 2013-09-12 15:38:02 -07:00
xfs_aops.h
xfs_attr_inactive.c
xfs_attr_leaf.c
xfs_attr_leaf.h
xfs_attr_list.c
xfs_attr_remote.c
xfs_attr_remote.h
xfs_attr_sf.h
xfs_attr.c
xfs_attr.h
xfs_bit.c
xfs_bit.h
xfs_bmap_btree.c xfs: = vs == typo in ASSERT() 2013-09-12 09:42:08 -05:00
xfs_bmap_btree.h xfs: recovery of swap extents operations for CRC filesystems 2013-09-10 12:49:57 -05:00
xfs_bmap_util.c xfs: factor all the kmalloc-or-vmalloc fallback allocations 2013-09-10 13:57:03 -05:00
xfs_bmap_util.h
xfs_bmap.c xfs: fix some minor sparse warnings 2013-09-09 17:43:05 -05:00
xfs_bmap.h
xfs_btree.c xfs: recovery of swap extents operations for CRC filesystems 2013-09-10 12:49:57 -05:00
xfs_btree.h xfs: recovery of swap extents operations for CRC filesystems 2013-09-10 12:49:57 -05:00
xfs_buf_item.c xfs: lock the AIL before removing the buffer item 2013-09-24 12:31:41 -05:00
xfs_buf_item.h
xfs_buf.c super: fix for destroy lrus 2013-09-10 18:56:32 -04:00
xfs_buf.h xfs: rework buffer dispose list tracking 2013-09-10 18:56:31 -04:00
xfs_cksum.h
xfs_da_btree.c xfs: fix node forward in xfs_node_toosmall 2013-09-26 10:38:17 -05:00
xfs_da_btree.h
xfs_dinode.h
xfs_dir2_block.c
xfs_dir2_data.c
xfs_dir2_format.h
xfs_dir2_leaf.c xfs: check magic numbers in dir3 leaf verifier first 2013-09-09 17:43:58 -05:00
xfs_dir2_node.c
xfs_dir2_priv.h
xfs_dir2_readdir.c
xfs_dir2_sf.c
xfs_dir2.c
xfs_dir2.h
xfs_discard.c
xfs_discard.h
xfs_dquot_item.c xfs: fix some minor sparse warnings 2013-09-09 17:43:05 -05:00
xfs_dquot_item.h
xfs_dquot.c xfs: lockdep needs to know about 3 dquot-deep nesting 2013-09-30 17:48:25 -05:00
xfs_dquot.h
xfs_error.c
xfs_error.h
xfs_export.c
xfs_export.h
xfs_extent_busy.c xfs: fix some minor sparse warnings 2013-09-09 17:43:05 -05:00
xfs_extent_busy.h
xfs_extfree_item.c
xfs_extfree_item.h
xfs_file.c
xfs_filestream.c
xfs_filestream.h
xfs_format.h
xfs_fs.h xfs: fix XFS_IOC_FREE_EOFBLOCKS definition 2013-09-24 12:35:08 -05:00
xfs_fsops.c
xfs_fsops.h
xfs_globals.c
xfs_ialloc_btree.c
xfs_ialloc_btree.h
xfs_ialloc.c
xfs_ialloc.h
xfs_icache.c xfs: asserting lock not held during freeing not valid 2013-09-24 12:32:57 -05:00
xfs_icache.h xfs: update #2 for v3.12-rc1 2013-09-12 16:13:41 -07:00
xfs_icreate_item.c
xfs_icreate_item.h
xfs_inode_buf.c xfs: don't assert fail on bad inode numbers 2013-09-10 14:07:54 -05:00
xfs_inode_buf.h xfs: recovery of swap extents operations for CRC filesystems 2013-09-10 12:49:57 -05:00
xfs_inode_fork.c
xfs_inode_fork.h
xfs_inode_item.c
xfs_inode_item.h
xfs_inode.c
xfs_inode.h
xfs_inum.h
xfs_ioctl.c xfs: factor all the kmalloc-or-vmalloc fallback allocations 2013-09-10 13:57:03 -05:00
xfs_ioctl.h
xfs_ioctl32.c xfs: factor all the kmalloc-or-vmalloc fallback allocations 2013-09-10 13:57:03 -05:00
xfs_ioctl32.h
xfs_iomap.c
xfs_iomap.h
xfs_iops.c
xfs_iops.h
xfs_itable.c xfs: factor all the kmalloc-or-vmalloc fallback allocations 2013-09-10 13:57:03 -05:00
xfs_itable.h
xfs_linux.h
xfs_log_cil.c
xfs_log_format.h xfs: recovery of swap extents operations for CRC filesystems 2013-09-10 12:49:57 -05:00
xfs_log_priv.h
xfs_log_recover.c xfs: log recovery lsn ordering needs uuid check 2013-09-24 12:35:57 -05:00
xfs_log_recover.h
xfs_log_rlimit.c
xfs_log.c xfs: fix some minor sparse warnings 2013-09-09 17:43:05 -05:00
xfs_log.h
xfs_message.c
xfs_message.h
xfs_mount.c
xfs_mount.h
xfs_mru_cache.c
xfs_mru_cache.h
xfs_qm_bhv.c
xfs_qm_syscalls.c
xfs_qm.c super: fix for destroy lrus 2013-09-10 18:56:32 -04:00
xfs_qm.h xfs: convert dquot cache lru to list_lru 2013-09-10 18:56:31 -04:00
xfs_quota_defs.h
xfs_quota_priv.h
xfs_quota.h
xfs_quotaops.c
xfs_rtalloc.c
xfs_rtalloc.h
xfs_sb.c
xfs_sb.h
xfs_stats.c
xfs_stats.h
xfs_super.c fs: convert inode and dentry shrinking to be node aware 2013-09-10 18:56:31 -04:00
xfs_super.h
xfs_symlink_remote.c
xfs_symlink.c xfs: set remote symlink buffer type for recovery 2013-09-10 12:57:09 -05:00
xfs_symlink.h
xfs_sysctl.c
xfs_sysctl.h
xfs_trace.c
xfs_trace.h
xfs_trans_ail.c
xfs_trans_buf.c
xfs_trans_dquot.c
xfs_trans_extfree.c
xfs_trans_inode.c
xfs_trans_priv.h
xfs_trans_resv.c
xfs_trans_resv.h
xfs_trans_space.h
xfs_trans.c
xfs_trans.h
xfs_types.h
xfs_vnode.h
xfs_xattr.c
xfs.h