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?
thanks,
greg k-h