Re: [PATCH] fscache: check consistency does not decrement refcount

From: Milosz Tanski
Date: Mon Sep 09 2013 - 14:54:31 EST


David,

Can I get a sign off on this?

Thanks,
- Milosz

On Mon, Sep 9, 2013 at 2:28 PM, Milosz Tanski <milosz@xxxxxxxxx> wrote:
> __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: Milosz Tanski <milosz@xxxxxxxxx>
> ---
> fs/fscache/cookie.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
> index 318e843..b2a86e3 100644
> --- a/fs/fscache/cookie.c
> +++ b/fs/fscache/cookie.c
> @@ -586,7 +586,8 @@ int __fscache_check_consistency(struct fscache_cookie *cookie)
>
> fscache_operation_init(op, NULL, NULL);
> op->flags = FSCACHE_OP_MYTHREAD |
> - (1 << FSCACHE_OP_WAITING);
> + (1 << FSCACHE_OP_WAITING) |
> + (1 << FSCACHE_OP_UNUSE_COOKIE);
>
> spin_lock(&cookie->lock);
>
> --
> 1.7.9.5
>
--
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/