Re: [PATCH 4/9] Implement fsopen() to prepare for a mount

From: David Howells
Date: Thu May 04 2017 - 09:07:02 EST


Karel Zak <kzak@xxxxxxxxxx> wrote:

> > write(mfd, "d /dev/sdb1"); // note I'm ignoring write's length arg
>
> Not sure about 'd', in many cases it is not device, for mount(2)
> syscall we call it "source".

sys_mount() calls it devname. But whatever - I'm not particularly attached to
the letter 'd' for this.

> The very basic mount(2) problem is that you have to parse
> /proc/self/mountinfo to get information about the mounted filesystem.
> It seems that your read() is also one way communication.
>
> What we really need is to have a way how to specify *what* you want to
> read. The error message is not enough, I want to know the finally used
> mount options, mount ID, etc. It would be nice to have something like
>
>
> fsmount(mfd, AT_FDCWD, "/mnt", 0);
>
> write(mfd, "o");
> read(mfd, ....); // read mount options
>
> write(mdf, "i");
> read(mfd, ....); // read mount ID
>
>
> but it seems ugly. Maybe introduce another function like
>
> fsinfo(mdf, "o", buf, bufsz)
>
> to get mount options (etc.) and to avoid separate write & read.

What is it you're trying to do? Just read back the state of the new mount?
Or read back the state of a specified extant mount?

David