From patchwork Mon Aug 26 06:40:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Adler X-Patchwork-Id: 1976621 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20230601 header.b=r1XfD4Cc; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2607:f8b0:4864:20::63b; helo=mail-pl1-x63b.google.com; envelope-from=swupdate+bncbclp7i7wwmhrb2ghwc3amgqe6yhojtq@googlegroups.com; receiver=patchwork.ozlabs.org) Received: from mail-pl1-x63b.google.com (mail-pl1-x63b.google.com [IPv6:2607:f8b0:4864:20::63b]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Wsh2232NTz1yhF for ; Mon, 26 Aug 2024 16:42:50 +1000 (AEST) Received: by mail-pl1-x63b.google.com with SMTP id d9443c01a7336-201f2de64ddsf43498735ad.2 for ; Sun, 25 Aug 2024 23:42:50 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1724654569; cv=pass; d=google.com; s=arc-20240605; b=A6F0HBsqdHRUiVZKTFpG7okBfvQIJ1+wqi4ALzuxhH2pchc5LFBrLaLB+TJC3lLkMo GVc49D3EsWtzll2usm6o0EyC7sLtrvLTbEcsedwafmkFINsYiXd1XKx6fh3y+PSPX34D K3vhpAlF6LIcAqdWJXu3/a9XwpkAMjg/7eyQPIWOJzSIkuYy8l7271KP4OYWZMNc99d5 qQgmCpXH9pnpjrxhdzDktegwtzAPmq9aD9TcmVkAzF9SuYaTocL4RMUoajA25qfE05tt qHNu6Ki0WHfD1qWs0F7kt1imeuPILQ/yrI9nlAvxxPkUWQKpQtzPetn7xQ6hzq8wVA/Y np9g== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=mGr5CgSkwL+O0b0u8QxW3SGlThjaiG/ZdPBa1Pyte94=; fh=A+iiAYcpUPwseh8gC/burobciJk2Q4PrQlOKxBndhMQ=; b=WelJ5JVXR+xbCO8nNE7f5oRuoUgA4xl/LPe73oMDNVTHmL9aJoPvts9ugIp8KNvq6Y 6uOS3pylkQ1HzK3wsGr3Wg6E9iujhztadeIXtugHHCyq7EL4LGfdWz0mOiZkZP9WqXqt zOYPzcc3D7QjzlQ6tDFxQA7a77lI6U2HXdrWRWoAiViF+Q9Gxzl3hMPWUQXfBWKZ7Kx6 F5a2Kwc+aP5dQQYfKRzBJcI1vweUu097QMuSd3fi/OJx+Yim4N+sigEKAWmeJ7mFtjuz 9YUo7WyKplRfy8T5dFKC1YTXNnNVyb4+V8FcnMp9Y5Lyx1nj0K5Jb/1PTzIl2pQ053Fx /m5g==; darn=patchwork.ozlabs.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=ZjGeLCFr; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of michael.adler@siemens.com designates 2a01:111:f403:260c::62b as permitted sender) smtp.mailfrom=michael.adler@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1724654569; x=1725259369; darn=patchwork.ozlabs.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=mGr5CgSkwL+O0b0u8QxW3SGlThjaiG/ZdPBa1Pyte94=; b=r1XfD4Ccd5NQxWk7Bn8gdBjsNwcKRlW5EZJTtasCFMvpSKtZwdIdZYUMvnWV5GOWVV xEqcEGI2YZfxgCc5A8Gsm4ELV7kCWXG3aX7HcYeJD7BXX9iWwGAkhm1SQsOCe6udqe3k Kohd4rdnrGUKEODRQ6TLN6eBsKbS19AANhhUwDaqNk0ZpQzox73bNvdhJ0wGpXdEqnk3 BB2efhSkC1X43zDhQ+8Qlw/64D6dy0BLw7vuNZxhTxPSnsV3XIpZ0/L3YOiw5Q0atp+Q mQDGZBD+N7Fibf6PZlJ8fAPfwyPAbrV1dK+idvKizfH06A5zoL/CDcSczB4r3lZh8irF EGvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724654569; x=1725259369; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=mGr5CgSkwL+O0b0u8QxW3SGlThjaiG/ZdPBa1Pyte94=; b=N+4QcjNYidYSHb/gHS+anqz3u+g3ynfwro/ZIrE5z1qiUQwWL6g8i3QgG+qnuZY8ge Q7h9YVG9sVm3t5dYZzrxZdcGX8LfZwKQJeQtL9K3czPeGVdp1gDdFy4ZJfFGphZYxTe8 2p5AJH3vCSrdFwHyOmXovMlpqa3efhcFVZAIm7ECzg7PA1mRmeJDRG7F8tVWwIDPOZP8 DHoDp6KLoSI8KGmA2mARgsxB9c+aEW/GCSwjYJp2v4FdbDeOaFcL2dQ/JpWKl/y+O1uk Ufmw0YxqvQx5Wz5OlgNMpwtIi+1/u7g7d8HkNv+CA6pYnoJf+XXF/j3cEytH9AQuS+e+ F9pQ== X-Forwarded-Encrypted: i=3; AJvYcCWmpONg8U8QTHPOnoPzLkxWzG/BLszq9Dr8YS5XTDGBkL6J8Xb4Xd9vrdg+yTdsH6nVQBRDSzp3Fg==@patchwork.ozlabs.org X-Gm-Message-State: AOJu0YwjzY1dMBhEhA122JEUm/OE9IZEvXhtNgFwDyHTGKtIMnndTzdT lY4+EwRudvIlOdf4EQQN3gxqBvjB0QfwR3ibbkR5SuRQM9UkhrNC X-Google-Smtp-Source: AGHT+IF1s+M6F3KVIdpFdobEaaHv8xGvSKVZhTOZumWUa1MEREyxljuSrNX7RCO+9CNm8Ax3O0j40w== X-Received: by 2002:a17:902:e551:b0:202:2b3c:9ace with SMTP id d9443c01a7336-2039e489363mr94282055ad.30.1724654568852; Sun, 25 Aug 2024 23:42:48 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a17:903:2303:b0:1f8:45d0:8b5 with SMTP id d9443c01a7336-203824e02e9ls26219975ad.2.-pod-prod-06-us; Sun, 25 Aug 2024 23:42:47 -0700 (PDT) X-Received: by 2002:a17:902:e5cb:b0:1fd:69e0:a8e5 with SMTP id d9443c01a7336-2039e4e850bmr102390255ad.41.1724654567474; Sun, 25 Aug 2024 23:42:47 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1724654567; cv=pass; d=google.com; s=arc-20160816; b=Ur6USlPxmj4Lvkgf6X4i9ggkTOj6gYc5j4SUks5GndjUzfVx1MVcMeP1aK34Xpapz+ FiuzxwXrCnFZ0k/lfK+tYU6iNuinOP90QR3cT66DZ/fECABrNj17gjLGV/tCeU68mxuw kZJjUqPVzyRoMGtVD/N1fiCtVcC3NUGNgQ1kPOwnh+M9s4H1qCkXdyejgmexzT2tNV5J +3TKL7r2IaYe3LmWndIN1y+0ef/D+YcFTryO0VCi34Xy+OX+y81mN4azkZzYuVTzEjL1 F0MUyeW636zhl7s2ACNqsDLH2qSKf6ecrF2XHPdqRC0W6TOOgMWUusVf9sVSwNRGT6/n U7aA== 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=/xFQsqqmy4823WWxt8L8iInvJ38LLHarvGy6ubcbTic=; fh=pJ2QQAjkJ3PWvKTF55tgLj/Eq5DHqWw4uU+orlV1UBs=; b=b7cuzTi48X26jkvfXjOZ696yzVxV0LfXOkjoK9e1z2/W6K4+TCRXCxMnOJeGFH0GxZ fszJsWRTNWuuSQ+5j54Ed8hhdhWr3cP8HbaB7rMjE63nzTQ4lylsygjfeK9QakgqGEkd vnrpZb33CDgnCPQBwEEXRdzEWD3b3D4NQyJJlGst+HG1F8erPAcZVlF23hF2pXk2ieY2 2qAk/9wJ59y/tnP8xSx2fodp7bTEeIVi4p9nCPbbcGPS46rojBZKFPpYVTDG5haX1rsD tkk/wzPA7B2mCBjv7eo0JJPwECAfmPtLYDU+ZPY5ies3VKFwiYkb/ggMsWOn5TvlKoNK HmLQ==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=ZjGeLCFr; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of michael.adler@siemens.com designates 2a01:111:f403:260c::62b as permitted sender) smtp.mailfrom=michael.adler@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2062b.outbound.protection.outlook.com. [2a01:111:f403:260c::62b]) by gmr-mx.google.com with ESMTPS id d9443c01a7336-203859ef113si2967365ad.12.2024.08.25.23.42.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 25 Aug 2024 23:42:47 -0700 (PDT) Received-SPF: pass (google.com: domain of michael.adler@siemens.com designates 2a01:111:f403:260c::62b as permitted sender) client-ip=2a01:111:f403:260c::62b; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SZg6LYfiINKUmSOXRNKsy57G5p3A/qT8+ByBbq26+jv4g9tOoyqX+bBzyMqeM5R/uFPRvnuoRMo0vECJsPXEZ7NG/n3RqADi4BD0HdGhsmcPcBG+Betn3RbRvaf5veuZrqHnmtX4b2Sh+uWwvkLbaH6fyVh2YkxIEkkaNABC+fta+fVQ4ojZjECBqrNNc9ytuT6WvtokY+JBxW2ICGPIPZPHkg6Bb3ynNrGTGGBJYhwfl7oxLBcjSe/0jNpwLgzp6xk8/bNxy3MiPi/isDwq+LFn3LGOb7oeradJdiGPYeUTx5Aik44+qgxUhCtbK+S/l1YfD/oBYWMZaEsTqKhRgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/xFQsqqmy4823WWxt8L8iInvJ38LLHarvGy6ubcbTic=; b=wubjRvmWP0ltx6qe6n/x1BteC7n9Ky5XHnTQDVCAl6Y83aa6BRPlERNiTMzCRq/8AQC3Wu0lPNSbIE8iBA/zCvw1odu3N353ISFBbrl4N5odJBSj3bDJ761uWIZdOejAS/umUYy+PLBVqUCBkKC5hepq9xKJI9eryHTRzOLqWJNakzInp898/f8cKgs88/cvgEa9/7b8fCE/Q/fKXSgvzQMdcWCuSpMCJoieaLW600ZSFbhMVASQ+c6myPV5QCrVOkgMuwvXREZoRDo0e9F8sUOy7nWh1j21sYRBh6DDVxiRaYQkZMkitCqXQi+Cfch/6tz5sakPAIQsHE2XJnOD8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none Received: from PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:12e::15) by DB9PR10MB8285.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:4c9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7897.24; Mon, 26 Aug 2024 06:42:44 +0000 Received: from PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM ([fe80::7499:8576:c129:4b89]) by PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM ([fe80::7499:8576:c129:4b89%3]) with mapi id 15.20.7897.021; Mon, 26 Aug 2024 06:42:44 +0000 X-Patchwork-Original-From: "'Michael Adler' via swupdate" From: Michael Adler To: swupdate@googlegroups.com Cc: Michael Adler , Christian Storm Subject: [swupdate] [PATCH 4/5] diskpart handler: add support for fslabels Date: Mon, 26 Aug 2024 08:40:05 +0200 Message-ID: <20240826064006.41623-5-michael.adler@siemens.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240826064006.41623-1-michael.adler@siemens.com> References: <20240826064006.41623-1-michael.adler@siemens.com> X-ClientProxiedBy: FR4P281CA0045.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:c7::14) To PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:12e::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR10MB4734:EE_|DB9PR10MB8285:EE_ X-MS-Office365-Filtering-Correlation-Id: e5bbadfb-6cab-4973-2bc5-08dcc59a4aa0 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: drQVcgr3DjgE8MLp+kwrrKuyqZGe1m1jwf+wRdVlTXZMgSNy6ptuvDSzcmyQaB/S95sxeTrzRDWYqVYYPNecQuS9MtN7Du4TH2VWzsJPZc+/fWJGvUzOxea6vnk/uqniU8qb1t5vSUr/hPl9O/9k39VeP11UglUY2RHSJagxAL3KWdq96EYdYUl+2HLHI7fekuJe8wfBVj3nOIoN0jU9ffGdGFO+/ERV6lvXmcMt0Gq+UJt45oLrzwNlyQyMR2PvBjfA1+ITR+KtgQc49+Py+71uWTD6D5PWPwJuvQdCQL9zIKCuWL0rzvDxelZiY2XoHQ2fDjKhiyN1sgDh2NEWJj6zNZ0rM120ZFTCLuHAJIQ9Lc6lduJUVKDDdYnvVvO2YhySl0tdm5/4i+Pb92lbBR3Nn0n9ehBhMvGTGHm1oH4+WVAgjeuFXOFW6a81ho11UyWqmsk/HWPCWUjJCa17q7Xk0YrVlWZE9thqROvzrvBPzhO9Rrs1fRvkkVnwHf91jRPBA25ijCDUJjnca5ySbwP60RYAnXBAC2atRFVJIEZTxjklLtwcTXvP5O6xJDON+DaNmz36X0swmm0V5H4Bmbuln/kanNtkqtZZK+B6mO/swGSi81hacqSlmncklgHdhOFvuqHO8oA/OdLBfC/Ami7R/Ju1RxPZnQucOxliVqLnd6rL6FWq9vppJ+QPSJzbMAj4GPDcZgWV0pmS3O09Z5SzR5+uhRUWVrLtOIzDsYL7HVZkqK+fhT2EKjgQAiPDgudDlDEPCzsARDQAJ2L4XbpQv1Shu28ofn8WVMYBvHdigc7T6oi7LmwaL6ypaAcSXIreJZUQ7lMftEhxvzJayr39QOIa3wywvrF/Mul9HoQ2XEq/UvRuxFizSy8jorv2cdMDIL4f6/FtOG6DaucuioBNYBZjcze4JVvn9cksJE4DxCcXvoizU7dB4nYsdhogXEW1wqPVHlnjtvLL4605JZDh97jzfwFOPCoBFq/opc11J3ER/BYy9lLHXAqgT85c5YvW2iwP6yKZeCuJWA/F4P/fnzD00XyHHdB4b/po487xupZ/byVmmeqPGgPCBeTE1qDJEE7O2dN61Dv0i2Vp4gHMU6Zxghd9Eg9VxRiYEY2XG42CBR7MmesbBAoiuAOoN9UXz/kDq+i/Poa6ULquyC3v6uDhxswWBUEqDEtdqSby6/9aUz97C73C2x1eujGOEBj0kZ6RXz0S5yVRAc+UYcnX4l9cGya3PI9rHyIFunRVewNW/bcwUFzD4WZ+wKpraDXaWVBKEK0bbqSTXwtwatIG8Ct6QSP6LuBFjW13gPTUMAadxCE6Bm88Edhelb0Na5DQ4OaZn2hwEDHdOR9tGw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 05S6LQ/6kiIzH0hk0+ZEI+UGRBS+197tvDQMc89Ab6PFnvwwj/QAi4JeyNV7AAJ5FeQhjXaHcwpBsTS6bT7mLfmmYKgFvZvwCSz4J0J7yasocOFExVywVQEp3DO14sXQIPPPJ4SQEgPCyQRLdUnY6DhQsml+BnRj5t36CYCa9NrjN4Ot0UWTWzxpkMewFDUiPPlZehf5RMu2Xxh7QigaN8LaZ5uEmNm6dGJSSLXOEuy/LeQvDMZxqOnBXzQJw/HYsQ2SNE3Q+ZGxrQusfOwc0qwdtxN1r2SAnEZPkSN4nX2OUqOEjxE2IAym921ab0ClPl87DHzzIxbyu1v5iq+p+8vJx5/PnF3NPPmqp/cx3IFaSmAFGuf8ats8WdL0gUQoDG9YxkwQfLAFU4ut+2bwy3c0jY0boE1KkNV/JY1rOKg+9JmzK5Ci1NNWFwMFK5FH0yL6ttWbJgwmmztUOd5Jap9sXRIiFf94czvTWCDha+rDUxLKtzskows7jRqS8MrM2iJL0gXsVj77slSG89RPrxF6sXb1AJeHrsm4j8aVSWy36WUSL7WfvtZ5MkxdCvRMXmZ5WS9lb48rATHVqVmkHIcyCYP7hdm39a1+Y5eRae35xb7/7DI5Kl8U5y1/TGOvoXCs80lhhJtm7rjWi2GZymBfC1byMHj+ZTR3LPklpxVmhfX+w7phxxLQ4Nd/DyDsfjfH2EWCKyrN1NgiEqtyNGzjTclA20lB4UYYJWsysxDl0dWvXp19JCNXitgkSdamFmiWD6nv9mCPVG/gLrINzWsHaU6I8GHaDT3WzsNXbe8l7YIGHGyeEz29VZYRE9niFHFmVBcCk7l77O4yUlijKFnqkogtH1Wo5Z2o2w0qomtlQHBtojRdpFIqa2Vc39pSZWJMG3LbeknvSG0UJkDg6ND8JF/kFrE9dr/ZnyhvMw4JKN7uKECUKxG9paAzqFC86wIa2XJ/vv2RxVqV+VItIb4Rj8U2GUhigLN2y8vSmSqU4sFqTY1ARQLsQw3Jtd0U2n3Z55ZNCaeuTO2+CJ/vHWGghtBy8Ne0PyIwWc8xWy1H4rdi/SjCxsoCXJt9OfCYvLfh/B5D6fWUJIqoJJN9bdfTlwPbY7CGikdCYdoqFCwkGcHEHC1y7dd3B2zKf2bxavQ2BOHVV6V1zm0OZRaBemiWcDJXzpuorVCz+TTFQH+ZgLD7mk7qbYnVq/ZFXauR/1MJqaMIGvaojA5ISAQrO5djh+pf78XgV+l9L8qglMrYUVAVgXCI2wIL/G56/UXlhlevvntzC1Z+R94uGPFhhfPNnHeyTmGPLMFJfjk2nRhHemkTz5239g9FNwJTUWQ9iOCFnoOG29TGz0i9ONMarRetQSK3757Jqh+sx4fm8FNB0sLtb0bcHeinkhQ5xQpC+ge2lfj/4hZKRWm+h9iNyQueLjcULfN1AMc4b2eZcSVdHgXnPrDdcf9U1yEX+uYH22uuXsOlzetP0US+cpZd49SwnxHaihwfplEhNrcWoOXpx+5daLik8VZgIOgphHV56xmSE4SbR8nF2bzS97dCK9jNwwY3mNgWIRjNokwsxc3yP133lAWlEcM2pkH9kinZbcBTEU143ZfF1ZWu9/gZEA== X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5bbadfb-6cab-4973-2bc5-08dcc59a4aa0 X-MS-Exchange-CrossTenant-AuthSource: PAXPR10MB4734.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2024 06:42:44.8388 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bauSdhOpf5CUIm1K9AJomPocqENMbmNu3F11UnmDTCERCtaYdDzarzDm3ZcszqbbgKrmEY5SlWPGRuEEas/PGTZVJB1MRJlwBUDKIPAo+nQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR10MB8285 X-Original-Sender: Michael.Adler@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=ZjGeLCFr; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of michael.adler@siemens.com designates 2a01:111:f403:260c::62b as permitted sender) smtp.mailfrom=michael.adler@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Michael Adler Reply-To: Michael Adler 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: , In addition to creating filesystems, diskpart handler now supports setting (FAT) filesystem labels. Labels can be set using the fslabel field of a partition in the sw-description file. Previously, external programs would have to be called instead. Co-authored-by: Oleksandr Makhmudov Signed-off-by: Oleksandr Makhmudov Signed-off-by: Michael Adler Signed-off-by: Christian Storm --- fs/diskformat.c | 21 +++++++++++++++++++ fs/fat_fs.c | 41 +++++++++++++++++++++++++++++++++++++ fs/ffconf.h | 3 +-- handlers/diskpart_handler.c | 37 +++++++++++++++++++++++++-------- include/fs_interface.h | 2 ++ 5 files changed, 93 insertions(+), 11 deletions(-) diff --git a/fs/diskformat.c b/fs/diskformat.c index 86e8c59f..643be482 100644 --- a/fs/diskformat.c +++ b/fs/diskformat.c @@ -66,11 +66,16 @@ char *diskformat_fs_detect(char *device) if (len > 0) { s = strndup(value, len); + TRACE("Found %s file system on %s", s, device); break; } } blkid_free_probe(pr); + if (!s) { + TRACE("Found no file system on %s", device); + } + return s; } @@ -117,3 +122,19 @@ int diskformat_mkfs(char *device, char *fstype) return ret; } + +int diskformat_set_fslabel(char *device, char *fstype, const char *label) +{ +#ifdef CONFIG_FAT_FILESYSTEM + if (!strcmp(fstype, "vfat")) { + if (fat_set_label(device, label)) { + ERROR("%s: failed to set FAT label", device); + return 1; + } + return 0; + } +#endif + /* failure by default */ + ERROR("%s: fslabel feature not supported", fstype); + return 1; +} diff --git a/fs/fat_fs.c b/fs/fat_fs.c index f560a795..f575e334 100644 --- a/fs/fat_fs.c +++ b/fs/fat_fs.c @@ -45,3 +45,44 @@ int fat_mkfs(const char *device_name, const char __attribute__ ((__unused__)) *f fatfs_release(); return 0; } + +int fat_set_label(const char *device_name, const char *label) +{ + int ret = 0; + + if (fatfs_init(device_name)) { + return -1; + } + + FATFS fs; + /* initialize the library (without mounting anything!) */ + FRESULT result = f_mount(&fs, "", 0); + if (result != FR_OK) { + ERROR("Failed to initialize fatfs library (reason: %d)", result); + ret = -1; + goto finish; + } + + /* try to read existing label and do nothing if it matches our label */ + char current[12]; /* 11 is the maximum length of a FAT label, +1 for null-termination */ + if (f_getlabel(device_name, ¤t[0], NULL) == FR_OK) { + current[sizeof(current) - 1] = '\0'; /* make sure it's null-terminated */ + DEBUG("%s has fslabel '%s'", device_name, current); + if (!strcasecmp(label, current)) { + TRACE("Current fslabel '%s' matches new label, skipping setlabel", current); + goto finish; + } + } else { + DEBUG("Failed to read existing fslabel"); + } + TRACE("Setting FAT fslabel '%s' on %s", label, device_name); + if (f_setlabel(label) != FR_OK) { + ERROR("%s: failed to set fslabel", device_name); + ret = -1; + } + +finish: + f_unmount(""); + fatfs_release(); + return ret; +} diff --git a/fs/ffconf.h b/fs/ffconf.h index b85bbb08..c0ec53db 100644 --- a/fs/ffconf.h +++ b/fs/ffconf.h @@ -73,8 +73,7 @@ /* This option switches attribute manipulation functions, f_chmod() and f_utime(). / (0:Disable or 1:Enable) Also FF_FS_READONLY needs to be 0 to enable this option. */ - -#define FF_USE_LABEL 0 +#define FF_USE_LABEL 1 /* This option switches volume label functions, f_getlabel() and f_setlabel(). / (0:Disable or 1:Enable) */ diff --git a/handlers/diskpart_handler.c b/handlers/diskpart_handler.c index e33a4517..06b4578e 100644 --- a/handlers/diskpart_handler.c +++ b/handlers/diskpart_handler.c @@ -61,7 +61,8 @@ enum partfield { PART_DOSTYPE, PART_UUID, PART_FLAG, - PART_FORCE + PART_FORCE, + PART_FSLABEL }; const char *fields[] = { @@ -74,6 +75,7 @@ const char *fields[] = { [PART_UUID] = "partuuid", [PART_FLAG] = "flag", [PART_FORCE] = "force", + [PART_FSLABEL] = "fslabel" }; struct partition_data { @@ -83,6 +85,7 @@ struct partition_data { char type[SWUPDATE_GENERAL_STRING_SIZE]; char name[SWUPDATE_GENERAL_STRING_SIZE]; char fstype[SWUPDATE_GENERAL_STRING_SIZE]; + char fslabel[SWUPDATE_GENERAL_STRING_SIZE]; char dostype[SWUPDATE_GENERAL_STRING_SIZE]; char partuuid[UUID_STR_LEN]; int explicit_size; @@ -1163,6 +1166,7 @@ static int format_parts(struct hnd_priv priv, struct img_type *img, struct creat struct partition_data *part; LIST_FOREACH(part, &priv.listparts, next) { + ret = 0; /* reset result */ /* * priv.listparts counts partitions starting with 0, * but fdisk_partname expects the first partition having @@ -1175,17 +1179,22 @@ static int format_parts(struct hnd_priv priv, struct img_type *img, struct creat char *device = fdisk_partname(path, partno); + bool do_mkfs = true; if (!createtable->parent && !part->force) { - /* Check if file system exists and if so, skip mkfs */ - if (diskformat_fs_exists(device, part->fstype)) { - TRACE("Found %s file system on %s, skip mkfs", part->fstype, device); - ret = 0; - free(device); - continue; - } + /* only create fs if it does not exist */ + do_mkfs = !diskformat_fs_exists(device, part->fstype); + } + + if (do_mkfs) { + ret = diskformat_mkfs(device, part->fstype); + } else { + TRACE("Skipping mkfs on %s", device); + } + + if (!ret && part->fslabel[0] != '\0') { + ret = diskformat_set_fslabel(device, part->fstype, part->fslabel); } - ret = diskformat_mkfs(device, part->fstype); free(device); if (ret) break; @@ -1323,6 +1332,16 @@ static int diskpart(struct img_type *img, part->force = strtobool(equal); TRACE("Force flag explicitly mentioned, value %d", part->force); break; + case PART_FSLABEL: +#ifdef CONFIG_DISKPART_FORMAT + strncpy(part->fslabel, equal, sizeof(part->fslabel)); + break; +#else + ERROR("Partitions have fslabel entries but diskpart format is " + "missing!"); + ret = -EINVAL; + goto handler_exit; +#endif } } } diff --git a/include/fs_interface.h b/include/fs_interface.h index ccfea6bd..3012f349 100644 --- a/include/fs_interface.h +++ b/include/fs_interface.h @@ -12,9 +12,11 @@ char *diskformat_fs_detect(char *device); bool diskformat_fs_exists(char *device, char *fstype); int diskformat_mkfs(char *device, char *fstype); +int diskformat_set_fslabel(char *device, char *fstype, const char *label); #if defined(CONFIG_FAT_FILESYSTEM) extern int fat_mkfs(const char *device_name, const char *fstype); +extern int fat_set_label(const char *device_name, const char *label); #endif #if defined (CONFIG_EXT_FILESYSTEM)