From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45]) (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 A453F2F5479 for ; Tue, 23 Dec 2025 22:13:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766527998; cv=none; b=KvT/uHRAXjJLigro8PG46qBRnuRfZbkWuUqVYaFX52kP+f3iP+Z9hMuwje1OiON3h3afon8RTVt10ZNkA66Fpe+rzGVrqCGnem7gFzSPUqnhD6N7sPfVf8iCeYzdA/ZuGDaHam/YhV1sj8bJS++2FnM/JbvNTd5CAsBSAMrwTR8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766527998; c=relaxed/simple; bh=djrFm7idG1wZTyNavDvRaYpps8Oyojc9Dl+G4hxSw5A=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=OdXsJsSq0BlQccbZMvf6R/s9iLQ9xOa/FXhVDUd30kr72HpZCq3NmzE1LMD85367voUsqoK4T00dNTpGsEkRncoZiNSEmF8gJUzPP8THDhQHc5KOL9b1bizlpZD2bG9G4OIcQhKi1opzftIYArLxaoUCvD429s2DoFMyxSEZLVM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=googlemail.com; spf=pass smtp.mailfrom=googlemail.com; dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b=P+BwwErE; arc=none smtp.client-ip=209.85.208.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=googlemail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=googlemail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b="P+BwwErE" Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-64b791b5584so7775001a12.0 for ; Tue, 23 Dec 2025 14:13:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20230601; t=1766527994; x=1767132794; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=q3Dh9wBErOPmFpOs6QRksp4HS/VjZZOOvG60XaDU/jM=; b=P+BwwErEW5u9Z805BqOKSyDyER8Vqqiy/0g+OEREBwHUcJzs7szWVaKDhnkwG443D9 KDuztNF6uqFth0BIcDgAguLL8aN4VTrgVnJyvyZTML53++e8LHXMZNMdIXw1ZJqJOgSj /Sw4S8PdngXi1kw+g891qkPlWiMV2Lu+f0iQdsmKXHDoOKQZ5OQl9Ygc5es09S+g+Q5r MBrKeTy0itrJaADPam93QL/axzZyDl94XGTDDkJs0J2HjTlduKpJryfruOMaCTUPicM5 8eG1pcaW0syFxVOVeDGqmN5cek+TRGuLiHVEIO4TXiSuismn25C0YafsejfHCLQrM241 eA3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766527994; x=1767132794; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=q3Dh9wBErOPmFpOs6QRksp4HS/VjZZOOvG60XaDU/jM=; b=g1djO1cykCooEjwDvOfpYCoQZPRjrLfxzDdU7pw1ptcvAsf1M7QJ9dnxweChstY2wH tzSvBZOUaBiH7hSgRWQ3431NCTwC6/TF/+8GbF1DL5MSmjD69hPnLK5XvhWQavmfJ1kz LPX21xUVzWiWf7kn67yTLF6cCQVuvKulZGFZrWPikJWe/TPfwYYbOczb+Rxr0/GZCF9F NtlcDiBkm6wqy5FJVAUJojHS2V54iyeYuxl5LorAt5G3y0M19aA+K1NlzQlw02GiQWmA /iapJS2R5JCHP9N1o6Jpw75jBmfdUtpVd3/gDgRw0M0jMGSvc4eIqaIIVCSXjgCdUkHC pj6A== X-Gm-Message-State: AOJu0YxtyLaYe3Q4bUNax1r/uWl6yU0ZdIoh/I0Q0J3l6hVH7sF/emRP ACaashKCHf86EP5diQF9xlc/udMa5WHYIB45vXfFq4mWOmUEA1K711L3 X-Gm-Gg: AY/fxX62J+3drNXYWfOTKxbqsOHGuCSmTFLtri40yB22addgsteP/ssY3p/jBGRoDaV aS1nflCbNJwq1s5HJ+MB99iGt06KrXO70SaVX/dSqwUmABcRcnjjlIJLkI7k1SKyRw11LHA2R3k Pc/4ju6IM+diHPaK7pfjNKPQpp4bfleCzaOSDwk/4hGs12JOdjSWP+rjRNAJQAxeC6le39CJ8Gb EV1tO6KLoYF7LcDHwUup/4+r1kqW4BuWEcHG6KRo82uQe3Y4hFYac/e5JyzH+RhdZnaR6LmUdNJ F+Wv8TNKOllexqJvDz7TMhse1RHnnfVMbV8nkaXSq7mp2Sivft+SfrbAtl2umTV787IXM5wF+KE 1mYyvUCMFl5gw1LlE6jCJ1CA1NB/hsPkso4hDXaSytuA/Rcde7nO/Ciax3oU31FTE33KKwshrhH p2AqhjDBMvZsaUR0EBHmRAnlCyj6rf1d6vCAbeBIo9IOPrXdRT X-Google-Smtp-Source: AGHT+IG0BW6zOSQPCl5+xsJLwqkeT+/jd4oHnJe9qeceHJtvUmi/Oxz0wRtNk+wuP0JzZcO3/HoeDg== X-Received: by 2002:a05:6402:50cf:b0:64b:9fa4:b586 with SMTP id 4fb4d7f45d1cf-64b9fa4b629mr13502460a12.25.1766527993875; Tue, 23 Dec 2025 14:13:13 -0800 (PST) Received: from [127.0.1.1] (178-062-210-188.ip-addr.inexio.net. [188.210.62.178]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b90f53c70sm14903373a12.6.2025.12.23.14.13.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Dec 2025 14:13:12 -0800 (PST) From: Horst Birthelmer X-Google-Original-From: Horst Birthelmer Subject: [PATCH RFC v2 0/2] fuse: compound commands Date: Tue, 23 Dec 2025 23:13:04 +0100 Message-Id: <20251223-fuse-compounds-upstream-v2-0-0f7b4451c85e@ddn.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAPATS2kC/4WNSw6CMBCGr0Jm7RhoeYgrExMP4NawaOkgXdCSD jQawt1tuIDL//X9GzAFSwzXbINA0bL1LglxyqAflXsTWpM0iFxUhRASh5UJez/NfnWGcZ15CaQ m7C+VLkm2WhoJaT0HGuznIL/g+bhDl8zR8uLD93iLxRH9BccCc2y0MlTXsi0bfTPGnVMRun3ff 1d1gW/BAAAA X-Change-ID: 20251223-fuse-compounds-upstream-c85b4e39b3d3 To: Miklos Szeredi , Bernd Schubert Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Horst Birthelmer , syzbot@syzkaller.appspotmail.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1766527992; l=1397; i=hbirthelmer@ddn.com; s=20251006; h=from:subject:message-id; bh=djrFm7idG1wZTyNavDvRaYpps8Oyojc9Dl+G4hxSw5A=; b=cuoM+ooNHpcZPOFw6ECsIXETrsbFwZBd67tkIq5LxiGHLLYq33ECLD+QLeyNWSbp9izjglb+u BLRt7auz+TyAbbwBffFXP5QBFyAIWCj6GVb7oOfSTAbEqZ1M4cha0o8 X-Developer-Key: i=hbirthelmer@ddn.com; a=ed25519; pk=v3BVDFoy16EzgHZ23ObqW+kbpURtjrwxgKu8YNDKjGg= In the discussion about open+getattr here [1] Bernd and Miklos talked about the need for a compound command in fuse that could send multiple commands to a fuse server. Here's a propsal for exactly that compound command with an example (the mentioned open+getattr). [1] https://lore.kernel.org/linux-fsdevel/CAJfpegshcrjXJ0USZ8RRdBy=e0MxmBTJSCE0xnxG8LXgXy-xuQ@mail.gmail.com/ Signed-off-by: Horst Birthelmer --- Changes in v2: - fixed issues with error handling in the compounds as well as in the open+getattr - Link to v1: https://lore.kernel.org/r/20251223-fuse-compounds-upstream-v1-0-7bade663947b@ddn.com --- Horst Birthelmer (2): fuse: add compound command to combine multiple requests fuse: add an implementation of open+getattr fs/fuse/Makefile | 2 +- fs/fuse/compound.c | 368 ++++++++++++++++++++++++++++++++++++++++++++++ fs/fuse/dev.c | 25 ++++ fs/fuse/file.c | 125 ++++++++++++++-- fs/fuse/fuse_i.h | 20 ++- fs/fuse/inode.c | 6 + fs/fuse/ioctl.c | 2 +- include/uapi/linux/fuse.h | 37 +++++ 8 files changed, 566 insertions(+), 19 deletions(-) --- base-commit: 9448598b22c50c8a5bb77a9103e2d49f134c9578 change-id: 20251223-fuse-compounds-upstream-c85b4e39b3d3 Best regards, -- Horst Birthelmer