Re: [PATCH v5] erofs: accept source file descriptor via fsconfig

Gao Xiang <[email protected]> Thu, 30 Jul 2026 04:19:29 +0800
Newsgroups org.ozlabs.lists.linux-erofs,org.kernel.vger.linux-fsdevel
Message-ID <[email protected]>
Hi Jan,

On Wed, Jul 29, 2026 at 11:57:25AM +0200, Jan Kara wrote:
> On Wed 29-07-26 09:40:50, Gao Xiang wrote:
> > On Tue, Jul 28, 2026 at 06:05:32PM +0200, Giuseppe Scrivano wrote:
> > > Allow userspace to pass an already-opened file descriptor as the mount
> > > source instead of a path string.  This is useful for tools that already
> > > hold an fd to the image, such as composefs reusing an existing erofs
> > > backing file.
> > > 
> > > Signed-off-by: Giuseppe Scrivano <[email protected]>
> > > ---
> > > v4: https://lore.kernel.org/linux-fsdevel/[email protected]/
> > > v3: https://lore.kernel.org/linux-fsdevel/[email protected]/
> > > v2: https://lore.kernel.org/linux-fsdevel/[email protected]/
> > > v1: https://lore.kernel.org/linux-fsdevel/ak5GfvVfWLJU1EwK@debian/
> > > 
> > >  Documentation/filesystems/erofs.rst | 15 ++++++
> > >  fs/erofs/super.c                    | 73 ++++++++++++++++++++++++-----
> > >  2 files changed, 77 insertions(+), 11 deletions(-)
> > > 
> > > diff --git a/Documentation/filesystems/erofs.rst b/Documentation/filesystems/erofs.rst
> > > index 4230884fb359..774e8b236d09 100644
> > > --- a/Documentation/filesystems/erofs.rst
> > > +++ b/Documentation/filesystems/erofs.rst
> > > @@ -139,6 +139,21 @@ inode_share            Enable inode page sharing for this filesystem.  Inodes wi
> > >                         page cache.
> > >  ===================    =========================================================
> > >  
> > > +File-backed mounts
> > > +==================
> > > +
> > > +When CONFIG_EROFS_FS_BACKED_BY_FILE is enabled, EROFS file-backed images
> > > +can be mounted directly without a loopback block device.  The backing file
> > > +can be given either as a path, or as an already-opened file descriptor.
> > > +
> > > +When a file descriptor is used, the kernel resolves its path and records it
> > > +so that /proc/mounts and similar interfaces can still report the mount
> > > +source.
> > > +
> > > +Only regular files are accepted as backing files; to mount an image that
> > > +resides on a block device, use the traditional block device mount path
> > > +instead.
> > 
> > Reviewed-by: Gao Xiang <[email protected]>
> > 
> > Hi Christian, Jan, could you ack this (`fc->source` filling when
> > `source_fd` is used) if possible?
> 
> Whenever I see a use of d_path() (or file_path() in this case) I'm a bit
> watchful because its result is inherently racy and unsafe. But in this case
> the result is only used for alloc_vfsmnt() which uses it for mnt_devname so
> in the worst case we'll get an unreliable path in /proc/mounts or similar.
> I guess that's acceptable. So feel free to add:

Thanks for your reply and comment.  Yeah, the result of d_path() can become
outdated later since it only uses seqcounts to ensure that within the process,
but here I also think "mnt_devname" usage doesn't really matter (but I hope
filling like this is fine and stable in the long term.)

> 
> Acked-by: Jan Kara <[email protected]>

Thanks!

Thanks,
Gao Xiang

> 
> 								Honza
> -- 
> Jan Kara <[email protected]>
> SUSE Labs, CR
>