From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B5E11C388F7 for ; Thu, 22 Oct 2020 16:38:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 57FD32463F for ; Thu, 22 Oct 2020 16:38:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=android.com header.i=@android.com header.b="bWxDfT2D" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2901906AbgJVQiY (ORCPT ); Thu, 22 Oct 2020 12:38:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2502959AbgJVQiY (ORCPT ); Thu, 22 Oct 2020 12:38:24 -0400 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 41CC6C0613CF for ; Thu, 22 Oct 2020 09:38:24 -0700 (PDT) Received: by mail-wr1-x444.google.com with SMTP id n15so3246157wrq.2 for ; Thu, 22 Oct 2020 09:38:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=android.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=v7FaFaTdMJ8tRDnhGBi1+id41DhCNPtJjvfWqcIsB1c=; b=bWxDfT2Dsx5Kvnhe7Mx+CApRxX2EtdjqCMjmsTK/eYMeEXZsTt0RJpSB3CZxHvRluA /C5QuVeAsZ/DeEPdKdhM0E0WGJx2T2v9m3MYhRW4THHYtS+ZE0DpFGmpGRt0IrHa82d0 Xv3iNh3SjhnIzs4SwmEIXMAdEaKHncc6EizoIKb2cmRXjknWU5304kZN9OG6XDiQpZxH SerU5F0hZYBs905dOGoLpPMGvDJuO1BG3E++xZPursi7dE3b9wXy8NHFxPCu5h5w1pZ3 25XeVxXqCgjjGfO2eAUqnw28i9pF+/kRA21vMvb41oR7Wrr0+/g0yrh0R/IHAXK8n9/9 E2Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=v7FaFaTdMJ8tRDnhGBi1+id41DhCNPtJjvfWqcIsB1c=; b=Rz6vz69YW0RqpzG+2H35sgBN0VweU/4+cLQhytW+DtOaF6AICnjkJqjoyCk4wt3MgW yCdpCy9ndpjg+BLCNl0JMLrAmYy3ZYWZeXdONdLtdYvKQGOtjuX7HxmYdeNAFSLZPgMl ttby/rUBfaX9C8YowSW96qaPu7YQ4k2SeiTZsgen1UFRmPxZn1qNdwIEjCCXRtoSnuZ5 0zz7/5h/rNbWS/MqNo2JDSV10l4Gb8xdLze/UR0eNJM4raxY4sKR4yALt9pfYAnJVjTd b6XpOJfdQc6CmXi3tsPPhi9tyUJXQlAPSgdsvQIU4OsundOPaW8teRCL+51s6W+i10b/ ij/Q== X-Gm-Message-State: AOAM530a0k7lwnth2B696DGZJ1LQLRtm80poUZxoP4IL7AdeBpbktf+U 3r+DegE1voWHwHy9hTOO8th6Ww== X-Google-Smtp-Source: ABdhPJxsl1sqM39ATgrwBhkHtsUwIiON9rXgZ+SJgbMLgIv/DRX+c8/hwwiKfb1r2O2AFjrt8HKlnQ== X-Received: by 2002:adf:fe09:: with SMTP id n9mr3801569wrr.144.1603384703024; Thu, 22 Oct 2020 09:38:23 -0700 (PDT) Received: from google.com ([2a00:79e0:d:210:7220:84ff:fe09:7d5c]) by smtp.gmail.com with ESMTPSA id u20sm4013890wmm.29.2020.10.22.09.38.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Oct 2020 09:38:22 -0700 (PDT) Date: Thu, 22 Oct 2020 17:38:20 +0100 From: Alessio Balsini To: Miklos Szeredi Cc: Alessio Balsini , Akilesh Kailash , Amir Goldstein , Antonio SJ Musumeci , David Anderson , Giuseppe Scrivano , Jann Horn , Jens Axboe , Martijn Coenen , Palmer Dabbelt , Paul Lawrence , Stefano Duo , Zimuzo Ezeozue , fuse-devel , kernel-team , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH V9 4/4] fuse: Handle asynchronous read and write in passthrough Message-ID: <20201022163820.GD36774@google.com> References: <20200924131318.2654747-1-balsini@android.com> <20200924131318.2654747-5-balsini@android.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org On Wed, Sep 30, 2020 at 08:54:03PM +0200, Miklos Szeredi wrote: > On Thu, Sep 24, 2020 at 3:13 PM Alessio Balsini wrote: > > > > Extend the passthrough feature by handling asynchronous IO both for read > > and write operations. > > > > When an AIO request is received, if the request targets a FUSE file with > > the passthrough functionality enabled, a new identical AIO request is > > created. The new request targets the lower file system file, and gets > > assigned a special FUSE passthrough AIO completion callback. > > When the lower file system AIO request is completed, the FUSE passthrough > > AIO completion callback is executed and propagates the completion signal to > > the FUSE AIO request by triggering its completion callback as well. > > This ends up with almost identical code in fuse and overlayfs, right? > Maybe it's worth looking into moving these into common helpers. > > Thanks, > Miklos > There are still a few differences between overlayfs and passthrough read/write_iter(), so that merge wouldn't be straightforward. And I would love to see this series merged before increasing its complexity, hopefully in the next version if everything is all right. I will anyway work on the cleanup patch you suggested right after FUSE passthrough gets in, so that I have a solid code base to work on. Would this work for you? That cleanup patch would be handy also for the upcoming plan of having something similar to FUSE passthrough extended to directories, as it was mentioned in a previous discussion on this series with Amir. Thanks! Alessio