Thread (18 messages) 18 messages, 4 authors, 2023-10-11

Re: [PATCH v3 3/3] fs: store real path instead of fake path in backing file f_path

From: Amir Goldstein <amir73il@gmail.com>
Date: 2023-10-10 17:57:36
Also in: linux-fsdevel, linux-integrity, linux-unionfs

On Tue, Oct 10, 2023 at 8:41 PM Al Viro [off-list ref] wrote:
On Tue, Oct 10, 2023 at 05:55:04PM +0100, Al Viro wrote:
quoted
On Tue, Oct 10, 2023 at 03:34:45PM +0200, Miklos Szeredi wrote:
quoted
On Tue, 10 Oct 2023 at 15:17, Amir Goldstein [off-list ref] wrote:
quoted
Sorry, you asked about ovl mount.
To me it makes sense that if users observe ovl paths in writable mapped
memory, that ovl should not be remounted RO.
Anyway, I don't see a good reason to allow remount RO for ovl in that case.
Is there?
Agreed.

But is preventing remount RO important enough to warrant special
casing of backing file in generic code?  I'm not convinced either
way...
You definitely want to guarantee that remounting filesystem r/o
prevents the changes of visible contents; it's not just POSIX,
it's a fairly basic common assumption about any local filesystems.
Incidentally, could we simply keep a reference to original struct file
instead of messing with path?

The only caller of backing_file_open() gets &file->f_path as user_path; how
about passing file instead, and having backing_file_open() do get_file()
on it and stash the sucker into your object?

And have put_file_access() do
        if (unlikely(file->f_mode & FMODE_BACKING))
                fput(backing_file(file)->file);
in the end.

No need to mess with write access in any special way and it's closer
to the semantics we have for normal mmap(), after all - it keeps the
file we'd passed to it open as long as mapping is there.

Comments?
Seems good to me.
It also shrinks backing_file by one pointer.

I think this patch can be an extra one after
"fs: store real path instead of fake path in backing file f_path"

Instead of changing storing of real_path to storing orig file in
one change?

If there are no objections, I will write it up.

Thanks,
Amir.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help