• Milosz Tanski's avatar
    ceph: hung on ceph fscache invalidate in some cases · c6c0d18b
    Milosz Tanski authored
    commit ffc79664 upstream.
    
    In some cases I'm on my ceph client cluster I'm seeing hunk kernel tasks in
    the invalidate page code path. This is due to the fact that we don't check if
    the page is marked as cache before calling fscache_wait_on_page_write().
    
    This is the log from the hang
    
    INFO: task XXXXXX:12034 blocked for more than 120 seconds.
    "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
     ...
    Call Trace:
    [<ffffffff81568d09>] schedule+0x29/0x70
    [<ffffffffa01d4cbd>] __fscache_wait_on_page_write+0x6d/0xb0 [fscache]
    [<ffffffff81083520>] ? add_wait_queue+0x60/0x60
    [<ffffffffa029a3e9>] ceph_invalidate_fscache_page+0x29/0x50 [ceph]
    [<ffffffffa027df00>] ceph_invalidatepage+0x70/0x190 [ceph]
    [<ffffffff8112656f>] ? delete_from_page_cache+0x5f/0x70
    [<ffffffff81133cab>] truncate_inode_page+0x8b/0x90
    [<ffffffff81133ded>] truncate_inode_pages_range.part.12+0x13d/0x620
    [<ffffffff8113431d>] truncate_inode_pages_range+0x4d/0x60
    [<ffffffff811343b5>] truncate_inode_pages+0x15/0x20
    [<ffffffff8119bbf6>] evict+0x1a6/0x1b0
    [<ffffffff8119c3f3>] iput+0x103/0x190
     ...
    Signed-off-by: default avatarMilosz Tanski <milosz@adfin.com>
    Reviewed-by: default avatarSage Weil <sage@inktank.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    c6c0d18b
cache.c 9.49 KB