From patchwork Sun Feb 14 02:56:15 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Al Viro X-Patchwork-Id: 8301161 Return-Path: X-Original-To: patchwork-linux-fsdevel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 6CC23C02AA for ; Sun, 14 Feb 2016 02:56:22 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 94A7C203AA for ; Sun, 14 Feb 2016 02:56:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7DEF7203A9 for ; Sun, 14 Feb 2016 02:56:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751733AbcBNC4T (ORCPT ); Sat, 13 Feb 2016 21:56:19 -0500 Received: from zeniv.linux.org.uk ([195.92.253.2]:38473 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751636AbcBNC4S (ORCPT ); Sat, 13 Feb 2016 21:56:18 -0500 Received: from viro by ZenIV.linux.org.uk with local (Exim 4.76 #1 (Red Hat Linux)) id 1aUmr9-00021T-CM; Sun, 14 Feb 2016 02:56:15 +0000 Date: Sun, 14 Feb 2016 02:56:15 +0000 From: Al Viro To: Mike Marshall Cc: Martin Brandenburg , Linus Torvalds , linux-fsdevel , Stephen Rothwell Subject: Re: Orangefs ABI documentation Message-ID: <20160214025615.GU17997@ZenIV.linux.org.uk> References: <20160209221623.GI17997@ZenIV.linux.org.uk> <20160209224050.GJ17997@ZenIV.linux.org.uk> <20160209231328.GK17997@ZenIV.linux.org.uk> <20160211004432.GM17997@ZenIV.linux.org.uk> <20160212042757.GP17997@ZenIV.linux.org.uk> <20160213174738.GR17997@ZenIV.linux.org.uk> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20160213174738.GR17997@ZenIV.linux.org.uk> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On Sat, Feb 13, 2016 at 05:47:38PM +0000, Al Viro wrote: > On Sat, Feb 13, 2016 at 12:18:12PM -0500, Mike Marshall wrote: > > I added the patches, and ran a bunch of tests. > > > > Stuff works fine when left unbothered, and also > > when wrenches are thrown into the works. > > > > I had multiple userspace things going on at the > > same time, dbench, ls -R, find... kill -9 or control-C on > > any of them is handled well. When I killed both > > the client-core and its restarter, the kernel > > dealt with swarm of ops that had nowhere > > to go... the WARN_ON in service_operation > > was hit. > > > > Feb 12 16:19:12 be1 kernel: [ 3658.167544] orangefs: please confirm > > that pvfs2-client daemon is running. > > Feb 12 16:19:12 be1 kernel: [ 3658.167547] fs/orangefs/dir.c line 264: > > orangefs_readdir: orangefs_readdir_index_get() failure (-5) > > I.e. bufmap is gone. > > > Feb 12 16:19:12 be1 kernel: [ 3658.170741] ------------[ cut here ]------------ > > Feb 12 16:19:12 be1 kernel: [ 3658.170746] WARNING: CPU: 0 PID: 1667 > > at fs/orangefs/waitqueue.c:203 service_operation+0x4f6/0x7f0() > > ... and we are in wait_for_direct_io(), holding an r/w slot and finding > ourselves with bufmap already gone, despite not having freed that slot > yet. Bloody wonderful - we still have bufmap refcounting buggered somewhere. > > Which tree had that been? Could you push that tree (having checked that > you don't have any uncommitted changes) in some branch? OK, at the very least there's this; should be folded into "orangefs: delay freeing slot until cancel completes" --- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h index 41f8bb1f..1e28555 100644 --- a/fs/orangefs/orangefs-kernel.h +++ b/fs/orangefs/orangefs-kernel.h @@ -261,6 +261,7 @@ static inline void set_op_state_purged(struct orangefs_kernel_op_s *op) { spin_lock(&op->lock); if (unlikely(op_is_cancel(op))) { + list_del(&op->list); spin_unlock(&op->lock); put_cancel(op); } else {