From patchwork Thu Mar 14 21:03:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 10853585 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A760813B5 for ; Thu, 14 Mar 2019 21:03:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8B1272A78C for ; Thu, 14 Mar 2019 21:03:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 84F082A79E; Thu, 14 Mar 2019 21:03:51 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI, UNPARSEABLE_RELAY 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 19E572A7A7 for ; Thu, 14 Mar 2019 21:03:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727616AbfCNVDu (ORCPT ); Thu, 14 Mar 2019 17:03:50 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:49698 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727412AbfCNVDt (ORCPT ); Thu, 14 Mar 2019 17:03:49 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x2EKx0Y1095785; Thu, 14 Mar 2019 21:03:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : from : to : cc : date : message-id : mime-version : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=XWN52e3XKXbFluPpkhU1FVH/eufT1vqRF64X6bgm6JY=; b=DqAtAYIzHkpoME/daBJPynV6MnRFGT0y4+oQI/3ooqYGYSyg0RkxDE9vh4kw+gImIQTd dbv5T2v7pl7YAlta4IZs7WwBv8Qv+mzLEVs99tXtnaCd2QlLUZCIrP/GtjWTuXCvAFyf aN/F1HVRYkIOKiWqCxRx+j0Oep1dDu0+AHTbbHruzbHGHxVWDXwoj7foOphUI/OaXwtT /Rv+eSuyDhoaQQ3fDsZHelKkf5Sdhppj29fBLlXAjaXJ3YAXl67ETFHcyM3jtseJronX T1D1YUPevCZA1RaO27way/5WbNd/mqQrch+9QOzbNoPsJwU5mPj0pfk8B0VO5qCELDmM /g== Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by userp2130.oracle.com with ESMTP id 2r44wukfca-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 14 Mar 2019 21:03:46 +0000 Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserv0021.oracle.com (8.14.4/8.14.4) with ESMTP id x2EL3ix2012677 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 14 Mar 2019 21:03:44 GMT Received: from abhmp0001.oracle.com (abhmp0001.oracle.com [141.146.116.7]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x2EL3hlO002310; Thu, 14 Mar 2019 21:03:44 GMT Received: from localhost (/10.145.178.102) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 14 Mar 2019 21:03:43 +0000 Subject: [PATCH v2 00/36] xfsprogs-5.0: fix various problems From: "Darrick J. Wong" To: sandeen@sandeen.net, darrick.wong@oracle.com Cc: linux-xfs@vger.kernel.org Date: Thu, 14 Mar 2019 14:03:43 -0700 Message-ID: <155259742281.31886.17157720770696604377.stgit@magnolia> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9195 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1903140143 Sender: linux-xfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi all, Here are some fixes for xfsprogs 5.0: Patch 1 fixes a deadlock in xfs_repair when we fail to flush an inode. It's already on the list, but I pulled it in as a place to branch off the upstream repo. Patches 2-6 fix some errors in the autoconf scripts and tidy up some of the debian packaging scripts. Patches 7-9 are bugfixes and minor enhancements for xfs_io commands. Patch 10 fixes xfs_scrub_all to discover the fs to physical device mappings correctly when nvme devices are present in the system. Patch 11 holds off automated xfs_scrub_all triggers until the system is fully booted so that we don't end up racing metadata scrubbing with system boot. Patches 12-13 fix thread count discovery in xfs_scrub so that we stop shadowing variables and estimate parallelism based at least somewhat on the storage hardware and not just the number of CPUs. In other words, we'll stop pounding a spinning disk with all the CPUs. Patches 14-15 restructure the read-verify pools to make them per-device so that a media scan on heterogeneous storage won't flood a device with low IOPS capacity. Patch 16 teaches scrub not to complain if it can't close the mountpoint after failing to open it. Patch 17 teaches scrub to check filesystem labels for misleading character sequences. Patch 18 fixes the problem of xfs_scrub's support scripts not getting rebuilt when file path definitions change. Patch 19 teaches mkfs to validate extent size hint parameters so that we cannot format filesystems that immediately fail to mount. Patches 20-21 fix some finobt problems in xfs_db. Patch 22 teaches xfs_info to be smarter about figuring out whether it should be using a live query via xfs_spaceman or xfs_db. Patches 23-24 fix some link count handling in xfs_repair when we're (re)initializing the root directory and lost+found directories. Patch 25 fixes some build warnings in xfs_repair. Patch 26-27 refactor parts of xfs_repair to make it easier to pass buffer ops pointers through the scan and rebuild functions. These cleanups should make it easier to adapt to the separation of buf_ops for bnobt/cntbt and inobt/finobt that will appear in 5.1. Patch 28-29 fix a crash in xfs_repair where accidentally create duplicate rmapbt records for blocks that are initially allocated to the free space btrees but then are freed back to the AGFL. while rebuilding the rmap btree. Patch 30 fixes a problem where xfs_repair phase 6 will fail to flush partially corrected inode core data to the inode cluster buffer because phase 6 hasn't yet fixed every thing that's wrong with the inode. This patch is part of a continuing series of fixes for Arkadiusz Miƛkiewicz's broken filesystem. Patches 31-36 refactor the userspace buffer and inode log item handling so that the item lifetimes make more sense -- they don't need to be kept around after a transaction commits (or cancels), and we certainly don't need to be leaking them because we got lazy about cleaning them up. If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=xfsprogs-5.0-fixes