Messages in this thread | | | Date | Tue, 5 Jun 2001 14:43:02 +0200 | From | Pavel Machek <> | Subject | Re: symlink_prefix |
| |
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/
| |