summaryrefslogtreecommitdiffstats
path: root/fs/nfsctl.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2011-06-21 15:27:43 +1000
committerJ. Bruce Fields <bfields@redhat.com>2011-07-15 18:58:42 -0400
commit49b28684fdba2c84a3b8e54aaa0faa9ce2e4f140 (patch)
treec64ee1e754e291d5a917417b25026e681d8a3d0d /fs/nfsctl.c
parent094b5d74f4005ae1cc90688f2c814e00937809a8 (diff)
downloadlinux-49b28684fdba2c84a3b8e54aaa0faa9ce2e4f140.tar.gz
linux-49b28684fdba2c84a3b8e54aaa0faa9ce2e4f140.tar.bz2
linux-49b28684fdba2c84a3b8e54aaa0faa9ce2e4f140.zip
nfsd: Remove deprecated nfsctl system call and related code.
As promised in feature-removal-schedule.txt it is time to remove the nfsctl system call. Userspace has perferred to not use this call throughout 2.6 and it has been excluded in the default configuration since 2.6.36 (9 months ago). So this patch removes all the code that was being compiled out. There are still references to sys_nfsctl in various arch systemcall tables and related code. These should be cleaned out too, probably in the next merge window. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsctl.c')
-rw-r--r--fs/nfsctl.c100
1 files changed, 0 insertions, 100 deletions
diff --git a/fs/nfsctl.c b/fs/nfsctl.c
deleted file mode 100644
index 124e8fcb0dd6..000000000000
--- a/fs/nfsctl.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * fs/nfsctl.c
- *
- * This should eventually move to userland.
- *
- */
-#include <linux/types.h>
-#include <linux/file.h>
-#include <linux/fs.h>
-#include <linux/nfsd/syscall.h>
-#include <linux/cred.h>
-#include <linux/sched.h>
-#include <linux/linkage.h>
-#include <linux/namei.h>
-#include <linux/mount.h>
-#include <linux/syscalls.h>
-#include <asm/uaccess.h>
-
-/*
- * open a file on nfsd fs
- */
-
-static struct file *do_open(char *name, int flags)
-{
- struct vfsmount *mnt;
- struct file *file;
-
- mnt = do_kern_mount("nfsd", 0, "nfsd", NULL);
- if (IS_ERR(mnt))
- return (struct file *)mnt;
-
- file = file_open_root(mnt->mnt_root, mnt, name, flags);
-
- mntput(mnt); /* drop do_kern_mount reference */
- return file;
-}
-
-static struct {
- char *name; int wsize; int rsize;
-} map[] = {
- [NFSCTL_SVC] = {
- .name = ".svc",
- .wsize = sizeof(struct nfsctl_svc)
- },
- [NFSCTL_ADDCLIENT] = {
- .name = ".add",
- .wsize = sizeof(struct nfsctl_client)
- },
- [NFSCTL_DELCLIENT] = {
- .name = ".del",
- .wsize = sizeof(struct nfsctl_client)
- },
- [NFSCTL_EXPORT] = {
- .name = ".export",
- .wsize = sizeof(struct nfsctl_export)
- },
- [NFSCTL_UNEXPORT] = {
- .name = ".unexport",
- .wsize = sizeof(struct nfsctl_export)
- },
- [NFSCTL_GETFD] = {
- .name = ".getfd",
- .wsize = sizeof(struct nfsctl_fdparm),
- .rsize = NFS_FHSIZE
- },
- [NFSCTL_GETFS] = {
- .name = ".getfs",
- .wsize = sizeof(struct nfsctl_fsparm),
- .rsize = sizeof(struct knfsd_fh)
- },
-};
-
-SYSCALL_DEFINE3(nfsservctl, int, cmd, struct nfsctl_arg __user *, arg,
- void __user *, res)
-{
- struct file *file;
- void __user *p = &arg->u;
- int version;
- int err;
-
- if (copy_from_user(&version, &arg->ca_version, sizeof(int)))
- return -EFAULT;
-
- if (version != NFSCTL_VERSION)
- return -EINVAL;
-
- if (cmd < 0 || cmd >= ARRAY_SIZE(map) || !map[cmd].name)
- return -EINVAL;
-
- file = do_open(map[cmd].name, map[cmd].rsize ? O_RDWR : O_WRONLY);
- if (IS_ERR(file))
- return PTR_ERR(file);
- err = file->f_op->write(file, p, map[cmd].wsize, &file->f_pos);
- if (err >= 0 && map[cmd].rsize)
- err = file->f_op->read(file, res, map[cmd].rsize, &file->f_pos);
- if (err >= 0)
- err = 0;
- fput(file);
- return err;
-}