From nobody Sun Apr 5 16:54:05 2026 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (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 C291142050 for ; Tue, 24 Mar 2026 18:03:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774375400; cv=none; b=Q98+0SYLOfSldgQ1i7hLAB7+uM6PHgjG1jleA5Le/9ervWxwyLY3vrwcB1suu+n7RtlIZs/yTDK2tDmdDMiZA1C+FERktp3/GvNeeFjrQR+vMeiXRQ/KopJoxb31YneH3Rwh6aUDpj92ZxmbP2jUcCJR3eUp1fX+vYFRfgns514= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774375400; c=relaxed/simple; bh=xarzotv2pS5bvC40vvae5JYnkPlQQjzJd5Q+5QwdXNs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DHR0tMdiFZe4WEwMpxfs4bIil0UmWHVwKRxGcJqTNSx/50lPDBcz4IxiuelBDK6DU1jnFVseAlQPTATBgLGBNDPgTsgAKW2Ozcyeahk+TH0InsHeWBTh+g0m9sADmbx8GEr2zyzADmn58Avx71noIeHIiURfv+b2WE+8k1MNau0= 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=Debn2pmW; arc=none smtp.client-ip=209.85.216.42 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="Debn2pmW" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-3590042fa8eso3712287a91.1 for ; Tue, 24 Mar 2026 11:03:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774375399; x=1774980199; 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=JblQKHB4m9kg6NYLv31NpxpC7SBbLjv5pn+enlC7Y7o=; b=Debn2pmW2FpfqGQ5qGSvsLZ4SlOEJij1NuEQI5yi804k3D9rNchZufpYfx6VSr+fqj LXfD5Rui0EC5UO9uIPXroOOW6vtjpO2jEZBtfQwa+CMN6scK9F4LKIkyaSRdY09rvqzv xm2kc9yjDKmZw17G+8I7X2yiPCCiIdshiwQmaUt+mXYUzN9ervOHMmHlu+Xl+wpUdisC iQtZoLBGz3h5XVricRVQl/8r0/TeoznmqdRkoWHVSxZx2LQnOLRTEr/2Z+UFA+yswex2 0CsqPAr4neLvKmAyK/y3RcYJfkPkWO/oIIeFVc9jw4g3cW2MZoiXUMoKn5ZqtTELGSts eetA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774375399; x=1774980199; 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=JblQKHB4m9kg6NYLv31NpxpC7SBbLjv5pn+enlC7Y7o=; b=KfE/R94DkXo3H0+iJ43kqa4NeeOgvJXDFhFkouL25WXxMOyMESe1KCreRMhUjVaxz3 FmL+XBv/Tgv3y+In3fxFLjgx9/ZOOglszUIGdF4LDIhFZYIf2v1UqFB28kBrOdztXSiG iq8RfpPsflYJYQoOuCZsNmbeWU4OFU/Umv2tjXTN5dVZtMatOEOfdp48S9vVLl8uqrot XaxqqRbGXvTSpQOxWAxLRgHQZZf5RyqGXbv/ES2IliZr7L0Kahe/8YUNcEnI3wIvwAEB 8B8u8hSV6TEvpVt8+wKfFPxYcz9tEGU/QGBIQWR2cyOw+uOzVbMxtwHVvEOVOtaBMsQR bs2A== X-Forwarded-Encrypted: i=1; AJvYcCWBaMYbkUl7zHhuMIaknxhf5d/dCXy5SKazdsgGMJer75IxPKA0UkkshrLxvEuN6UZOQPFnZ84OAesUpKQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyXCj2cIYvWLNUDLAyf6+cn6aohNz07d+jWNtKa5e7CX8C7vv21 Y6nd8MdNe+Z7rIWyj32B0bCf+EBm2MhX9vuepEH1tX0m6R8i66zMKi+oW8G1cn98KZk= X-Gm-Gg: ATEYQzymDF3QZlfpAKqqGNUNCzYTWoHMOLy088CjDiFmGqqN6p4/JxjRkuw8lhV6pwQ MKDGqcq+APPrIe6LnSBXLlHUft4Dj14iTTYxksfXu2IamaXP3stqWl+R3WX5TIA3nIEkUBus+Zr TysI8kcfoB/9KNaBYIVRrnoxwTu3bqFqp4SZHR91cE7AghaqqJpfcuB46/FwQv/UXI1GzrunTQp hvNrwApnVWRUNooF5PJ00LjauOisr/Ck744OLDZlD6TgjwE3kH6DMlxMDwQNe80ePnOdY88Rcka iyQrjej1t/imNawO6Guj/h6QT843/2m2ADXV+QWThGN+xYmYt/nnRqqBXz7PEOVpGuBxPTD0Kq1 5RvWbmEh1TQF6M2pIvWbmRkdzGhLuTelu3Cpp+nHsdZmvq4SlbKKMLEcaxtX2e1wwgO8C4+1GIY eQ1/7uQQH4NbyGSaTiq6kuBiO5PK6KkZRC X-Received: by 2002:a17:90b:5646:b0:35b:a656:a614 with SMTP id 98e67ed59e1d1-35c0ddb20famr247619a91.21.1774375398173; Tue, 24 Mar 2026 11:03:18 -0700 (PDT) Received: from ArchDesktopLeo ([2400:a840:5c41:0:e012:ea6c:986:40a8]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35c03124a94sm3179079a91.2.2026.03.24.11.03.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Mar 2026 11:03:17 -0700 (PDT) From: Leo Timmins To: Pasha Tatashin , Mike Rapoport Cc: Pratyush Yadav , Andrew Morton , linux-kernel@vger.kernel.org, Leo Timmins Subject: [PATCH 2/3] liveupdate: keep sessions retrievable after release failures Date: Wed, 25 Mar 2026 02:02:57 +0800 Message-ID: <20260324180258.1282560-3-leotimmins1974@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260324180258.1282560-1-leotimmins1974@gmail.com> References: <20260324180258.1282560-1-leotimmins1974@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: quoted-printable Content-Type: text/plain; charset="utf-8" When automatic finish-on-release fails for an incoming session, luo_session_release() cannot report that error back through close(). The VFS ignores ->release() return values during __fput(). Returning with session->retrieved still set leaves the session on the incoming list but impossible to retrieve again after the file descriptor is gone. Clear the retrieved flag so userspace can reopen the session and retry finishing it later. Fixes: 16cec0d26521 ("liveupdate: luo_session: add ioctls for file preserva= tion") Signed-off-by: Leo Timmins --- kernel/liveupdate/luo_session.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/liveupdate/luo_session.c b/kernel/liveupdate/luo_sessio= n.c index 25ae704d7787..7016d96ee960 100644 --- a/kernel/liveupdate/luo_session.c +++ b/kernel/liveupdate/luo_session.c @@ -210,9 +210,11 @@ static int luo_session_release(struct inode *inodep, s= truct file *filep) int err =3D luo_session_finish_one(session); =20 if (err) { + scoped_guard(mutex, &session->mutex) + session->retrieved =3D false; pr_warn("Unable to finish session [%s] on release\n", session->name); - return err; + return 0; } sh =3D &luo_session_global.incoming; } else { --=20 2.53.0