From patchwork Thu May 26 07:01:25 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 9136711 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 35278607D3 for ; Thu, 26 May 2016 07:01:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1EA6D27EE9 for ; Thu, 26 May 2016 07:01:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 12BE228221; Thu, 26 May 2016 07:01:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9E6BF27EE9 for ; Thu, 26 May 2016 07:01:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750803AbcEZHBu (ORCPT ); Thu, 26 May 2016 03:01:50 -0400 Received: from cn.fujitsu.com ([222.73.24.84]:17060 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1750762AbcEZHBt (ORCPT ); Thu, 26 May 2016 03:01:49 -0400 X-IronPort-AV: E=Sophos;i="5.20,367,1444665600"; d="scan'208";a="502794" Received: from unknown (HELO cn.fujitsu.com) ([10.167.250.3]) by song.cn.fujitsu.com with ESMTP; 26 May 2016 15:01:26 +0800 Received: from adam-work.localdomain (unknown [10.167.226.34]) by cn.fujitsu.com (Postfix) with ESMTP id CAACE4056401; Thu, 26 May 2016 15:01:25 +0800 (CST) From: Qu Wenruo To: linux-btrfs@vger.kernel.org Cc: fdmanana@kernel.org, fdmanana@suse.com Subject: [PATCH] btrfs: Add debug warning for new block group reservations Date: Thu, 26 May 2016 15:01:25 +0800 Message-Id: <20160526070125.6850-1-quwenruo@cn.fujitsu.com> X-Mailer: git-send-email 2.8.3 MIME-Version: 1.0 X-yoursite-MailScanner-ID: CAACE4056401.ADA39 X-yoursite-MailScanner: Found to be clean X-yoursite-MailScanner-From: quwenruo@cn.fujitsu.com Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Since the we are using atomic and wait queue for block group reservations and it's not controlled by lockdep, we need pay much more attention to any modification to write path. Or it's very easy to under flow block group reservations and cause lock balance. Add warning on for dec_block_group_reservations() if the reservations is already minus. Although such warning doesn't always catch the directly caller, but should provides good enough clue for later debug. Signed-off-by: Qu Wenruo --- fs/btrfs/extent-tree.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 9424864..3639b44 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -6243,6 +6243,7 @@ void btrfs_dec_block_group_reservations(struct btrfs_fs_info *fs_info, ASSERT(bg); if (atomic_dec_and_test(&bg->reservations)) wake_up_atomic_t(&bg->reservations); + WARN_ON(atomic_read(&bg->reservations) < 0) btrfs_put_block_group(bg); }