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/