• Mimi Zohar's avatar
    ima: replace GFP_KERNEL with GFP_NOFS · c09c59e6
    Mimi Zohar authored
    While running fsstress tests on the NFSv4 mounted ext3 and ext4
    filesystem, the following call trace was generated on the nfs
    server machine.
    
    Replace GFP_KERNEL with GFP_NOFS in ima_iint_insert() to avoid a
    potential deadlock.
    
         =================================
        [ INFO: inconsistent lock state ]
        2.6.31-31.el6.x86_64 #1
        ---------------------------------
        inconsistent {RECLAIM_FS-ON-W} -> {IN-RECLAIM_FS-W} usage.
        kswapd2/75 [HC0[0]:SC0[0]:HE1:SE1] takes:
         (jbd2_handle){+.+.?.}, at: [<ffffffff811edd5e>] jbd2_journal_start+0xfe/0x13f
        {RECLAIM_FS-ON-W} state was registered at:
          [<ffffffff81091e40>] mark_held_locks+0x65/0x99
          [<ffffffff81091f31>] lockdep_trace_alloc+0xbd/0xf5
          [<ffffffff81126fdd>] kmem_cache_alloc+0x40/0x185
          [<ffffffff812344d7>] ima_iint_insert+0x3d/0xf1
          [<ffffffff812345b0>] ima_inode_alloc+0x25/0x44
          [<ffffffff811484ac>] inode_init_always+0xec/0x271
          [<ffffffff81148682>] alloc_inode+0x51/0xa1
          [<ffffffff81148700>] new_inode+0x2e/0x94
          [<ffffffff811b2f08>] ext4_new_inode+0xb8/0xdc9
          [<ffffffff811be611>] ext4_create+0xcf/0x175
          [<ffffffff8113e2cd>] vfs_create+0x82/0xb8
          [<ffffffff8113f337>] do_filp_open+0x32c/0x9ee
          [<ffffffff811309b9>] do_sys_open+0x6c/0x12c
          [<ffffffff81130adc>] sys_open+0x2e/0x44
          [<ffffffff81011e42>] system_call_fastpath+0x16/0x1b
          [<ffffffffffffffff>] 0xffffffffffffffff
        irq event stamp: 90371
        hardirqs last  enabled at (90371): [<ffffffff8112708d>]
        kmem_cache_alloc+0xf0/0x185
        hardirqs last disabled at (90370): [<ffffffff81127026>]
        kmem_cache_alloc+0x89/0x185
        softirqs last  enabled at (89492): [<ffffffff81068ecf>]
        __do_softirq+0x1bf/0x1eb
        softirqs last disabled at (89477): [<ffffffff8101312c>] call_softirq+0x1c/0x30
    
        other info that might help us debug this:
        2 locks held by kswapd2/75:
         #0:  (shrinker_rwsem){++++..}, at: [<ffffffff810f98ba>] shrink_slab+0x44/0x177
         #1:  (&type->s_umount_key#25){++++..}, at: [<ffffffff811450ba>]
    Reported-by: default avatarMuni P. Beerakam <mbeeraka@in.ibm.com>
    Reported-by: default avatarAmit K. Arora <amitarora@in.ibm.com>
    Cc: stable@kernel.org
    Signed-off-by: default avatarMimi Zohar <zohar@us.ibm.com>
    Signed-off-by: default avatarJames Morris <jmorris@namei.org>
    c09c59e6
ima_iint.c 4.82 KB