Linux Overlay Filesystem development
 help / color / mirror / Atom feed
From: Gao Xiang <xiang@kernel.org>
To: Amir Goldstein <amir73il@gmail.com>
Cc: Christian Brauner <brauner@kernel.org>,
	Miklos Szeredi <miklos@szeredi.hu>,
	Daan De Meyer <daan.j.demeyer@gmail.com>,
	linux-unionfs@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: [RFC][PATCH 0/5] Proposal for Cross-fs copy_file_range()
Date: Fri, 24 Jul 2026 07:29:14 +0800	[thread overview]
Message-ID: <amKjyp78ngW2Kmku@debian> (raw)
In-Reply-To: <20260723114848.1212429-1-amir73il@gmail.com>

Hi Amir,

On Thu, Jul 23, 2026 at 01:48:43PM +0200, Amir Goldstein wrote:
> Hi all,
> 
> Daan De Meyer requested a way to do copy_file_range() from overlayfs
> to/from another fs, where if that fs is the base fs of overlayfs layer
> the copy could be an efficient clone.
> 
> TBH, he also requested support also for cross-fs clone_file_range(),
> but I am not happy about providing that.
> 
> copy_file_range() already supports cross-sb efficient copy (e.g. with
> NFS/SMB server-side copy).

I once had a long-term goal of supporting copy_file_range() between
overlayfs and EROFS for file-backed mounts, as long as the EROFS inodes
are plain (i.e. uncompressed). Such cross-fs copies could be decomposed
into one or more sub-copies from the EROFS backing file to the
overlayfs upper file, so the underlying backing filesystem can perform
the actual data transfer. If the backing filesystem supports reflinks,
those operations could even be implemented as efficient reflinks.

This would greatly optimize overlayfs copy-up for file-backed EROFS
mounts.

I think this should be feasible, although I haven't had time to work
on it yet. If clean interfaces in this area make that easier, I'd be
very happy to make use of them and enable this later.

Thanks,
Gao Xiang

> 
> The current limitation of staying on the same fstype is mainly an
> internal technical limitation (choosing the right f_op), which is
> something that this RFC is trying to address.
> 
> The overlayfs implementation itself is pretty trivial.
> 
> Thanks,
> Amir.
> 
> 
> Amir Goldstein (5):
>   fs: clarify cross-sb copy_file_range() code
>   fs: add support for copy file range from another fs
>   fs: add support for copy file range to another fs
>   ovl: add support for copy file range from another fs
>   ovl: add support for copy file range to another fs
> 
>  fs/overlayfs/file.c      |  35 ++++++++++++
>  fs/overlayfs/ovl_entry.h |   7 ++-
>  fs/read_write.c          | 119 ++++++++++++++++++++++++++++-----------
>  include/linux/fs.h       |   2 +
>  4 files changed, 130 insertions(+), 33 deletions(-)
> 
> -- 
> 2.54.0
> 

      parent reply	other threads:[~2026-07-23 23:29 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-23 11:48 [RFC][PATCH 0/5] Proposal for Cross-fs copy_file_range() Amir Goldstein
2026-07-23 11:48 ` [RFC][PATCH 1/5] fs: clarify cross-sb copy_file_range() code Amir Goldstein
2026-07-23 11:48 ` [RFC][PATCH 2/5] fs: add support for copy file range from another fs Amir Goldstein
2026-07-23 11:48 ` [RFC][PATCH 3/5] fs: add support for copy file range to " Amir Goldstein
2026-07-23 11:48 ` [RFC][PATCH 4/5] ovl: add support for copy file range from " Amir Goldstein
2026-07-23 11:48 ` [RFC][PATCH 5/5] ovl: add support for copy file range to " Amir Goldstein
2026-07-23 13:05 ` [RFC][PATCH 0/5] Proposal for Cross-fs copy_file_range() Daan De Meyer
2026-07-23 13:36   ` Amir Goldstein
2026-07-23 13:54     ` Daan De Meyer
2026-07-23 14:17       ` Amir Goldstein
2026-07-23 23:29 ` Gao Xiang [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=amKjyp78ngW2Kmku@debian \
    --to=xiang@kernel.org \
    --cc=amir73il@gmail.com \
    --cc=brauner@kernel.org \
    --cc=daan.j.demeyer@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-unionfs@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox