Thread (64 messages) flat view 64 messages, 11 authors, 2019-10-09

Re: [PATCH 24/32] vfs: syscall: Add fsopen() to prepare for superblock creation [ver #9]

From: Greg KH <gregkh@linuxfoundation.org>
Date: 2018-07-12 19:19:37
Also in: linux-fsdevel, lkml

Possibly related (same subject, not in this thread)

On Thu, Jul 12, 2018 at 11:30:32AM -0700, Andy Lutomirski wrote:
quoted
On Jul 12, 2018, at 11:03 AM, Greg KH [off-list ref] wrote:
quoted
On Thu, Jul 12, 2018 at 06:20:24PM +0100, Al Viro wrote:
quoted
On Thu, Jul 12, 2018 at 07:15:05PM +0200, Greg KH wrote:
quoted
On Tue, Jul 10, 2018 at 11:44:09PM +0100, David Howells wrote:
Provide an fsopen() system call that starts the process of preparing to
create a superblock that will then be mountable, using an fd as a context
handle.  fsopen() is given the name of the filesystem that will be used:

   int mfd = fsopen(const char *fsname, unsigned int flags);

where flags can be 0 or FSOPEN_CLOEXEC.

For example:

   sfd = fsopen("ext4", FSOPEN_CLOEXEC);
   write(sfd, "s /dev/sdb1"); // note I'm ignoring write's length arg
   write(sfd, "o noatime");
   write(sfd, "o acl");
   write(sfd, "o user_attr");
   write(sfd, "o iversion");
   write(sfd, "o ");
   write(sfd, "r /my/container"); // root inside the fs
   write(sfd, "x create"); // create the superblock
Ugh, creating configfs again in a syscall form?  I know people love
file descriptors, but can't you do this with a configfs entry instead if
you really want to do this type of thing from userspace in this type of
"style"?

Why reinvent the wheel again?
The damn thing REALLY, REALLY depends upon the fs type.  How would
you map it on configfs?
/sys/kernel/config/fs/ext4/ would work, right?  Each fs "type" would be
listed there.

Anyway, the whole "write a bunch of options and then do a 'create'" is
exactly the way configfs works.  Why not use that?
How do you mount configfs in the first place?  And how do you use this
in a mount namespace without a private configfs instance or where you
don’t want configfs mounted?--
Ok, fair enough, I missed the part where this is going to replace
mount(2).  Although you could just use mount(2) to mount configfs on a
mount point in the initramfs image and then go from there at boot time :)

/me runs away...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help