Messages in this thread | | | Date | Mon, 3 May 2004 13:43:16 +0200 | From | Libor Vanek <> | Subject | Re: Reading from file in module fails |
| |
> > I need to copy files (yes - I know that kernel shouldn't do this but > > I REALLY need). > > This is ugly, but it should do the trick: > > int rv; > char *argv[4] = {"/bin/cp", "/tmp/foo", "/tmp/bar", NULL}; > char *envp[3] = {"HOME=/", "PATH=/sbin:/bin:/usr/sbin:/usr/bin", NULL}; > > rv = call_usermodehelper(argv[0], argv, envp, 1); > > if(rv < 0) { > /* error handling */ > } > > Called from kernel, done in userspace. And if you want to access an SQL > database from kernel tomorrow, it's just a matter of changing the > usermode helper. > > (BTW, if you need to copy files from kernel, it's usually a sign of bad > design)
Geez - that's REALLY ugly :-) But for testing I can use it.
It's not bad design - what I'm doing is writing snapshots for VFS as my diploma thesis. And I need to create copy of file before it's changed (copy-on-write). There is no other way how to do it in kernel-space (and user-space solutions like using LUFS are really slow)
Thx, Libor
- 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/
| |