New 'modprobe' command.

Allow kernel modules to be loaded into the appliance.
This commit is contained in:
Matthew Booth
2009-08-18 15:06:20 +01:00
parent 7b65b7d323
commit 53ce488f38
5 changed files with 52 additions and 1 deletions

View File

@@ -54,6 +54,7 @@ guestfsd_SOURCES = \
lvm.c \
mkfs.c \
mknod.c \
modprobe.c \
mount.c \
names.c \
ntfs.c \

40
daemon/modprobe.c Normal file
View File

@@ -0,0 +1,40 @@
/* libguestfs - the guestfsd daemon
* Copyright (C) 2009 Red Hat Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include "daemon.h"
#include "actions.h"
int
do_modprobe (const char *module)
{
char *err;
int r = command (NULL, &err, "/sbin/modprobe", module, NULL);
if (r == -1) {
reply_with_error ("%s", err);
}
free (err);
return r;
}

View File

@@ -30,6 +30,7 @@ daemon/ls.c
daemon/lvm.c
daemon/mkfs.c
daemon/mknod.c
daemon/modprobe.c
daemon/mount.c
daemon/names.c
daemon/ntfs.c

View File

@@ -1 +1 @@
193
194

View File

@@ -3560,6 +3560,15 @@ an external journal on the journal with UUID C<uuid>.
See also C<guestfs_mke2journal_U>.");
("modprobe", (RErr, [String "module"]), 194, [],
[InitNone, Always, TestRun [["modprobe"; "ext2"]]],
"load a kernel module",
"\
This loads a kernel module in the appliance.
The kernel module must have been whitelisted when libguestfs
was built (see C<appliance/kmod.whitelist.in> in the source).");
]
let all_functions = non_daemon_functions @ daemon_functions