Re: symlink_prefix

Pavel Machek (pavel@suse.cz)
Tue, 5 Jun 2001 14:43:02 +0200


Hi!

> > What I did was: add a field `char *mnt_symlink_prefix;' to the
> > struct vfsmount, fill it in super.c:add_vfsmnt(), use it in
> > namei.c:vfs_follow_link(). Pick the value up by recognizing
> > in super.c:do_mount() the option "symlink_prefix=" before
> > giving the options to the separate filesystems.
> >
> > [One could start a subdiscussion about that part. The mount(2)
> > system call needs to transport vfs information and per-fs information.
> > So far, the vfs information used flag bits only, but sooner or later
> > we'll want to have strings, and need a vfs_parse_mount_options().
> > Indeed, many filesystems today have uid= and gid= and umask= options
> > that might be removed from the individual filesystems and put into vfs.
> > After all, such options are also useful for (foreign) ext2 filesystems.]
>
> _Please_, if we do anything of that kind - let's use a new syscall.
> Ideally, I'd say
> fs_fd = open("/fs/ext2", O_RDWR);
> /* error -> no such filesystem */
> write(fs_fd. "/dev/sda1", strlen("/dev/sda1"));
> /* error handling */
> write(fs_fd, "reserve=5", strlen(....));
> ...
> dir = open("/usr/local", O_DIRECTORY);
> /* error handling */
> new_mount(dir, MNT_SET, fs_fd); /* closes dir and fs_fd */
> /* error handling */
>
> First open gives you a new channel. Preferably - wit datagram semantics (i.e.
> write() boundaries are preserved). Then you convince fs driver to give you
> fs. Then you mount it.

Looks good. Will it be possible to emulate old mount in libc in
(distant) future.
Pavel

-- 
I'm pavel@ucw.cz. "In my country we have almost anarchy and I don't care."
Panos Katsaloulis describing me w.r.t. patents at discuss@linmodems.org
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/