From patchwork Tue Sep 3 08:24:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 11127393 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 90A791813 for ; Tue, 3 Sep 2019 08:24:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6DD8A216C8 for ; Tue, 3 Sep 2019 08:24:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727005AbfICIYN (ORCPT ); Tue, 3 Sep 2019 04:24:13 -0400 Received: from mx2.suse.de ([195.135.220.15]:53106 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726452AbfICIYN (ORCPT ); Tue, 3 Sep 2019 04:24:13 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 6DB61AE07 for ; Tue, 3 Sep 2019 08:24:12 +0000 (UTC) From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 0/4] btrfs-progs: check: Repair invalid inode mode in subvolume trees Date: Tue, 3 Sep 2019 16:24:03 +0800 Message-Id: <20190903082407.13927-1-wqu@suse.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org Before this patch, btrfs check can only repair bad free space cache inode mode (as it was the first case detected by tree-checker and reported) But now what may happen finally happened, we have user reorting bad inode mode in subvolumes trees. Although the reported get the fs fixed by removing the offending old files, it's still a bad thing that "btrfs check" can't fix it. This patch will bring the repair functionality to all inodes, along with needed test image. Qu Wenruo (4): btrfs-progs: check/common: Make repair_imode_common() to handle inodes in subvolume trees btrfs-progs: check/lowmem: Repair bad imode early btrfs-progs: check/original: Fix inode mode in subvolume trees btrfs-progs: tests/fsck: Add new images for inode mode repair functionality check/main.c | 32 ++++-- check/mode-common.c | 96 +++++++++++++++--- check/mode-common.h | 2 + check/mode-lowmem.c | 39 +++++++ .../039-bad-inode-mode/.lowmem_repairable | 0 .../bad_free_space_cache_imode.raw.xz} | Bin .../bad_regular_file_imode.img.xz | Bin 0 -> 2060 bytes 7 files changed, 147 insertions(+), 22 deletions(-) create mode 100644 tests/fsck-tests/039-bad-inode-mode/.lowmem_repairable rename tests/fsck-tests/{039-bad-free-space-cache-inode-mode/test.raw.xz => 039-bad-inode-mode/bad_free_space_cache_imode.raw.xz} (100%) create mode 100644 tests/fsck-tests/039-bad-inode-mode/bad_regular_file_imode.img.xz