From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) (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 63CA0442FD6 for ; Thu, 20 Aug 2026 12:37:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787229434; cv=none; b=qL8mHYry4r+UhBus+uBcnaIQiFgdiLZbYmHE0gG9/wHl8HOgyJzsW0sH8UKQJY6yM9CX+QHjUDP7i1D6twz9KSDmvjLf48Kp44z6NjGsvy2gwQl9GVBYTIpy1MP8z0ZbF2yiK07IDYGdBUZ3OzCQnyAujPaw1vEWrofAFNuIEvM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787229434; c=relaxed/simple; bh=Bnax1mPolnL2obFrDxtlecJEz1d2KEnUnbgY68WBxNk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W78MdETnhIYP1RaXe4I9GpDp3I87QdCBsh6MqqgdruAAN51221oGFJ1Tz9vJmspKFX8iqdBrVlXxlOLQxBCauysGfQ73cXBEE77TdZawdOMwUz9fHixbKiuqvgRrCgAzO3Iw/KPn6wbgPlND7DEujiu3pmFupUfLu/Q4OjAKSo0= 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=coTVnmmz; arc=none smtp.client-ip=209.85.210.179 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="coTVnmmz" Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-8486ac3f347so691207b3a.1 for ; Thu, 20 Aug 2026 05:37:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787229433; x=1787834233; 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:content-type; bh=t/+PHaJA4ed08R9FWti0sClu0mYtklXQnNLIgN0wwZ8=; b=coTVnmmzIqM4yKnqpoMpEIwFTNJeDjcxzdsxd3/zekn3ZOacGWHmQDZJ43aH6/1nu+ 7z9Py2jvG+fWXqYgjOMPI7UUwBBilHK3S2xMl3qZe9fwQ6AbirEXAfXxfkt1v/5MfTVd vTRClSpXvu97rr26Tq6X64ozmoXSKDQmqGRVOC4Q2ktYZrUoJHUZLOx7mCjW9Tq66Enz WWIX2vR3nciajGq36XaG8qEVKSgLIy51YNNI4B3CypPJle/y4WBo6faRGHi0XPwsRzN0 LiQp8AzXtfx58x8ex5zWlR8Qb21o3VcuPED3MqttC8gyetkgWqK4Q6JMS17fZ5vFmZcP +oAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787229433; x=1787834233; 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:content-type; bh=t/+PHaJA4ed08R9FWti0sClu0mYtklXQnNLIgN0wwZ8=; b=JOMS39J5ydBBSpXdQlcFDKdbtwGDBWrl1bUia34mY+YJr3tZc836lI0knZZVRk9sxZ DmCmCVsre6b81HWe141S+KJFXHS2JaBDREFy6/zagFXWCIS5dUuDgSzimae8qvvgfO0g upUdCGc+X2ZJbIfNTsry9ZrFBFguvXOL5WYyhusaSHXIz7kilaGENj8nBQktABttfO0R 4lmeaxSff3WtM+F/423yX2kgv+j3K5YHvmKzqSvoWqrSCJWzX/lIYxHTUPhVRU8NiO5t QQdxAkQfeTlCtBOYF0lwdEyAYk8QUF5WtXHvvHdkgbG53x1AkK4a5alT94hNoIiwZ2P0 xR2A== X-Forwarded-Encrypted: i=1; AHgh+RrKs9UYgMPu91Y6font0vrVSgFnxP+6jtQMl7a1rRnhnmA0mb5u1hc3Exl6w7m6WBfGIrBMZQxOwq/VSW4=@vger.kernel.org X-Gm-Message-State: AOJu0YzUsAdT50IjWLAPZ6Ek68xT3sNccHzWuXYsUCXNKIlk4BgBfdZB QX8AxxcVx8y6r8BxAsbzHHWd4neXQGuTNwpp4OfmK/oCUsGTOdB7nhc0 X-Gm-Gg: AR+sD112PrUGrMyV9jRBi0x7mGWZKPBkVomnK9/8MfFCHPqlRFleLSOMr7mKoIWCZlj GLSfMLgiU5ucW++71gPq15YN3eToZECRn0pgrJ4CvL4lvA1Y9zhs0Z5GzcD9pCRKArdB/ZUfUKD snP5/vZlVxHrBbBmJdArIngOk6ivd7J1kouNK3yjEOxALpWZqfF1MKwqgzHwVWU8t3ThcCDFlLm B37Mf4yOuZ14NJWcS9zZfL/HK8PWKR2VoisIR92qST86989lkmPTLyRcZVAj9TGoeZjzaXI0GdI Ou3sxlVGGF99lbeF+Le2JDduSGZUd8+8wDlVtTVO7auELhQ/+IMlwPkSoTCG+6btLN/mQtuzD3Y VW5LfFMxqnKfEHTeaxFVWlV3gBADzI4QrBEnkRZfXM8NStjhHqwc2FJ5dkuwTnowcaj9L1MRUEi XdrF0I/7TzAR3Dkm16JrwhjT2jMyf222oVsP/Cet+j/QiHzYGxrtLAtu9nbYfEKm+6Mj+vgG2w X-Received: by 2002:a05:6a00:808:b0:84e:354:422b with SMTP id d2e1a72fcca58-851df8c97eamr6426584b3a.2.1787229432534; Thu, 20 Aug 2026 05:37:12 -0700 (PDT) Received: from osman.mioffice.cn ([43.224.245.178]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-851d366dc9fsm1656065b3a.51.2026.08.20.05.37.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2026 05:37:11 -0700 (PDT) From: Zhan Xusheng X-Google-Original-From: Zhan Xusheng To: Jingbo Xu , Gao Xiang , Chao Yu Cc: Zhan Xusheng , linux-erofs@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] erofs: use the shared page cache for splice in inode_share mode Date: Thu, 20 Aug 2026 20:37:04 +0800 Message-ID: <20260820123705.1748738-1-zhanxusheng@xiaomi.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <3d735f18-2d26-4b4c-be68-b000742e9826@linux.alibaba.com> References: <20260820064441.1083470-1-zhanxusheng@xiaomi.com> <3d735f18-2d26-4b4c-be68-b000742e9826@linux.alibaba.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit On Thu, 20 Aug 2026 17:53:20 +0800, Jingbo Xu wrote: > Please refer to backing_file_splice_read() called from > ovl_splice_read(), file_accessed() needs to be called on the original > file (just as what .read_iter() i.e. filemap_read() does), and the input > @ppos needs to be updated accordingly. Taking the file_accessed() one, thanks. filemap_splice_read() calls it at mm/filemap.c:3155 on whatever file it was handed, so on the backing file, whereas backing_file_splice_read() ends in ctx->accessed(iocb->ki_filp), which for ovl_splice_read() is the original. v2 adds file_accessed(in). @ppos looks already handled to me. filemap_splice_read() takes a loff_t * and advances it itself, at mm/filemap.c:3144; its internal kiocb is seeded from *ppos at 3083 and 3098, not the other way round. ovl_splice_read() has to copy iocb.ki_pos back because backing_file_splice_read() takes a struct kiocb and hands &iocb->ki_pos to vfs_splice_read(). Say if I have that wrong. One you may want for read_iter too: it clones the kiocb onto the backing file, so filemap_read() marks that one accessed rather than the user's file, which is the shape splice_read had. Neither is observable today, since erofs_fc_fill_super() sets SB_RDONLY | SB_NOATIME and the backing file is opened O_NOATIME, so both reach a no-op. That is why I left read_iter alone here. Thanks, Zhan Xusheng