Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756195Ab3IISy1 (ORCPT ); Mon, 9 Sep 2013 14:54:27 -0400 Received: from mail-we0-f178.google.com ([74.125.82.178]:50583 "EHLO mail-we0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754172Ab3IISyY (ORCPT ); Mon, 9 Sep 2013 14:54:24 -0400 MIME-Version: 1.0 In-Reply-To: References: Date: Mon, 9 Sep 2013 14:54:23 -0400 Message-ID: Subject: Re: [PATCH] fscache: check consistency does not decrement refcount From: Milosz Tanski To: David Howells Cc: Sage Weil , "Yan, Zheng" , "linux-cachefs@redhat.com" , "linux-fsdevel@vger.kernel.org" , linux-kernel@vger.kernel.org, ceph-devel Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2183 Lines: 57 David, Can I get a sign off on this? Thanks, - Milosz On Mon, Sep 9, 2013 at 2:28 PM, Milosz Tanski 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: > [] ? _raw_spin_unlock_irqrestore+0x16/0x20 > [] ? fscache_wait_bit_interruptible+0x30/0x30 [fscache] > [] schedule+0x29/0x70 > [] fscache_wait_atomic_t+0xe/0x20 [fscache] > [] out_of_line_wait_on_atomic_t+0x9f/0xe0 > [] ? autoremove_wake_function+0x40/0x40 > [] __fscache_relinquish_cookie+0x15c/0x310 [fscache] > [] ceph_fscache_unregister_inode_cookie+0x3e/0x50 [ceph] > [] ceph_destroy_inode+0x33/0x200 [ceph] > [] ? __fsnotify_inode_delete+0xe/0x10 > [] destroy_inode+0x3c/0x70 > [] evict+0x119/0x1b0 > > Signed-off-by: Milosz Tanski > --- > 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/