From patchwork Wed Jul 28 14:21:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roland Gaudig X-Patchwork-Id: 1510880 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2607:f8b0:4864:20::240; helo=mail-oi1-x240.google.com; envelope-from=swupdate+bncbaabbc6qqweamgqef6f4uwy@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=R/eBbQu1; dkim-atps=neutral Received: from mail-oi1-x240.google.com (mail-oi1-x240.google.com [IPv6:2607:f8b0:4864:20::240]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4GZbTD5mg9z9sRK for ; Thu, 29 Jul 2021 00:22:07 +1000 (AEST) Received: by mail-oi1-x240.google.com with SMTP id c18-20020a0568081392b029025ca5afbdeasf1441907oiw.23 for ; Wed, 28 Jul 2021 07:22:07 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1627482123; cv=pass; d=google.com; s=arc-20160816; b=boCpFpAieA9UAtltlibc+VOlR2d2YHDAqptcmtKlNcG4/a3zRvCjpxt7hPIe4eB/5K lnqZ0FDO6ZYoxOu/yXhuG+E3VuEiXAmgnJDuekADYg/4EaSORpV6k0/Mqj+XJ4vzTMxH RcsSrbCUh3Z90+xdriQCvfly7A4Va0AgktEQN8o3RRLB/MN1sTUhqYquaLI4TPIyjSM+ FhcplGLkCKfOKguSHWDbcGmToLgcxUjVtgbXSq2dvteboxLjNmt/WPmpKRwLnJp54Xsh tmpHXHHYguX1Xsw8301gDpcvMkNTCAI+YZLBoK6k6HuuJoB/S6SnZNE+xijeKsRtqBqq JgpA== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=7Xxl4p7+y38BD3KGDt/6g0jDqqx0Nm4tV07vjuUwMIw=; b=EveMXmXaAE8DIBx2M9d2T5KHnzQBn3S6CabiNHx+jU5BR/lxgTPuk3kV1u/J3bFtnz /Y3eYBB12FFTFiOFXD/p0t0XCp/26OWw3YdY93bg+eRYj45oM7/R6USyBq35pmkmavvk fT1nXBkMW7spMAc8yAYIiond0czUb6cHBV9OkyB9jYHab68IVfN7xi+yA5hPm20fpylB /eEsLlfTABmU3KwevEsAwlpFJWhseNluUPZfsHJODMdPcfrSxyW57+oVZ91n3IqiwSud Na4vP0KZsvlBzGqbVfcifzi5jQX87HgrwZMGMWQLkRAfBS3pKl4Kc9hqzAOiMB0uYZZy AZWg== ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@weidmueller.onmicrosoft.com header.s=selector1-weidmueller-onmicrosoft-com header.b=moPvJNzT; arc=pass (i=1 spf=pass spfdomain=weidmueller.com dkim=pass dkdomain=weidmueller.com dmarc=pass fromdomain=weidmueller.com); spf=pass (google.com: domain of roland.gaudig-oss@weidmueller.com designates 40.107.22.82 as permitted sender) smtp.mailfrom=roland.gaudig-oss@weidmueller.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=weidmueller.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=7Xxl4p7+y38BD3KGDt/6g0jDqqx0Nm4tV07vjuUwMIw=; b=R/eBbQu1FBHvHx0lKaycqvsYfnGBaYKKTXn1hMEsF+H2rIelStWwE+9FnUYAoOWW/r l0WwF7Yt9vx5i11FdyRQJe1oha/UDgsmkyFHljsnmt66wd/jUHi2rrn0dQ/MxtA0OTAr rhCVCB6TXIdYXkIqDhUd893ckW+L9ZEl7wwk3vmZ9gl1KXahnXg4rLYx7hNzttoeUmir u6MJlWcRS3N7Ozu3RrKSfQ7WJj87LjjnTN041iAtFiH02DC9POtMWJuarnQPq3mLgUGg LvLq9GzeBh+mfxvqtrg44P1WnsA/UE7OzQ/ba5Ko9IPxOaitIIOi6QYFY5w1dHJLM4JP xW5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=7Xxl4p7+y38BD3KGDt/6g0jDqqx0Nm4tV07vjuUwMIw=; b=cT8qxPP8BZgkU2Vrcl5wBzkA89YAjV205nfFiBRgaLE/4JUsfsjRFSyxUly8r1ET1+ kwLCXngROxSi9G22X3L3xBdDY3gXpQo60h7wgsBCk+aYWPrUOdR2GOpx3AT6qKaut/5O NB5W4HJ5TlzK+twIjzsynAW7gl70OGXXZDnIS4HDx1O8F4db/1BHybjNLyTL09CptN1X gbN45ldwvb5mjAqIpGv2zw0vovVH0uHhhmHb1lkOQNNLUKeVS9KpcywJBGYMJtlp1D50 7Q/jIWL5+xv0GHGuOpK04QTiEg4Wt9Pxb9GWwQvMVLUu4AN7sjs2H6Ue2ZcYR8xpqyt2 B/Kg== Sender: swupdate@googlegroups.com X-Gm-Message-State: AOAM531eb5fS3gyRn1w7wSI7aIeZ9U/WAp5+R9mPqaGVCkbHdKCZxbLG 4Ch9255q7yv/+r6ixX4bclY= X-Google-Smtp-Source: ABdhPJzDKi6wr0ENs0CLc6N9kQwGRBRIyFz/gpMZEgUhzLxaqCFVQicvZx1CdYxDLDEQpz7psBOujw== X-Received: by 2002:a4a:de08:: with SMTP id y8mr17457121oot.82.1627482123484; Wed, 28 Jul 2021 07:22:03 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a05:6830:b84:: with SMTP id a4ls618335otv.9.gmail; Wed, 28 Jul 2021 07:22:03 -0700 (PDT) X-Received: by 2002:a05:6830:4429:: with SMTP id q41mr194151otv.284.1627482123035; Wed, 28 Jul 2021 07:22:03 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1627482123; cv=pass; d=google.com; s=arc-20160816; b=AAP0rdxeKw6gvGaat78oV0K4v9NfduTk93ppkwkjR4VGIRAaSDp8O9phKyyUW90vDq PQmHdsoCHedsLo44LSO2VrPXc8WKRx2OhRmx3kqzgzGYEapIzLWP2Db20mOemWPUwFG8 cn6pSQG/iekhX1xATyWmSgHetrnvP53HN3wxADSDH/XlKGKRmminJLm2Ulr/uFlDNlFg a7lBvxe8km/8IA1oQkhsrUkKLJ5rvpyaOraN4N8mZqDfCPuYbQMSE0ZcoLTQgKUpbNfY oFPLnfFgvLNbw8zX8VjNuiN6ukeamuBVHiEOndoq5ElqBeUWMYQwFHC8D5T5ghUn2IVm tkzw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=sAdMk7LhbaN/k1RagfwDp6xtU7tybnHCidtRaLvvFKg=; b=AZGJFaKZqaUciUmotVj6fqbqUhOlsf3wVQRA6OO0xcaEPJ6oZolqd6E5rj0fLmwumb HoMlbRGom11H1QbGc3Ra8OUHt6CP48yO97lzXD06HLJPRnDAefpU8wGfW35V3qkBz7YJ JwfZgcif/tLJBziFTW6L7YVHCe/gLj88u5xcJxpo/yBAVcMOGuRLdewFOgg1n3uhbZcR vCmtFgRwbG6oNbKLxMlnEGUXvJLtf1yGE3tyeT5Dd41FvxfdLzBBmuZQV1gt5SqGJIB9 nS4dcExzmubY5XON/SKTuie8rEh+yfWm2ryuj+ar74WAtjQwDtql8yeAagLTzlufcGHa vesA== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@weidmueller.onmicrosoft.com header.s=selector1-weidmueller-onmicrosoft-com header.b=moPvJNzT; arc=pass (i=1 spf=pass spfdomain=weidmueller.com dkim=pass dkdomain=weidmueller.com dmarc=pass fromdomain=weidmueller.com); spf=pass (google.com: domain of roland.gaudig-oss@weidmueller.com designates 40.107.22.82 as permitted sender) smtp.mailfrom=roland.gaudig-oss@weidmueller.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=weidmueller.com Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2082.outbound.protection.outlook.com. [40.107.22.82]) by gmr-mx.google.com with ESMTPS id m22si9066oie.5.2021.07.28.07.22.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Jul 2021 07:22:02 -0700 (PDT) Received-SPF: pass (google.com: domain of roland.gaudig-oss@weidmueller.com designates 40.107.22.82 as permitted sender) client-ip=40.107.22.82; ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YiJBbOLmOlU2KU1IkjMut6Xkt+LbYUvir2N+CBsWNichnmA3gvbvMV0jKsNAtLkP2RiYZzPeE5Fw6bZhCm+FbFuRVsnkFzySLCRVunP3+RQ8V+ip7E5jfSb7LPLTUq8FILu6nfdriGYW+g7bveA9EsSHZ2V0xat1+ThIu1OOhcMMT0SIcTtlNxGClnalDM2IiPscTaY/2Qg/LsP2amf7nXuZ2+/OwB1E1BcNVW+qzHuBNhwidl5RKX6bnVlSE+12IGYCiBnuuU+rkLDzdsFE8crmEFrGaC4ISc3XU5Ed7ENwr4i9MMEch49H4nOBKAF6rdxD1E+KdDZdMsKMFXuU9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sAdMk7LhbaN/k1RagfwDp6xtU7tybnHCidtRaLvvFKg=; b=i+Wonl6D1YJMKalkLtBW2kIni951B2c2z04V1hVoRVxxSdErViKGf1alDIZZkqcixpGzqklax9/aEnk24CiJjrDNQ9JJofysihkSNFl4C725Sb3QPPS4/4AKcqJVrKL+JGapS6Un+0/YmFB+RYdIRCeRbFBNxqHYpMkWyCIm/YAPgtPToi6RyL/NITjTpHtIiENl6OKGXiViMR2R84g9pafu1naPinic9SWdsvIH0WWtieF1mu+IFZJHNKRzlLwXAU0LrX3aJ3CrF/pxJDmfBgeSVoo53rO68hYx3a/os9uw5NPUlUOZNzOyGuNQkteTbKzhyCwceu1REr3s7nHbqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=weidmueller.com; dmarc=pass action=none header.from=weidmueller.com; dkim=pass header.d=weidmueller.com; arc=none Received: from DB9PR08MB6729.eurprd08.prod.outlook.com (2603:10a6:10:2ac::15) by DB6PR0801MB1894.eurprd08.prod.outlook.com (2603:10a6:4:72::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.30; Wed, 28 Jul 2021 14:22:00 +0000 Received: from DB9PR08MB6729.eurprd08.prod.outlook.com ([fe80::1d23:5e54:ef16:e7b0]) by DB9PR08MB6729.eurprd08.prod.outlook.com ([fe80::1d23:5e54:ef16:e7b0%7]) with mapi id 15.20.4373.019; Wed, 28 Jul 2021 14:22:00 +0000 From: Roland Gaudig To: swupdate@googlegroups.com Cc: sbabic@denx.de, Roland Gaudig Subject: [swupdate] [PATCH v2 2/2] diskpart: format only if filesystem not exists Date: Wed, 28 Jul 2021 14:21:45 +0000 Message-Id: <20210728142146.8970-3-roland.gaudig-oss@weidmueller.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210728142146.8970-1-roland.gaudig-oss@weidmueller.com> References: <20210728142146.8970-1-roland.gaudig-oss@weidmueller.com> X-ClientProxiedBy: PR2P264CA0030.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::18) To DB9PR08MB6729.eurprd08.prod.outlook.com (2603:10a6:10:2ac::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from DE12086.weidmueller.com.com (84.138.68.44) by PR2P264CA0030.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.18 via Frontend Transport; Wed, 28 Jul 2021 14:21:59 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ca8ba540-ef77-4e36-f96a-08d951d31042 X-MS-TrafficTypeDiagnostic: DB6PR0801MB1894: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:227; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8FSdj36Hq15hQeMbJBsrzc4ga+mIIehmJHa/gn0z/cOv0xkTw9mfF6a7tfPFkLvG6TNKAnuBFISMGjzW1xzwkDbecCiUAVZPKKxX7K+JKRSqxW3JHMjiWVS2NwcXj+xBGmqB3FE+ok9g+aizYWaI22VS5kF8EjG+BOZbUTxS8eGqvKlN0DVasFdlqT4qOOocVFXiiaS/Pr8kkarC6u93J5/5egE7UWXFEsKDX5IOcw5oy6EMThSSMtoyq3cwrpW3CESqR2xHO5iMi8vZz8TC0XfeWm4N8D/MrgkgdGgc0WptS4u8fgSZSqoMFuTt25pe4zcVdJSWbHiTSkjgJbPRYuS5NssCoDKN+lhiPMT+8AUTaPCi6U1h2ZicBnO4KgxFuaJgzJwe63Yvzfk9r22BWv+JwS37yxrodP23wotHKOUU77QRBRw3jD7ePjTnCsojD0qALuvZEDbihuf8uZEJooKsObORZ8DoKckXAuJP1URdA4u//GMRra1d2+x8gIFTaA9hg9eWx/hKJGIoltu7GTSTW8U8BwFCiC+1Wluu4YkfO5bkOQYEuWzR++eILMp9F37qnxCXx24MNSOjwpZngnKvm5zR0vOhRHubztGODXOa46F87eColHkF0Ny2xwnOFfBZ7V+z6AB4gRgbjdDdOXmAiNt/AWoIldEhVzzWPJDJzcZLAILKwKXBD1TCONTDkUxkyJlzMe7hbde61xzz7g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6729.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(366004)(39850400004)(376002)(136003)(396003)(1076003)(6486002)(956004)(2906002)(7696005)(6666004)(86362001)(83380400001)(36756003)(8676002)(5660300002)(38100700002)(4326008)(52116002)(8936002)(6512007)(38350700002)(316002)(478600001)(186003)(6916009)(6506007)(2616005)(66476007)(26005)(107886003)(66556008)(66946007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: uveo2mqzOfxt/vdgtXx2Q4giudfQhoqhd885LqdxUzq9l0JUfnFb+cgTREGMkaSYi7rGferdv+6w05zQQBXzut+MzVvUzwDYXzSkMYzmbIifRnS7yKxDkTme3Ln8hpNom2521rtxNVpoZf6nFtp1sAea6v+X3808ZOLE84/xy/p6KWGQ6Yu7O4Cq2N8v1RZtO6jd5A8tTYkSZ/73AeURu4GuhueWxNmZIsu+FxTrUDItudAzlGIxu2z+2bjbILwWiFyWddrIJ+8SEGhEFm5vkzN6s1cD0AlGWz6FRaeh4F4u9VY2xfqwsC+miiwA/avxvHtb630bMyQZDnYQLMcMDx8RNivAC43qOhkRQ/wPVauQF7DkeSvwf2eb4P9BssAuALPQlKiTeayWge2Ibx1MT69JOt7XGmRNBVP7EMojkh64r4Ms3xB/G8+NyppjpknKEyX60m6A2I5S0kZGevJp/PvpOMEBwqdXy7evAiwdVHZs8jNm+GP0wte9cxwMJJK3/KuI4DzjxCPraYyeHkDzT8UFrraMGPEUW0otU3868nUgrNYQQ2x0rRVExwi8OWBvUqQToTCtTERemGkFOta7YguF1u7qOYzeKFGE5aPbBNnMLnmV0d9CG0qUDLUFsmx2/pV97PACNnAHS5YI/izY7oc/XEH6bONMCpc7xdNQYxyWMv+aarDbOr20oTsU7YnCW3EVbfUq+L9v+tQS0DimdFwrKpVoP487IFr1QEUxd7B3utodM7KgDBVRjxxdGAljB0me1lc0Px1OWbKMQ+k5WfzcHuEWtfruET74CvulIRc6yybjrzloGoRdQDScG/qGbjFkXZzQ32M2iRAsCZkrg88DSjCy443UXPJMw/CHinJUlWu5BeuFAVnbynhWjbtG0JNdHaJAiwqgyCrU0DovzybG5SZYpu3EVMgjB3zK1DjL7TppIuJ1xxBtmENZVuEAnpSanIM86Lq2Xl+rrNlp2/wB2tTvpa0kCMfjUoZRPDGPL8wPBWr6EwEyL12ZqgIESo9U2/bwj/hxCRHuL45IFql2yjvSX6BDTJlOsaoMYylVVgaVa70952D5BjXpyT5PdXpHWxUGlSZET9vTXBllDcrDvbdRAaKS7Dxv9riOFwv9e/SByspznUH5y3DqTB0FYeEs+f2NmpG4oNHKtQIwgf8pxbmfFXhTkeZl17e0AoX0BBkSBKQkkSmJIMEaIVbXH0M2ILdHfhRoAIGOXm2X02zoJAPlx0SZdaLkuMrTu/AqPSc7NqN7rvkmpq5mXx6NLYLyhyySH07k0xzVlZL2i6U1pV3iKBh9tdnkn64tm4TNIxoPrae/nYqY8MCLKNtV X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca8ba540-ef77-4e36-f96a-08d951d31042 X-MS-Exchange-CrossTenant-AuthSource: DB9PR08MB6729.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jul 2021 14:22:00.5038 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e4289438-1c5f-4c95-a51a-ee553b8b18ec X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QkTyUhN7hDxfMoDWoUsgvfTHHOpZhWB/G+0ESB0SpsYeBVCzgl1eAvFPZm/IxSN62AFAwhEVMtfP2Oy9I+3JZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1894 X-Original-Sender: roland.gaudig-oss@weidmueller.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@weidmueller.onmicrosoft.com header.s=selector1-weidmueller-onmicrosoft-com header.b=moPvJNzT; arc=pass (i=1 spf=pass spfdomain=weidmueller.com dkim=pass dkdomain=weidmueller.com dmarc=pass fromdomain=weidmueller.com); spf=pass (google.com: domain of roland.gaudig-oss@weidmueller.com designates 40.107.22.82 as permitted sender) smtp.mailfrom=roland.gaudig-oss@weidmueller.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=weidmueller.com Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , From: Roland Gaudig There are use cases where already a filesystem might have been created before, which should not be overwritten. This commit adds a new configuration option DISKFORMAT_CHECK_OVERWRITE, which enables a check whether the requested file system already exists on the partition. If it alreay exists, the partition won't be formatted. In case there is already a file system of another type than requested, the partition will be formatted with the new file system type. Signed-off-by: Roland Gaudig --- (no changes since v1) Makefile.flags | 6 ++++- handlers/Config.in | 11 ++++++++ handlers/diskpart_handler.c | 54 ++++++++++++++++++++++++++++++++++++- 3 files changed, 69 insertions(+), 2 deletions(-) diff --git a/Makefile.flags b/Makefile.flags index d3ca49d..56ffdfb 100644 --- a/Makefile.flags +++ b/Makefile.flags @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2013 Stefano Babic + # SPDX-FileCopyrightText: 2013 Stefano Babic # # SPDX-License-Identifier: GPL-2.0-only @@ -185,6 +185,10 @@ ifeq ($(CONFIG_DISKPART),y) LDLIBS += fdisk endif +ifeq ($(CONFIG_DISKFORMAT_CHECK_OVERWRITE),y) +LDLIBS += blkid +endif + ifeq ($(CONFIG_EXT_FILESYSTEM),y) LDLIBS += ext2fs uuid blkid endif diff --git a/handlers/Config.in b/handlers/Config.in index bfc8d19..d8d7193 100644 --- a/handlers/Config.in +++ b/handlers/Config.in @@ -126,6 +126,17 @@ config DISKFORMAT_IGNORE_PT_CHANGE partition activating this option allows creating a filesystem even when the partition table remains unchaned. +config DISKFORMAT_CHECK_OVERWRITE + bool "Preserve file system if already exists" + depends on HAVE_LIBBLKID + depends on DISKFORMAT + default n + help + This option enables a check whether the file system requested already + exists on the partition. In case it already exists, it won't be + overwritten. In cae there exists already a file system of another + type, the partition will be formatted with the new file system type. + if DISKFORMAT source fs/Config.in diff --git a/handlers/diskpart_handler.c b/handlers/diskpart_handler.c index 85dfb10..3cbedcc 100644 --- a/handlers/diskpart_handler.c +++ b/handlers/diskpart_handler.c @@ -21,6 +21,10 @@ #include "util.h" #include "fs_interface.h" +#ifdef CONFIG_DISKFORMAT_CHECK_OVERWRITE +#include +#endif + void diskpart_handler(void); /* @@ -737,6 +741,45 @@ static int diskpart_write_table(struct fdisk_context *cxt, struct create_table * return ret; } +#ifdef CONFIG_DISKFORMAT_CHECK_OVERWRITE +/* + * Checks if filesystem fstype already exists on device. + * return 0 if not exists, 1 if exists, negative values on failure + */ +static int fs_exists(char *device, char *fstype) +{ + char buf[10]; + const char *value = buf; + size_t len; + blkid_probe pr; + int ret = 0; + + pr = blkid_new_probe_from_filename(device); + + if (!pr) { + ERROR("%s: failed to create libblkid probe", + device); + return -EFAULT; + } + + while (blkid_do_probe(pr) == 0) { + if (blkid_probe_lookup_value(pr, "TYPE", &value, &len)) { + ERROR("blkid_probe_lookup_value failed"); + ret = -EFAULT; + break; + } + + if (!strncmp(value, fstype, sizeof(buf))) { + ret = 1; + break; + } + } + blkid_free_probe(pr); + + return ret; +} +#endif + static int diskpart(struct img_type *img, void __attribute__ ((__unused__)) *data) { @@ -935,7 +978,6 @@ handler_release: * that SWUpdate does not try to access the partitions before the kernel is * ready */ - sleep(2); #ifdef CONFIG_DISKFORMAT @@ -968,6 +1010,16 @@ handler_release: char *device = NULL; device = fdisk_partname(img->device, partno); +#ifdef CONFIG_DISKFORMAT_CHECK_OVERWRITE + ret = fs_exists(device, part->fstype); + if (ret < 0) + break; + if (ret) { + TRACE("%s file system already on partition-%lu, device %s, skip creation", + part->fstype, partno, device); + continue; + } +#endif TRACE("Creating %s file system on partition-%lu, device %s", part->fstype, partno, device); ret = fs[index].mkfs(device, part->fstype); free(device);