Linux 2.2.0
[davej-history.git] / fs / smbfs / ioctl.c
blobf9e6fd4c2c6c457617bc82cbc60bbf24dd77ea96
1 /*
2 * ioctl.c
4 * Copyright (C) 1995, 1996 by Volker Lendecke
5 * Copyright (C) 1997 by Volker Lendecke
7 */
9 #include <linux/errno.h>
10 #include <linux/fs.h>
11 #include <linux/ioctl.h>
12 #include <linux/sched.h>
13 #include <linux/mm.h>
15 #include <linux/smb_fs.h>
16 #include <linux/smb_mount.h>
18 #include <asm/uaccess.h>
20 int
21 smb_ioctl(struct inode *inode, struct file *filp,
22 unsigned int cmd, unsigned long arg)
24 struct smb_sb_info *server = SMB_SERVER(inode);
25 int result = -EINVAL;
27 switch (cmd)
29 case SMB_IOC_GETMOUNTUID:
30 result = put_user(server->mnt->mounted_uid, (uid_t *) arg);
31 break;
33 case SMB_IOC_NEWCONN:
35 struct smb_conn_opt opt;
37 if (arg)
39 result = -EFAULT;
40 if (!copy_from_user(&opt, (void *)arg, sizeof(opt)))
41 result = smb_newconn(server, &opt);
43 else
45 #if 0
46 /* obsolete option ... print a warning */
47 printk("SMBFS: ioctl deprecated, please upgrade "
48 "smbfs package\n");
49 #endif
50 result = 0;
52 break;
54 default:
56 return result;