From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70B1C2609E3 for ; Sat, 18 Apr 2026 16:34:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776530056; cv=none; b=S9JOWAAqVoFRPz5pTSj4z/DwTuOcNXggyvKT5K5r7nDPFq8Ij9FpcWeVF9kIiKKC1dSvrhDFLhhwLm9RGTbcorlKxXN03AOxM5PFHO8yn4pO3wv4V4/Iyu0BaCQWHxr+0lz1zVvZb69SxqJHoRR0OdENVnNxFrWggETcg59/F4s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776530056; c=relaxed/simple; bh=9FPE02ERZryko8uGsS8iQk6xBAb6rnmNKWj00ovQPD4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M/WDiLyzxqG73ChIjx1PX0uiDCx8Vg7po7Hk1cay74mSiRnvdIMEZI5QUwXDrTLgJKMiT4tvBy+62TneV3n+GscL6/f7XyPV2Sne1O2bSiMBI88C863oMPk05GyIehRfUvu5PX16EgKFYyM+/iHyX76MVMX5gTsdkl/SDY5N/ak= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=KREHc6tG; arc=none smtp.client-ip=209.85.221.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KREHc6tG" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-43cff5dafc3so1258426f8f.1 for ; Sat, 18 Apr 2026 09:34:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776530053; x=1777134853; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vjAX0smE41BTNjnnRZCLx7DL1jbmxY9+auerdTALqsI=; b=KREHc6tGH54heqBBLfD4gWbyUVAfYAr+DfdAx7Y82jMr6hP8j9HXsxgQdbAiAsIwt9 wZ3a81657RpLRGrEPZ0cD6n14dQt5nbd/Y6UZ8iBfhIJ2+ckRMDhxvAr0uaEhj03XC6k WDI2I2aTK39Mt/64EAmg4oM6vG+xECfKfYB8O/qLp3W4F180/AWN8r+0Of/oR+HRcn4H Yct/MyP/qOlBLipUNmvFE87TLSGM9M9t50YihoQlkX+2OIK+Jlt2mD8587hKrtaoS9C9 hszfS/oYih1lwU8cPgrRccO8D6a8UMZh+UylREdXvJvcoRKAHzxjKUZSlBDSHVRW6fvi ay/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776530053; x=1777134853; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vjAX0smE41BTNjnnRZCLx7DL1jbmxY9+auerdTALqsI=; b=hysFOk/Pge3Q32osYNCF1BhKfqkYhKIG6w188pdLaiQuzuP7bO7lqFzUAczi4JGatq 781tMJ+Q8/jtteVPIdrm7+cP6QgMAaToZJRng5V+2FLfWwLB4LaB6dmRZHwITSMoTkFT WapLQTfZJQS5A1ScZukHhp1maT0KF3yQ7JFCQGIc1gT2iqeZmM4YgPshYmtIQx373tGW drqD7Azx8jrGH2lhQRK7OBLMDwDsh1YY8dbXaECUpRq0bxCJrIFqKF13p9fQ2c8WJ30O xNrRn01k3MgPcGdxfgSDPj7XpCvLjYmKYSQM0JqGftz+kROsfNh68QhiAmvs9+fi9pGB lp6A== X-Forwarded-Encrypted: i=1; AFNElJ8rLrPdXc1UZtoPyph61eHTN8c0CMG1WUXhjYTOtCW1wZeokFgt+cjgQvTohLPo3sNkY0Nn3E6L57bRWaw=@vger.kernel.org X-Gm-Message-State: AOJu0YwdhVYtZO/VXnikJjXzMIHTO2oyXSkfbQ1gCoHMRRYdMAgXrzvD QEQx+BZMj/YjYdbkAT9aPOh2gD3v1rowf6OS+XficTF59DpITIZv+7f8 X-Gm-Gg: AeBDietIrCuXuzZSQUKCYl00hmOxtpgEOg3O0R+JymcJcLlVTaM8LTuXhrekddlF14v m/vNmsYRx9emg1eFv1Cuv6p9g2qWFMqu6U9JNuiu1LgwxueLF+tJljIa9YZbyFT6R0qC98iLc5/ 155O6bPC6U+JpK5WWHuQ4t3cjscrNkC/qtY7GU1eOkFu+/MCYGHswmdcC/sZqdcaOUr6MksEU4t ZF5kn/M5/siNYxNhtNK0JBU1nFbL2jNId7E+igfuLqrr89A+yBCZr+6NmRs3Jhm16g+eQo056R2 nRs9hNmxdoPORafCZ4OJzzyc37H39sNOV61S1l/ymPXpQCPWk6N9qpOHf2wBjAflBwyRqF9xF2O TakUktbybeEOaF0mRlcN7XqAnOoQBcLY3I+j2O6IeMLHvUTxcxUMKVPs5TE6rVS/AnUdaXYZLvO GVOW3rMSDocD25UnHnY8qYd3HQSIx6pyEn+BUMGVWUNFSUVsTIlQ== X-Received: by 2002:a05:6000:4283:b0:43d:7ea1:fb53 with SMTP id ffacd0b85a97d-43fe3e15f7emr11405373f8f.33.1776530052685; Sat, 18 Apr 2026 09:34:12 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:e054:93f2:97bf:84c6]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-43fe4e46898sm14205702f8f.27.2026.04.18.09.34.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Apr 2026 09:34:12 -0700 (PDT) From: luca.boccassi@gmail.com To: kexec@lists.infradead.org Cc: linux-mm@kvack.org, graf@amazon.com, rppt@kernel.org, pasha.tatashin@soleen.com, pratyush@kernel.org, brauner@kernel.org, linux-kernel@vger.kernel.org, Luca Boccassi Subject: [PATCH v8 4/6] selftests/liveupdate: add test case for LUO_SESSION_MAGIC Date: Sat, 18 Apr 2026 17:28:21 +0100 Message-ID: <20260418163358.2304490-5-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260418163358.2304490-1-luca.boccassi@gmail.com> References: <20260418163358.2304490-1-luca.boccassi@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Luca Boccassi Verify that fstat works as expected after the switch from anon_inode to the new magic number. Signed-off-by: Luca Boccassi Reviewed-by: Pasha Tatashin --- .../testing/selftests/liveupdate/liveupdate.c | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tools/testing/selftests/liveupdate/liveupdate.c b/tools/testing/selftests/liveupdate/liveupdate.c index f0a8e600c154..5e99af0cc6e9 100644 --- a/tools/testing/selftests/liveupdate/liveupdate.c +++ b/tools/testing/selftests/liveupdate/liveupdate.c @@ -22,9 +22,12 @@ #include #include #include +#include +#include #include #include +#include #include "../kselftest.h" #include "../kselftest_harness.h" @@ -387,4 +390,41 @@ TEST_F(liveupdate_device, create_session_empty_name) EXPECT_EQ(session_fd, -EINVAL); } +/* + * Test Case: Session fstat + * + * Verifies that fstatfs() on a session file descriptor reports the + * LUO_SESSION_MAGIC filesystem type, and that fstat() returns consistent + * inode numbers across different sessions (shared singleton inode). + */ +TEST_F(liveupdate_device, session_fstat) +{ + int session_fd1, session_fd2; + struct stat st1, st2; + struct statfs sfs; + + self->fd1 = open(LIVEUPDATE_DEV, O_RDWR); + if (self->fd1 < 0 && errno == ENOENT) + SKIP(return, "%s does not exist", LIVEUPDATE_DEV); + ASSERT_GE(self->fd1, 0); + + session_fd1 = create_session(self->fd1, "fstat-session-1"); + ASSERT_GE(session_fd1, 0); + + session_fd2 = create_session(self->fd1, "fstat-session-2"); + ASSERT_GE(session_fd2, 0); + + /* Verify the filesystem type is LUO_SESSION_MAGIC */ + ASSERT_EQ(fstatfs(session_fd1, &sfs), 0); + EXPECT_EQ(sfs.f_type, LUO_SESSION_MAGIC); + + /* Verify both sessions share the same inode number */ + ASSERT_EQ(fstat(session_fd1, &st1), 0); + ASSERT_EQ(fstat(session_fd2, &st2), 0); + EXPECT_EQ(st1.st_ino, st2.st_ino); + + ASSERT_EQ(close(session_fd1), 0); + ASSERT_EQ(close(session_fd2), 0); +} + TEST_HARNESS_MAIN -- 2.47.3