From patchwork Mon Feb 4 14:52:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brian Foster X-Patchwork-Id: 10795811 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 11C9F14E1 for ; Mon, 4 Feb 2019 14:52:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F3A1C2BA16 for ; Mon, 4 Feb 2019 14:52:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F1BBC2BA1F; Mon, 4 Feb 2019 14:52:33 +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=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, 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 675F62BA30 for ; Mon, 4 Feb 2019 14:52:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729400AbfBDOwd (ORCPT ); Mon, 4 Feb 2019 09:52:33 -0500 Received: from mx1.redhat.com ([209.132.183.28]:27717 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728788AbfBDOwc (ORCPT ); Mon, 4 Feb 2019 09:52:32 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8C63458A5B for ; Mon, 4 Feb 2019 14:52:32 +0000 (UTC) Received: from bfoster.bos.redhat.com (dhcp-41-66.bos.redhat.com [10.18.41.66]) by smtp.corp.redhat.com (Postfix) with ESMTP id 45541100194A for ; Mon, 4 Feb 2019 14:52:32 +0000 (UTC) From: Brian Foster To: linux-xfs@vger.kernel.org Subject: [PATCH v3 0/9] xfs: fix [f]inobt magic value verification Date: Mon, 4 Feb 2019 09:52:22 -0500 Message-Id: <20190204145231.47034-1-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 04 Feb 2019 14:52:32 +0000 (UTC) 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's v3 of the verifier magic value fixup series. This version adds a couple more patches to separate and convert the allocation btree buffer verifier to the new magic value verification scheme. The allocbt is similar to the inobt verifier in that it currently uses the same verifier code for multiple magic values. This change allows the verifier to ensure that bnobt/cntbt blocks have the appropriate magic value for v4 and v5 filesytems. The only other change from v2 is a fixup to include parameter names in function declarations. Thoughts, reviews, flames appreciated. Brian v3: - Fix function declarations to include parameter names. - Convert allocbt buffer verifier. v2: https://marc.info/?l=linux-xfs&m=154894958207167&w=2 - Include djwong's ->b_ops patch w/ modifications. - Added patch to fix up existing cpu endian magic checks, fold in typo fix. - Replace static inline magic verifier helper with out of line variant, kill macro. - Store on-disk byte order magics in ->b_ops. - Added patch to refactor common xfs_da3_blkinfo checks. v1: https://marc.info/?l=linux-xfs&m=154878684317178&w=2 - Remove endian conversion from helper. - Drop finobt bad magic mitigation patch. - Additional verifier magic fixups. - Add verifier name typo fixup. rfcv2: https://marc.info/?l=linux-xfs&m=154868884311668&w=2 - Split off finobt verifier into separate patch, assign it appropriately. - Created helpers for xfs_buf_ops magic value verification. - Added error mitigation patch for problematic finobt blocks. rfcv1: https://marc.info/?l=linux-xfs&m=154834528212262&w=2 Brian Foster (8): xfs: always check magic values in on-disk byte order xfs: create a separate finobt verifier xfs: distinguish between inobt and finobt magic values xfs: split up allocation btree verifier xfs: distinguish between bnobt and cntbt magic values xfs: use verifier magic field in dir2 leaf verifiers xfs: miscellaneous verifier magic value fixups xfs: factor xfs_da3_blkinfo verification into common helper Darrick J. Wong (1): xfs: set buffer ops when repair probes for btree type fs/xfs/libxfs/xfs_ag.c | 6 +- fs/xfs/libxfs/xfs_alloc.c | 12 ++-- fs/xfs/libxfs/xfs_alloc_btree.c | 74 ++++++++++----------- fs/xfs/libxfs/xfs_attr_leaf.c | 21 ++---- fs/xfs/libxfs/xfs_attr_remote.c | 8 ++- fs/xfs/libxfs/xfs_bmap_btree.c | 13 ++-- fs/xfs/libxfs/xfs_da_btree.c | 50 ++++++++++----- fs/xfs/libxfs/xfs_da_format.h | 3 + fs/xfs/libxfs/xfs_dir2_block.c | 10 +-- fs/xfs/libxfs/xfs_dir2_data.c | 12 ++-- fs/xfs/libxfs/xfs_dir2_leaf.c | 100 ++++++----------------------- fs/xfs/libxfs/xfs_dir2_node.c | 11 ++-- fs/xfs/libxfs/xfs_ialloc.c | 3 +- fs/xfs/libxfs/xfs_ialloc_btree.c | 25 +++++--- fs/xfs/libxfs/xfs_inode_buf.c | 2 +- fs/xfs/libxfs/xfs_refcount_btree.c | 3 +- fs/xfs/libxfs/xfs_rmap_btree.c | 3 +- fs/xfs/libxfs/xfs_sb.c | 5 +- fs/xfs/libxfs/xfs_shared.h | 4 +- fs/xfs/libxfs/xfs_symlink_remote.c | 3 +- fs/xfs/scrub/agheader_repair.c | 6 +- fs/xfs/scrub/repair.c | 11 +++- fs/xfs/xfs_buf.c | 41 ++++++++++-- fs/xfs/xfs_buf.h | 4 +- fs/xfs/xfs_log_recover.c | 12 ++-- fs/xfs/xfs_trans_buf.c | 2 +- 26 files changed, 229 insertions(+), 215 deletions(-)