From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (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 5325E2773CA for ; Wed, 15 Apr 2026 05:23:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776230587; cv=none; b=rOyWuE5mEWyLKj1CUr0eLw4nVKjZa+YEjmCCIIxORDOWEolPzXWRIsfxD3G1lnnM4XOfbuVfQu+Lm5F+UeYBZxTY3mlkpj/4nutwAIYQi25txNBaQ0sY2xNVDZb5E6yRtiNj54tbJowb86ztQlpYoZkUCz9epjRKCJ31wVb07dI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776230587; c=relaxed/simple; bh=tWu1lpXTHRDMRDzkGxz0gbJneQ1GFIQiHbWE9Ytx2MA=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=FUqMju0ItUNpuP+LlrkkRnLoFL5A2rMkC+FxJYkRXKhQoIVg7bJFaxPPYtDJW5cpOruCAAkQSkPD05QRDMQtXav44fKQE7qDdKXWuff6JahGBxLURYxC/21PGxwxQzZILVXx01IxNj+q+IB812th7DoA2gGunNemmsY52Vb2HmQ= 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=VFdpzSm/; arc=none smtp.client-ip=209.85.221.41 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="VFdpzSm/" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-43d04fc3bf2so3762795f8f.3 for ; Tue, 14 Apr 2026 22:23:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776230585; x=1776835385; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=ahvhNnnqb7Kgkx1NCZ5CBW0y21V8G4hdByGJdydbTqM=; b=VFdpzSm/lYZN5TgUGFuNsr2liFAJK1h649pV4ZCvnjXRE0+wAQiYvh1CXc8SdkkJCh xOieHP7l92pDLbRwVhUcAcZyqYltVhNt88XjshDsFInsazHjo/J9ShhHVKR7+Yuwo8JU +vdnfnxRM6L9alUPxTXIUtBCi9Isk0aqRGdT+HWdi+5fTxkJDwznHdq0mTtbAgL0J4W1 VNWixCAXANoePbqal9un9ChDmJZcxdyM7vn9+iISAfaJA01wFZrpQPnzpW9/oR9PB/zg zbaCd9gEVM4hevwH5SzboHGrwcJ9zuPtCySnM6KwljA2Vks54RWftZdx4/2TyQjXtQk/ +kZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776230585; x=1776835385; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ahvhNnnqb7Kgkx1NCZ5CBW0y21V8G4hdByGJdydbTqM=; b=UGLKJyOcJQAMqDkpH4/wnwrQe8A/QL9XI4450E3CRppRiK/EtUN0XBeCW7GE83Xuj7 baBGCCNmH3zqq8erFKNMBA+Zvcq3rnJe3Ki0yRkuKY3PZGpCfN6Hutw3Yigcaq+0eOHu mPidHJ8UmXrDM9dnDacW4c9dkW6i0QfgcTrJldKiegOB3NZaGcRrGbKGJUxVz7S9QmtG mVkLmKVkAYm6iJcUA5b6rUIWFD6rfc8ku0qGGMmBLXoQCsmYc3qVShtFRUyl1jpl20/z KKQHq/636E1DtN4hLQLUeL6KnDEf4s6E//u0Gycmd5NOPPpG1WhxZHdnfba3Em51qfB5 tzDA== X-Forwarded-Encrypted: i=1; AFNElJ8pBUwp/iYlABrEToYZE07t9+esg1Iklygd0MBAfnui23J2z676hJMvk6+PWT/n1NN0RCB/z4CIfz4BbCA=@vger.kernel.org X-Gm-Message-State: AOJu0YyUzuiPHZlZDRCiqwYLAfxsndbd9LO7N3aLPoOcMZGlHdTk0w0d acTSWkYHr9XfLcb6nLC1Cz2HJjp1Z4pfsrwKry4hlInw7V62UG/owSb0rAYWOwlP X-Gm-Gg: AeBDievYMFOcu55Rg8/0b6q71c2jo8KmcmEs8Z9cRdxBZcUbn7d6o7xfa7fMH0tUCF3 E/kyzqi/7X2KOtd2hVmQ8UEAEwp3qJPx7/5XWvIejU4movDSiDSf72D8Z9zavgUt2g/6scn05rr OyhOZBd5pMQvE3WwUGs4u2ZnTxMXpWTXpmBs5+5iQ5qBOaXEKud0Wti2kIaPEF9kkVI+CMAPzF1 S1Y+BYsEEfimBnj8Nk9Qo38ifutow/9NJMXaH/jtMiU04JjKjA7CXvyOS6hUIU9r8+7CPzVXpyv EhwE39uuxZqeZ4RmtlIw0Th53fk1OKw+eEwei7yWs7fiCiRI2jHOz+ToUmuvJtTHswhTi+uaPUo w1bkgZk8f6+C+MZTUeCwZPKXqWzmL4YqhkU4ySlTVOw2kVIyvEvzWcm9/ugpaXu1cK0gdvIiF9x lMgzn3lADyfPYdsfHHl77CPgZFsuFoW3uGnGJmB86pS3szBW46JwB850rjvJQqasVrPI556MTT5 3N3WJQjFWkenPNICUjvx1w= X-Received: by 2002:a05:6000:2082:b0:43e:a70d:763d with SMTP id ffacd0b85a97d-43ea70d79a4mr7652684f8f.46.1776230584485; Tue, 14 Apr 2026 22:23:04 -0700 (PDT) Received: from dohko.chello.ie (188-141-5-72.dynamic.upc.ie. [188.141.5.72]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43ead3ebaaasm1851925f8f.32.2026.04.14.22.23.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2026 22:23:04 -0700 (PDT) From: David Carlier To: Pasha Tatashin , Mike Rapoport , Pratyush Yadav , Andrew Morton Cc: Chenghao Duan , linux-mm@kvack.org, linux-kernel@vger.kernel.org, David Carlier Subject: [PATCH] mm/memfd_luo: report error when restoring a folio fails mid-loop Date: Wed, 15 Apr 2026 06:23:00 +0100 Message-ID: <20260415052300.362539-1-devnexen@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit memfd_luo_retrieve_folios() initialises err to -EIO, but the per-iteration calls to mem_cgroup_charge(), shmem_add_to_page_cache() and shmem_inode_acct_blocks() reuse and overwrite err. Once any iteration completes successfully, err becomes zero. If a later iteration's kho_restore_folio() returns NULL, the failure path jumps to put_folios without resetting err, so the function returns 0. The caller memfd_luo_retrieve() then takes the success path, sets args->file and reports the restore as successful, leaving userspace with a partially populated memfd and no indication that anything went wrong. Set err to -EIO in the kho_restore_folio() failure branch so the error is propagated to the caller. Signed-off-by: David Carlier --- mm/memfd_luo.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/memfd_luo.c b/mm/memfd_luo.c index b02b503c750d..35d1247281e0 100644 --- a/mm/memfd_luo.c +++ b/mm/memfd_luo.c @@ -427,6 +427,7 @@ static int memfd_luo_retrieve_folios(struct file *file, if (!folio) { pr_err("Unable to restore folio at physical address: %llx\n", phys); + err = -EIO; goto put_folios; } index = pfolio->index; -- 2.53.0