Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp14381241pxu; Mon, 4 Jan 2021 23:13:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJxrJbTBabn85nWyYXPuv0MLM19jmKxdvaJ/B/adhJnMTX0xkccshGLc6jU7NoxMy+nQkr4d X-Received: by 2002:a17:906:fb0e:: with SMTP id lz14mr71409052ejb.232.1609830838775; Mon, 04 Jan 2021 23:13:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609830838; cv=none; d=google.com; s=arc-20160816; b=rdqt2ue5n1YIBFwcuKq7NeiEuouVmRU2uU54n4nSPw4+ZjrTZZV550EMo1PDAajpSI Oa88IX0TwEliKSryzCdLQV2ymp8m7iUYU+0AtDMmCwKrIN9Ei0ZGY9RJEgrPnqKTKu1j MoY+kwpzI9FoYL7RTaVdVg4vnz2cPSNpm0DRbXACPq3DzoZRGvXuYPbEgSNCbMMERcT0 FnWPVzdmUYC4j2JExPavth4YratiBahDPtTHjTKkrqcufsdr6/zkLmXCzDCJLOmyr82e 2uGcatRmqk/y7LfPk3K9Y7uyPgysURi8+fK3CebCN4M8xhjCB/32GK22zQ6T9CWS1WFX YbcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=9fDC7QQ+tqOU87CZCpxb1J4dIdKIq1eloIxFZr+S9xg=; b=EkSX52WQNWLTspY7l/TnTb2Pv/O7yTPvC1mnivmIoB5HYg9og6xwjFhUeH2yii4UYp IZzrPY7PAz0Li6NWPBe7ImWbRNsjpvGHHZTIZym8RKg5+tEl0IiY0zrKoOLXtnImGZeU kwp0A8MWunlqw+yu0O79nhY/qHThiYkmFeP592kRIlnhiKyORvcBqC4tLw584jgXQwTJ Tt6EHuLVQ7bJhu7gY+CdRcbrKUYxTVggtQgNLIbi7qcFTg+DiO4P9KwJYqx1SyzHHIQ7 co0vj3sv0PIvrmfbRcA+R9XR+6cWHyrpBL7nl9ZVOi3t/nhcOWHyujmjg6edoF5aVXCR AaKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ghlTMQ1f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gu1si13132623ejb.20.2021.01.04.23.13.35; Mon, 04 Jan 2021 23:13:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ghlTMQ1f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726253AbhAEHMQ (ORCPT + 99 others); Tue, 5 Jan 2021 02:12:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45164 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725710AbhAEHMP (ORCPT ); Tue, 5 Jan 2021 02:12:15 -0500 Received: from mail-il1-x12c.google.com (mail-il1-x12c.google.com [IPv6:2607:f8b0:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 73D01C061793; Mon, 4 Jan 2021 23:11:35 -0800 (PST) Received: by mail-il1-x12c.google.com with SMTP id x15so27729678ilq.1; Mon, 04 Jan 2021 23:11:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9fDC7QQ+tqOU87CZCpxb1J4dIdKIq1eloIxFZr+S9xg=; b=ghlTMQ1faXr+h0xbllew/KvAL1OnHTMjCybq7tQz5gvGYuraYjThdZP7lfJXOP12QQ 3lD7Qc7mBbUIzJ5GTsGJfF4UsrXsh9+rp80wd8MZhkY83qZo2MvrLTLIHZeK+vFDp5m8 Kq90a8PQwNBsK925Q18Uq5s8dJYLRmw/CQMCZGPlEvhnrxjR7Fw/6l3W0fKV0r2F57gb Jbb0gF4U28W3bHpCjuEgvHznt31WZeskQbYvErCKxYeoZyaLXOxJ8pN0Xwei7qMb+CBX 7w5pQqkXVlqrkHrSMj6KZQwa2wwR6o7UQirzMJV1/VgxWyhgXB9B8PUlucVmYSfzeDjl nAHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9fDC7QQ+tqOU87CZCpxb1J4dIdKIq1eloIxFZr+S9xg=; b=PtHhDg8rTDXt8CbJfn34fdh4+Fqm50lsoiOobQ4z5EZJTJgR9Ypx0cIdPyqaYI/ttq m1RNkWf546dpAS90vFgAte7BQVfcnVoLJZko66WitfV722Ab6RBAAWWSPqq+pywHvr3C 8Ev3zcnml8uSZStpn7SzUUHOGnUj8kGAMQXUG3PUH6WQ/ec4XXCXJHYWLHcK9Xr79wBN s2oUn4mOHbx+j4gSFPSX6Cewu0CU5VdYcHSN6GhtnwuR9Fpkc+Verb49EZykeFP++hoX h9Xl22m5Wi5cZhiSQfu+D1tyRjS6LkHZ+gzq74OiW3dH9rvuZeth5aSws/MX1bNpnqYS lDJg== X-Gm-Message-State: AOAM533rIuE+fLdOw3kH8l12VZ7tkXlgbXH3LpljaXX444BKpoZkUL+K jjYj1w+kpFjLe9QseQO72o02sQwmJDtkZmjiCrtGEJYT1MQ= X-Received: by 2002:a05:6e02:1a8e:: with SMTP id k14mr76152018ilv.275.1609830694924; Mon, 04 Jan 2021 23:11:34 -0800 (PST) MIME-Version: 1.0 References: <20201223185044.GQ874@casper.infradead.org> <20201223192940.GA11012@ircssh-2.c.rugged-nimbus-611.internal> <20201223200746.GR874@casper.infradead.org> <20201223202140.GB11012@ircssh-2.c.rugged-nimbus-611.internal> <20201223204428.GS874@casper.infradead.org> <20210104151424.GA63879@redhat.com> <20210104154015.GA73873@redhat.com> <20210104224447.GG63879@redhat.com> In-Reply-To: <20210104224447.GG63879@redhat.com> From: Amir Goldstein Date: Tue, 5 Jan 2021 09:11:23 +0200 Message-ID: Subject: Re: [PATCH 3/3] overlayfs: Report writeback errors on upper To: Vivek Goyal Cc: Matthew Wilcox , Sargun Dhillon , linux-fsdevel , linux-kernel , overlayfs , Jeff Layton , Miklos Szeredi , Jan Kara , NeilBrown , Al Viro , Christoph Hellwig , Chengguang Xu Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > > > > What I would rather see is: > > - Non-volatile: first syncfs in every container gets an error (nice to have) > > I am not sure why are we making this behavior per container. This should > be no different from current semantics we have for syncfs() on regular > filesystem. And that will provide what you are looking for. If you > want single error to be reported in all ovleray mounts, then make > sure you have one fd open in each mount after mount, then call syncfs() > on that fd. > Ok. > Not sure why overlayfs behavior/semantics should be any differnt > than what regular filessytems like ext4/xfs are offering. Once we > get page cache sharing sorted out with xfs reflink, then people > will not even need overlayfs and be able to launch containers > just using xfs reflink and share base image. In that case also > they will need to keep an fd open per container they want to > see an error in. > > So my patches exactly provide that. syncfs() behavior is same with > overlayfs as application gets it on other filesystems. And to me > its important to keep behavior same. > > > - Volatile: every syncfs and every fsync in every container gets an error > > (important IMO) > > For volatile mounts, I agree that we need to fail overlayfs instance > as soon as first error is detected since mount. And this applies to > not only syncfs()/fsync() but to read/write and other operations too. > > For that we will need additional patches which are floating around > to keep errseq sample in overlay and check for errors in all > paths syncfs/fsync/read/write/.... and fail fs. > But these patches build on top of my patches. Here we disagree. I don't see how Jeff's patch is "building on top of your patches" seeing that it is perfectly well contained and does not in fact depend on your patches. And I do insist that the fix for volatile mounts syncfs/fsync error reporting should be applied before your patches or at the very least not heavily depend on them. volatile mount was introduced in fresh new v5.10, which is also an LTS kernel. It would be inconsiderate of volatile mount users and developers to make backporting that fix to v5.10.y any harder than it should be. > My patches don't solve this problem of failing overlay mount for > the volatile mount case. > Here we agree. > > > > This is why I prefer to sample upper sb error on mount and propagate > > new errors to overlayfs sb (Jeff's patch). > > Ok, I think this is one of the key points of the whole discussion. What > mechanism should be used to propagate writeback errors through overlayfs. > > A. Propagate errors from upper sb to overlay sb. > B. Leave overlay sb alone and use upper sb for error checks. > > We don't have good model to propagate errors between super blocks, > so Jeff preferred not to do error propagation between super blocks > for regular mounts. > > https://lore.kernel.org/linux-fsdevel/bff90dfee3a3392d67a4f3516ab28989e87fa25f.camel@kernel.org/ > > If we are not defining new semantics for syncfs() for overlayfs, then > I can't see what's the advantage of coming up with new mechanism to > propagate errors to overlay sb. Approach B should work just fine and > provide the syncfs() semantics we want for overlayfs (Same semantics > as other filesystems). > Ok. I am on board with B. Philosophically. overlayfs model is somewhere between "passthrough" and "proxy" when handling pure upper files and as overlayfs evolves, it steadily moves towards the "proxy" model, with page cache and writeback being the largest remaining piece to convert. So I concede that as long as overlayfs writeback is mostly passthrough, syncfs might as well be passthrough to upper fs as well. Thanks, Amir.