From nobody Mon Jun 8 08:35:57 2026 Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) (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 E216023507C for ; Thu, 4 Jun 2026 16:55:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780592141; cv=none; b=mc6bgI53MyF626toXznXsyXxCaxOot5RXrZRp4+4EKRjtIUYkV5A1TEqd9HnX7LyxkXvoLDW0ZrmFIt6tAfrjIuEfZCyjvPOJnVZsR1rIf6N7SZzXrpNjETTBeK9NDAmU3bDlt7rvi079/+CpkP5nN+TuJByjQCBi2zx/hMTvN4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780592141; c=relaxed/simple; bh=PVvFFRnJsjOT3ELo1D7sBFGBtjxPVxGxljGLBKQBPzM=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=uDUg/qzyCJlbyke4jnJ38h/66ez7MG5q6Q6yszZHm+oRDvwBho2fWyNMN7TDXtYwjYCHHtEpLA2LOIxT1DYA5IK4YRZPW0kTxt2J7tWjpXaJMpqzAt9PzRwtdQbAf75nLsuQmMSL9HC7DOsjkH83Le0CHhURt3rY2i8ekf48/O0= 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=W0zpUQUP; arc=none smtp.client-ip=209.85.215.176 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="W0zpUQUP" Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-c85822059d8so646194a12.1 for ; Thu, 04 Jun 2026 09:55:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780592139; x=1781196939; darn=vger.kernel.org; h=mime-version:content-transfer-encoding:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=tTF+K/jjhjMbs+uqc9a1iigvfNerrw0i1C+LsdMcq7s=; b=W0zpUQUPb2s6AnAFrkkuDpexE5bEi1UjVMKKynqiTc4lkiJjo8+UHw1Wdau58XhRLx VrzFq4WxvjHcLkP1V81U6hbzHW1XCHovAOgBD2NMBeN9Yf943X4MaSrSuVRQMRw3IgI5 LOzw5gmQPkIcojRFhTbloe71wUOYo6uMfDO7t1IK6RYoTtPrdoCLR3LwPmDNnhorzQ5d PwiiGpjWeUdOWQJIuRy2M3YQoPzHQvcQj/6j21HNuwab4HGa9IPdHNzjEkgaF4cyVxpX AeBqilQUdO4fYEevGoDUMfTDCeJT2t2meZa1PKBt+sH407/FOZgGFRKSo/O/GbxGzS4b /zlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780592139; x=1781196939; h=mime-version:content-transfer-encoding:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=tTF+K/jjhjMbs+uqc9a1iigvfNerrw0i1C+LsdMcq7s=; b=hOGPHhcxbmWDWwVh+Uc2S9SqszKA5RwI4CPizt2A4uCVZFgTBkoMd3lfJJhb5ac8RT qSPS4Ub8q8mbqf4fzjVDsy2nhJkkK58w4cf4O/mubXDIL7pifvhar8zv7vlN8tYBY/eV /vEJdHiTsRMdioSLo4yrkAGVu6++9hbWx/T6qARsM3OetUgKugxL4t5op+JUdoNQuZbJ EaNe0ycAYyQPZ4MzKUkDzVEL5i7HAvfjzioReN+Bc6sLjOLn9kHJHXYjOjxdDnLf48vt 3y9NwLhKCIgHWzRWJEvxVCtpsHSi9bZuSHlVxuvlZ+ykuo8kJFSFUdYaGLZRqDpP3JXU O/YQ== X-Forwarded-Encrypted: i=1; AFNElJ+g8/7gNWs5G7iQDBjwbFHco5kNmWwVcGkBIG8v1qcL/yypFGAFHNhkX+7pcAcYuJwg0nFnADwpKadGlWs=@vger.kernel.org X-Gm-Message-State: AOJu0YxTuzM+P4FzI1vegWnJMvC58xb+KfxWIuM+RmQ7TvM4YaHKITef 9/5dyp5vMtL4b/G/mR5yG38GyjzUdqpYy+yUje7MT4wy8DXBOiJMAyZL X-Gm-Gg: Acq92OFR+CYUc9nzAO+4n5PyBMiQHfNMLACps2n8IgmSmwhtBs+aZKITthjaShhYK+k K5LbWzBqG9GXatKXC1hEdGVa+4BYMF/B6erEIpDCnx4vOcP5lntpBzpDv5ZAZIAOwvYO3EIKLLG t3OoCVnFNUmYBCZpABh7J6mNVPlaeTRqToW+aVYTN26Vg1TO0Cf1F2kvleVpBsItWJyNwIfYN7Q qygWXhxkiWRPXt3+Zs1IrnEYXWuhjVH8Q/qfAKe6/sTvDUdL3ChxOVIBH3PDm643y/7mwp/jpbF cMlu//TmwMpLKjR9dj9HOLPoFc/XTCxmmoxsqOn4AKBbJApZQpeBlmVbyA+9X4yIu3BeFZb2XrB FOhcKtRek5fkZkXQs1+fgLLBQOqR2d4OnkW2NVtH8cmMbuF1/UxCMnEAdDujfR+sivJdyeJll1A SCR/ngaJ8z2pneHGhH3+oaLCWE9HeEWvt1aeTKvv0gsI8axutMvsIKRlJJ2Q6f6ph6/O1+zcidw p+FfJdWNGk8m/clKfRHWrnyW8TzMxll6/QwXFVAtOFK597ewmyiURf0Nfuf2z/EtWwdj8LSyCzi QMh8DZEy1gvDERQ/WbmBA+OVQELoQB8= X-Received: by 2002:a05:6a20:b598:b0:398:9d5f:e093 with SMTP id adf61e73a8af0-3b4975945d6mr9519629637.19.1780592138973; Thu, 04 Jun 2026 09:55:38 -0700 (PDT) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([103.129.135.195]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c85df0bd337sm5669880a12.29.2026.06.04.09.55.36 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 04 Jun 2026 09:55:38 -0700 (PDT) From: Shuvam Pandey To: miklos@szeredi.hu Cc: bschubert@ddn.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] fuse: {io-uring} use request cleanup helper on commit setup failure Date: Thu, 04 Jun 2026 22:40:34 +0545 Message-ID: <178059213410.15421.10567268398539539875@gmail.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 fuse_uring_commit_fetch() removes the request from the processing list and clears req->ring_entry before moving the ring entry to the commit state. If fuse_ring_ent_set_commit() fails, the request is currently ended directly with fuse_request_end(). That bypasses fuse_uring_req_end(), leaving ent->fuse_req pointing at the ended request. A later ring entry teardown can observe the stale pointer and try to end the same request again. Use fuse_uring_req_end() for this error path as well. The helper clears ent->fuse_req under the queue lock before ending the request, matching the other io_uring request cleanup paths. Fixes: c090c8abae4b ("fuse: Add io-uring sqe commit and fetch support") Cc: stable@vger.kernel.org # v6.14 Signed-off-by: Shuvam Pandey --- fs/fuse/dev_uring.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fs/fuse/dev_uring.c b/fs/fuse/dev_uring.c index 7b9822e88..7523569ff 100644 --- a/fs/fuse/dev_uring.c +++ b/fs/fuse/dev_uring.c @@ -924,9 +924,7 @@ static int fuse_uring_commit_fetch(struct io_uring_cmd = *cmd, int issue_flags, pr_info_ratelimited("qid=3D%d commit_id %llu state %d", queue->qid, commit_id, ent->state); spin_unlock(&queue->lock); - req->out.h.error =3D err; - clear_bit(FR_SENT, &req->flags); - fuse_request_end(req); + fuse_uring_req_end(ent, req, err); return err; } =20