From patchwork Wed Oct 12 01:45:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13004579 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7DE25C433FE for ; Wed, 12 Oct 2022 01:45:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229615AbiJLBpk (ORCPT ); Tue, 11 Oct 2022 21:45:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39590 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229459AbiJLBpj (ORCPT ); Tue, 11 Oct 2022 21:45:39 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD34E5A8B7; Tue, 11 Oct 2022 18:45:30 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 99796B818B7; Wed, 12 Oct 2022 01:45:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52448C433D6; Wed, 12 Oct 2022 01:45:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1665539128; bh=mu+XQWULgwqOd8CE4Ws0V4Kvx564Sq55kRsjdB67D6c=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=RXIAbpOg0vfgmUAPHmTbgDLE+pW9cUE4znlkHeGhkepr/3Hfs0AHDiEL7dHwJ/THE 8V44YxHG1/PWeeMCoFrqm7wgbs2kb/M8D5aVNwDaidO6Hu1pZb8k4pSFleTDhOQRem xu+YLhkhdy2z2ODMkuHKdLktqD3ucor1RotroBhLPGkixuC5PWQACMUbxIvJRuNCGS DJdlW1ypPOgLU6E7HsmRQKT1+fTawTe0lB8roOf5VtIEgxsV7E/74HmsDMwnTx5BZp VQqk5vi6bpEwf3pTnr3BdyifAEiGeaaWOA+z/1CgQCZ3OB9l3S3UHwLV/06sjwo51E AKohdcEU7i0WQ== Subject: [PATCH 1/5] populate: export the metadump description name From: "Darrick J. Wong" To: djwong@kernel.org, guaneryu@gmail.com, zlang@redhat.com Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org, guan@eryu.me Date: Tue, 11 Oct 2022 18:45:27 -0700 Message-ID: <166553912788.422450.6797363004980943410.stgit@magnolia> In-Reply-To: <166553912229.422450.15473762183660906876.stgit@magnolia> References: <166553912229.422450.15473762183660906876.stgit@magnolia> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Darrick J. Wong Not sure why this hasn't been broken all along, but we should be exporting this variable so that it shows up in subshells.... Signed-off-by: Darrick J. Wong Reviewed-by: Zorro Lang --- common/populate | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/populate b/common/populate index cfdaf766f0..b501c2fe45 100644 --- a/common/populate +++ b/common/populate @@ -868,9 +868,9 @@ _scratch_populate_cached() { local meta_tag="$(echo "${meta_descr}" | md5sum - | cut -d ' ' -f 1)" local metadump_stem="${TEST_DIR}/__populate.${FSTYP}.${meta_tag}" - # These variables are shared outside this function - POPULATE_METADUMP="${metadump_stem}.metadump" - POPULATE_METADUMP_DESCR="${metadump_stem}.txt" + # This variable is shared outside this function + export POPULATE_METADUMP="${metadump_stem}.metadump" + local POPULATE_METADUMP_DESCR="${metadump_stem}.txt" # Don't keep metadata images cached for more 48 hours... rm -rf "$(find "${POPULATE_METADUMP}" -mtime +2 2>/dev/null)" From patchwork Wed Oct 12 01:45:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13004580 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 04868C43217 for ; Wed, 12 Oct 2022 01:45:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229436AbiJLBpl (ORCPT ); Tue, 11 Oct 2022 21:45:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39614 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229612AbiJLBpk (ORCPT ); Tue, 11 Oct 2022 21:45:40 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C530B642F2; Tue, 11 Oct 2022 18:45:36 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 35CC4B818B5; Wed, 12 Oct 2022 01:45:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EFDFDC433C1; Wed, 12 Oct 2022 01:45:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1665539134; bh=q6LvyT2/Wm1dA9NOPD/9Q0DdubSsQCL33/i7nE3Jgow=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=A55LFStRXOZK4mblHJMCSCiyry5GgHaCbW0z8QvuSdJSwl1xQMLeOA9zE+4W2IOpk BUiqilRurNX0hp89fX1mKTsqzel3wKLfO7Xjb+JwGLczfnn6rL95Aa8um6COJAsfE/ n9m9CTSY5Bm13iftoUir8I/8Jxz+oV1WaY+MQZFZGhFem+3ixNgGKarteAlEXrDVkj PhAKzse2kUnbzl3RBDjSreCiK82LsNT4LFerALiMgHmZ0cS/CHt+aWGVojuyvRe8kg 6I/w60RRvVoJ8HUhedAx4SEpaEqnn5xEjBZ8X70TOEuks8jwNqo7vCAuXQQko57bok dA+U75CLCNOjQ== Subject: [PATCH 2/5] populate: wipe external xfs log devices when restoring a cached image From: "Darrick J. Wong" To: djwong@kernel.org, guaneryu@gmail.com, zlang@redhat.com Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org, guan@eryu.me Date: Tue, 11 Oct 2022 18:45:33 -0700 Message-ID: <166553913349.422450.12686256615707425089.stgit@magnolia> In-Reply-To: <166553912229.422450.15473762183660906876.stgit@magnolia> References: <166553912229.422450.15473762183660906876.stgit@magnolia> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Darrick J. Wong The fs population code has the ability to save cached metadumps of filesystems to save time when running fstests. The cached images should be unmounted cleanly, so we never save the contents of external log devices. Unfortunately, the cache restore code fails to wipe the external log when restoring a clean image, so we end up with strange test failures because the log doesn't match the filesystem: * ERROR: mismatched uuid in log * SB : 5ffec625-d3bb-4f4e-a181-1f9efe543d9c * log: 607bd75a-a63d-400c-8779-2139f0a3d384 Worse yet, xfs_repair will overwrite a filesystem's uuid with the log uuid, which leads to corruption messages later on: Metadata corruption detected at 0x561f69a9a2a8, xfs_agf block 0x8/0x1000 xfs_db: cannot init perag data (117). Continuing anyway. Solve this by wiping the log device when restoring. Signed-off-by: Darrick J. Wong Reviewed-by: Zorro Lang --- common/populate | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/common/populate b/common/populate index b501c2fe45..0bd78e0a0a 100644 --- a/common/populate +++ b/common/populate @@ -11,7 +11,12 @@ _require_populate_commands() { _require_xfs_io_command "falloc" _require_xfs_io_command "fpunch" _require_test_program "punch-alternating" - _require_command "$XFS_DB_PROG" "xfs_db" + case "${FSTYP}" in + "xfs") + _require_command "$XFS_DB_PROG" "xfs_db" + _require_command "$WIPEFS_PROG" "wipefs" + ;; + esac } _require_xfs_db_blocktrash_z_command() { @@ -851,7 +856,19 @@ _scratch_populate_restore_cached() { case "${FSTYP}" in "xfs") - xfs_mdrestore "${metadump}" "${SCRATCH_DEV}" && return 0 + xfs_mdrestore "${metadump}" "${SCRATCH_DEV}" + res=$? + test $res -ne 0 && return $res + + # Cached images should have been unmounted cleanly, so if + # there's an external log we need to wipe it and run repair to + # format it to match this filesystem. + if [ -n "${SCRATCH_LOGDEV}" ]; then + $WIPEFS_PROG -a "${SCRATCH_LOGDEV}" + _scratch_xfs_repair + res=$? + fi + return $res ;; "ext2"|"ext3"|"ext4") # ext4 cannot e2image external logs, so we cannot restore From patchwork Wed Oct 12 01:45:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13004581 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 623DEC43219 for ; Wed, 12 Oct 2022 01:45:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229604AbiJLBpm (ORCPT ); Tue, 11 Oct 2022 21:45:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39622 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229459AbiJLBpl (ORCPT ); Tue, 11 Oct 2022 21:45:41 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 924455A8B7; Tue, 11 Oct 2022 18:45:40 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2DB2B61343; Wed, 12 Oct 2022 01:45:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D01DC433C1; Wed, 12 Oct 2022 01:45:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1665539139; bh=ast/Nk9U/aZ1POg5K/0/ODqYJFTxCmi3lIJJRuAtcy8=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=hpx1Acn8ZIGr3g1lQF9zJn+SUCIEGJFPmFUKhbm9qWQpkUN3OXDGNrOqBIyQP3obz py4qoHNevP0Oi0liwtn4Q+QUoyKNPCnJUGCUP+Ghdxcqfc7WOgNvXQjhCo4lrH3rfY e2jJVnTuaGsmyU/O82Z6CuCgK/GirNzC12XbeCymd5QMQGpfuZaxFgODpkSFfoGIFQ aimfozalBUlbxSTY06QZ7BB0vQUP7UaMoVnWMU4Cv1KdkBmgZRGCHgHNiTSBQbkPGe WFF9mOOP6DBLV+bBzM9TS21o3p15ZZcG7LMnPRM7zCSbFqum0hMmO2F6IicReWpX7l A26kZwooENKfQ== Subject: [PATCH 3/5] populate: reformat external ext[34] journal devices when restoring a cached image From: "Darrick J. Wong" To: djwong@kernel.org, guaneryu@gmail.com, zlang@redhat.com Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org, guan@eryu.me Date: Tue, 11 Oct 2022 18:45:39 -0700 Message-ID: <166553913911.422450.17214876114235793554.stgit@magnolia> In-Reply-To: <166553912229.422450.15473762183660906876.stgit@magnolia> References: <166553912229.422450.15473762183660906876.stgit@magnolia> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Darrick J. Wong The fs population code has the ability to save cached metadumps of filesystems to save time when running fstests. The cached images should be unmounted cleanly, so we never save the contents of external journal devices. Unfortunately, the cache restore code fails to reset the external journal when restoring a clean image, so we ignore cached images because the journal doesn't match the filesystem. This makes test runtimes longer than they need to be. Solve this by reformatting the external journal to match the filesystem. Signed-off-by: Darrick J. Wong Reviewed-by: Zorro Lang --- common/populate | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/common/populate b/common/populate index 0bd78e0a0a..66c55b682f 100644 --- a/common/populate +++ b/common/populate @@ -16,6 +16,9 @@ _require_populate_commands() { _require_command "$XFS_DB_PROG" "xfs_db" _require_command "$WIPEFS_PROG" "wipefs" ;; + ext*) + _require_command "$DUMPE2FS_PROG" "dumpe2fs" + ;; esac } @@ -871,9 +874,20 @@ _scratch_populate_restore_cached() { return $res ;; "ext2"|"ext3"|"ext4") - # ext4 cannot e2image external logs, so we cannot restore - test -n "${SCRATCH_LOGDEV}" && return 1 - e2image -r "${metadump}" "${SCRATCH_DEV}" && return 0 + e2image -r "${metadump}" "${SCRATCH_DEV}" + ret=$? + test $ret -ne 0 && return $ret + + # ext4 cannot e2image external logs, so we have to reformat + # the scratch device to match the restored fs + if [ -n "${SCRATCH_LOGDEV}" ]; then + local fsuuid="$($DUMPE2FS_PROG -h "${SCRATCH_DEV}" 2>/dev/null | \ + grep 'Journal UUID:' | \ + sed -e 's/Journal UUID:[[:space:]]*//g')" + $MKFS_EXT4_PROG -O journal_dev "${SCRATCH_LOGDEV}" \ + -F -U "${fsuuid}" + fi + return 0 ;; esac return 1 From patchwork Wed Oct 12 01:45:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13004582 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B823C4167D for ; Wed, 12 Oct 2022 01:45:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229560AbiJLBpr (ORCPT ); Tue, 11 Oct 2022 21:45:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39704 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229459AbiJLBpq (ORCPT ); Tue, 11 Oct 2022 21:45:46 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 604EE5FF73; Tue, 11 Oct 2022 18:45:46 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id C18F061346; Wed, 12 Oct 2022 01:45:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A565C433D6; Wed, 12 Oct 2022 01:45:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1665539145; bh=7z58jSLBT0qppYNDh65jQNRgSf+0c0QRv3bYjf7LyTw=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=ORpg5xDAh0vsmJ47dhCYBtFAxJrsKtGCq2TdK4UZnLVDUDhFQKTDbDuytoyQvpnfU +PUn7EAREd6e857X2QxXUXdN6z8b2gCNEo2QOkiS38X/SN/lWW5ZKDbi6AX0Odo0U+ Ovk5rzh5NIDGeauQGkvEMmn8rAP8RXNZdz+aReuLbaZ3sSh1GctkdsdTIkk/U70h3w jDy/u5xhngeP/n0Vsd8B/yLsAAnoV0ZPVD2f7S/2jmAfUWi1z+uudVETxqMnaKpPLW VPwUgtDxmM0z7YTOZ1XSwp/PtO2+VWrS5yy6Jr6URSucwBLwvvrKcXUYtLruMzJFz+ Q9jufdtGrWvbQ== Subject: [PATCH 4/5] populate: require e2image before populating From: "Darrick J. Wong" To: djwong@kernel.org, guaneryu@gmail.com, zlang@redhat.com Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org, guan@eryu.me Date: Tue, 11 Oct 2022 18:45:44 -0700 Message-ID: <166553914474.422450.8871747567060992809.stgit@magnolia> In-Reply-To: <166553912229.422450.15473762183660906876.stgit@magnolia> References: <166553912229.422450.15473762183660906876.stgit@magnolia> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Darrick J. Wong Use $E2IMAGE_PROG, not e2image, and check that it exists before proceeding. Signed-off-by: Darrick J. Wong Reviewed-by: Zorro Lang --- common/populate | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common/populate b/common/populate index 66c55b682f..05bdfe33c5 100644 --- a/common/populate +++ b/common/populate @@ -18,6 +18,7 @@ _require_populate_commands() { ;; ext*) _require_command "$DUMPE2FS_PROG" "dumpe2fs" + _require_command "$E2IMAGE_PROG" "e2image" ;; esac } @@ -874,7 +875,7 @@ _scratch_populate_restore_cached() { return $res ;; "ext2"|"ext3"|"ext4") - e2image -r "${metadump}" "${SCRATCH_DEV}" + $E2IMAGE_PROG -r "${metadump}" "${SCRATCH_DEV}" ret=$? test $ret -ne 0 && return $ret From patchwork Wed Oct 12 01:45:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13004583 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 811E4C433FE for ; Wed, 12 Oct 2022 01:45:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229459AbiJLBpz (ORCPT ); Tue, 11 Oct 2022 21:45:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39750 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229513AbiJLBpy (ORCPT ); Tue, 11 Oct 2022 21:45:54 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B87D97EEA; Tue, 11 Oct 2022 18:45:53 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 17038B80BFC; Wed, 12 Oct 2022 01:45:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C06E2C433C1; Wed, 12 Oct 2022 01:45:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1665539150; bh=AzsGNLHQvLkc3Kvhnmf6Sff2DXrnLUsMTnKxmNstU58=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=cgYaNSUtLC3mcoUb/e4VTj3ycv84vj1rK2Pnuo0KngKWZPur3pNO7WrRAd+aXC3dU w6J3n4Ix+CuClx971UlZ0S9HYcfwLlFhOT+KM2Lzuq7v+DPbwIsNQxXJtQD/kVLmiK qZtX40GJ+8AfKh5R2lGur7t9y8nzHyxYGymByHxTWIBiKID2UY6tznCVBDOBNhvvIR ewq3swA3cFQzm5dTIwlLComM0za3yx3cQNZubP9hFbqpS7DjVyFinsoqar75zlGubP eXhUY4bz2n/bzfI2a2DR6AMTwtiy9XsjsgTTReNkFs3LR/LtATuw7JWsSN068dSa65 YnGsI008N1biQ== Subject: [PATCH 5/5] fstests: refactor xfs_mdrestore calls From: "Darrick J. Wong" To: djwong@kernel.org, guaneryu@gmail.com, zlang@redhat.com Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org, guan@eryu.me Date: Tue, 11 Oct 2022 18:45:50 -0700 Message-ID: <166553915032.422450.8262466611928449491.stgit@magnolia> In-Reply-To: <166553912229.422450.15473762183660906876.stgit@magnolia> References: <166553912229.422450.15473762183660906876.stgit@magnolia> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Darrick J. Wong Wrap calls to xfs_mdrestore in the usual $XFS_MDRESTORE_PROG variable. Signed-off-by: Darrick J. Wong Reviewed-by: Zorro Lang --- common/config | 1 + common/fuzzy | 2 +- common/populate | 3 ++- tests/xfs/129 | 3 ++- tests/xfs/234 | 3 ++- tests/xfs/253 | 3 ++- tests/xfs/284 | 3 ++- tests/xfs/291 | 3 ++- tests/xfs/336 | 3 ++- tests/xfs/432 | 3 ++- tests/xfs/503 | 9 +++++---- 11 files changed, 23 insertions(+), 13 deletions(-) diff --git a/common/config b/common/config index 5eaae4471d..0c3813dc23 100644 --- a/common/config +++ b/common/config @@ -156,6 +156,7 @@ export XFS_LOGPRINT_PROG="$(type -P xfs_logprint)" export XFS_REPAIR_PROG="$(type -P xfs_repair)" export XFS_DB_PROG="$(type -P xfs_db)" export XFS_METADUMP_PROG="$(type -P xfs_metadump)" +export XFS_MDRESTORE_PROG="$(type -P xfs_mdrestore)" export XFS_ADMIN_PROG="$(type -P xfs_admin)" export XFS_GROWFS_PROG=$(type -P xfs_growfs) export XFS_SPACEMAN_PROG="$(type -P xfs_spaceman)" diff --git a/common/fuzzy b/common/fuzzy index b4fda6f533..2d688fd27b 100644 --- a/common/fuzzy +++ b/common/fuzzy @@ -159,7 +159,7 @@ __scratch_xfs_fuzz_mdrestore() test -e "${POPULATE_METADUMP}" || _fail "Need to set POPULATE_METADUMP" __scratch_xfs_fuzz_unmount - xfs_mdrestore "${POPULATE_METADUMP}" "${SCRATCH_DEV}" + $XFS_MDRESTORE_PROG "${POPULATE_METADUMP}" "${SCRATCH_DEV}" } __fuzz_notify() { diff --git a/common/populate b/common/populate index 05bdfe33c5..0c0538554a 100644 --- a/common/populate +++ b/common/populate @@ -15,6 +15,7 @@ _require_populate_commands() { "xfs") _require_command "$XFS_DB_PROG" "xfs_db" _require_command "$WIPEFS_PROG" "wipefs" + _require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" ;; ext*) _require_command "$DUMPE2FS_PROG" "dumpe2fs" @@ -860,7 +861,7 @@ _scratch_populate_restore_cached() { case "${FSTYP}" in "xfs") - xfs_mdrestore "${metadump}" "${SCRATCH_DEV}" + $XFS_MDRESTORE_PROG "${metadump}" "${SCRATCH_DEV}" res=$? test $res -ne 0 && return $res diff --git a/tests/xfs/129 b/tests/xfs/129 index 90887d5476..09d40630d0 100755 --- a/tests/xfs/129 +++ b/tests/xfs/129 @@ -25,6 +25,7 @@ _cleanup() # real QA test starts here _supported_fs xfs +_require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" _require_loop _require_scratch_reflink @@ -52,7 +53,7 @@ _scratch_xfs_metadump $metadump_file # Now restore the obfuscated one back and take a look around echo "Restore metadump" -xfs_mdrestore $metadump_file $TEST_DIR/image +$XFS_MDRESTORE_PROG $metadump_file $TEST_DIR/image SCRATCH_DEV=$TEST_DIR/image _scratch_mount SCRATCH_DEV=$TEST_DIR/image _scratch_unmount diff --git a/tests/xfs/234 b/tests/xfs/234 index 6ff2f228e8..cc1ee9a8ca 100755 --- a/tests/xfs/234 +++ b/tests/xfs/234 @@ -24,6 +24,7 @@ _cleanup() # real QA test starts here _supported_fs xfs +_require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" _require_loop _require_xfs_scratch_rmapbt _require_xfs_io_command "fpunch" @@ -52,7 +53,7 @@ _scratch_xfs_metadump $metadump_file # Now restore the obfuscated one back and take a look around echo "Restore metadump" -xfs_mdrestore $metadump_file $TEST_DIR/image +$XFS_MDRESTORE_PROG $metadump_file $TEST_DIR/image SCRATCH_DEV=$TEST_DIR/image _scratch_mount SCRATCH_DEV=$TEST_DIR/image _scratch_unmount diff --git a/tests/xfs/253 b/tests/xfs/253 index 1899ce5226..1cfc218088 100755 --- a/tests/xfs/253 +++ b/tests/xfs/253 @@ -32,6 +32,7 @@ _cleanup() # Import common functions. . ./common/filter +_require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" _require_test _require_scratch @@ -151,7 +152,7 @@ _scratch_unmount _scratch_xfs_metadump $METADUMP_FILE # Now restore the obfuscated one back and take a look around -xfs_mdrestore "${METADUMP_FILE}" "${SCRATCH_DEV}" +$XFS_MDRESTORE_PROG "${METADUMP_FILE}" "${SCRATCH_DEV}" _scratch_mount diff --git a/tests/xfs/284 b/tests/xfs/284 index fa7bfdd0f0..e2bd05d4c7 100755 --- a/tests/xfs/284 +++ b/tests/xfs/284 @@ -24,6 +24,7 @@ _cleanup() # real QA test starts here _supported_fs xfs +_require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" _require_xfs_copy _require_test _require_scratch @@ -48,7 +49,7 @@ _scratch_unmount # xfs_mdrestore should refuse to restore to a mounted device _scratch_xfs_metadump $METADUMP_FILE _scratch_mount -xfs_mdrestore $METADUMP_FILE $SCRATCH_DEV 2>&1 | filter_mounted +$XFS_MDRESTORE_PROG $METADUMP_FILE $SCRATCH_DEV 2>&1 | filter_mounted _scratch_unmount # Test xfs_copy to a mounted device diff --git a/tests/xfs/291 b/tests/xfs/291 index a2425e472d..f5fea7f9a5 100755 --- a/tests/xfs/291 +++ b/tests/xfs/291 @@ -13,6 +13,7 @@ _begin_fstest auto repair metadump . ./common/filter _supported_fs xfs +_require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" # real QA test starts here _require_scratch @@ -92,7 +93,7 @@ _scratch_xfs_check >> $seqres.full 2>&1 || _fail "xfs_check failed" # Yes they can! Now... # Can xfs_metadump cope with this monster? _scratch_xfs_metadump $tmp.metadump || _fail "xfs_metadump failed" -xfs_mdrestore $tmp.metadump $tmp.img || _fail "xfs_mdrestore failed" +$XFS_MDRESTORE_PROG $tmp.metadump $tmp.img || _fail "xfs_mdrestore failed" SCRATCH_DEV=$tmp.img _scratch_xfs_repair -f &>> $seqres.full || \ _fail "xfs_repair of metadump failed" diff --git a/tests/xfs/336 b/tests/xfs/336 index 6592419d03..b1de8e5fc1 100755 --- a/tests/xfs/336 +++ b/tests/xfs/336 @@ -21,6 +21,7 @@ _cleanup() # real QA test starts here _supported_fs xfs +_require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" _require_realtime _require_xfs_scratch_rmapbt _require_test_program "punch-alternating" @@ -64,7 +65,7 @@ _scratch_xfs_metadump $metadump_file # Now restore the obfuscated one back and take a look around echo "Restore metadump" -xfs_mdrestore $metadump_file $TEST_DIR/image +$XFS_MDRESTORE_PROG $metadump_file $TEST_DIR/image SCRATCH_DEV=$TEST_DIR/image _scratch_mount SCRATCH_DEV=$TEST_DIR/image _scratch_unmount diff --git a/tests/xfs/432 b/tests/xfs/432 index e1e610d054..676be9bd8a 100755 --- a/tests/xfs/432 +++ b/tests/xfs/432 @@ -28,6 +28,7 @@ _cleanup() # real QA test starts here _supported_fs xfs +_require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" _require_scratch rm -f "$seqres.full" @@ -86,7 +87,7 @@ test -n "$extlen" || _notrun "could not create dir extent > 1000 blocks" echo "Try to metadump" _scratch_xfs_metadump $metadump_file -w -xfs_mdrestore $metadump_file $metadump_img +$XFS_MDRESTORE_PROG $metadump_file $metadump_img echo "Check restored metadump image" SCRATCH_DEV=$metadump_img _scratch_xfs_repair -n &>> $seqres.full || \ diff --git a/tests/xfs/503 b/tests/xfs/503 index 6c4bfd1c45..18bd8694c8 100755 --- a/tests/xfs/503 +++ b/tests/xfs/503 @@ -28,6 +28,7 @@ testdir=$TEST_DIR/test-$seq # real QA test starts here _supported_fs xfs +_require_command "$XFS_MDRESTORE_PROG" "xfs_mdrestore" _require_xfs_copy _require_scratch_nocheck _require_populate_commands @@ -65,25 +66,25 @@ _check_scratch_fs _scratch_unmount echo mdrestore -xfs_mdrestore $metadump_file $SCRATCH_DEV +$XFS_MDRESTORE_PROG $metadump_file $SCRATCH_DEV _scratch_mount _check_scratch_fs _scratch_unmount echo mdrestore a -xfs_mdrestore $metadump_file_a $SCRATCH_DEV +$XFS_MDRESTORE_PROG $metadump_file_a $SCRATCH_DEV _scratch_mount _check_scratch_fs _scratch_unmount echo mdrestore g -xfs_mdrestore $metadump_file_g $SCRATCH_DEV +$XFS_MDRESTORE_PROG $metadump_file_g $SCRATCH_DEV _scratch_mount _check_scratch_fs _scratch_unmount echo mdrestore ag -xfs_mdrestore $metadump_file_ag $SCRATCH_DEV +$XFS_MDRESTORE_PROG $metadump_file_ag $SCRATCH_DEV _scratch_mount _check_scratch_fs _scratch_unmount