• Milosz Tanski's avatar
    fscache: check consistency does not decrement refcount · 9c89d629
    Milosz Tanski authored
    __fscache_check_consistency() does not decrement the count of operations
    active after it finishes in the success case. This leads to a hung tasks on
    cookie de-registration (commonly in inode eviction).
    
    INFO: task kworker/1:2:4214 blocked for more than 120 seconds.
    kworker/1:2     D ffff880443513fc0     0  4214      2 0x00000000
    Workqueue: ceph-msgr con_work [libceph]
      ...
    Call Trace:
     [<ffffffff81569fc6>] ? _raw_spin_unlock_irqrestore+0x16/0x20
     [<ffffffffa0016570>] ? fscache_wait_bit_interruptible+0x30/0x30 [fscache]
     [<ffffffff81568d09>] schedule+0x29/0x70
     [<ffffffffa001657e>] fscache_wait_atomic_t+0xe/0x20 [fscache]
     [<ffffffff815665cf>] out_of_line_wait_on_atomic_t+0x9f/0xe0
     [<ffffffff81083560>] ? autoremove_wake_function+0x40/0x40
     [<ffffffffa0015a9c>] __fscache_relinquish_cookie+0x15c/0x310 [fscache]
     [<ffffffffa00a4fae>] ceph_fscache_unregister_inode_cookie+0x3e/0x50 [ceph]
     [<ffffffffa007e373>] ceph_destroy_inode+0x33/0x200 [ceph]
     [<ffffffff811c13ae>] ? __fsnotify_inode_delete+0xe/0x10
     [<ffffffff8119ba1c>] destroy_inode+0x3c/0x70
     [<ffffffff8119bb69>] evict+0x119/0x1b0
    Signed-off-by: default avatarMilosz Tanski <milosz@adfin.com>
    Acked-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarSage Weil <sage@inktank.com>
    9c89d629
cookie.c 16.4 KB