Re: how do you call userspace syscalls (e.g. sys_rename) from inside kernel

From: Luke Kenneth Casson Leighton
Date: Fri Oct 08 2004 - 10:10:21 EST


On Fri, Oct 08, 2004 at 10:02:08AM -0400, Brian Gerst wrote:
> Luke Kenneth Casson Leighton wrote:
> >could someone kindly advise me on the location of some example code in
> >the kernel which calls one of the userspace system calls from inside the
> >kernel?
> >
> >alternatively if this has never been considered before, please could
> >someone advise me as to how it might be achieved?
>
> What are you trying to do?

call sys_rename, sys_pread, sys_create, sys_mknod, sys_rmdir
etc. - everything that does file access.

> In most cases needing to use syscalls from
> within the kernel is an indication of a design flaw.

in this case it's an attempt to avoid cutting and pasting
the entire contents of sys_rename, sys_pread, sys_this,
sys_that, removing the first couple and last few lines (that
do copy_from_user) and replacing the arguments with either
a dentry or a kernel-side char* instead of an __user char*.

my alternative is to patch every single vfs-related sys_* in fs/*.c to
be able to "plug in" to these functions.

l.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/