Blame view
fs/smbfs/ioctl.c
1.51 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/* * ioctl.c * * Copyright (C) 1995, 1996 by Volker Lendecke * Copyright (C) 1997 by Volker Lendecke * * Please add a note about your changes to smbfs in the ChangeLog file. */ #include <linux/errno.h> #include <linux/fs.h> #include <linux/ioctl.h> #include <linux/time.h> #include <linux/mm.h> #include <linux/highuid.h> |
ce8273a57 smbfs: Push down ... |
16 |
#include <linux/smp_lock.h> |
1da177e4c Linux-2.6.12-rc2 |
17 18 19 20 21 22 23 24 |
#include <linux/net.h> #include <linux/smb_fs.h> #include <linux/smb_mount.h> #include <asm/uaccess.h> #include "proto.h" |
ce8273a57 smbfs: Push down ... |
25 26 |
long smb_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) |
1da177e4c Linux-2.6.12-rc2 |
27 |
{ |
ce8273a57 smbfs: Push down ... |
28 |
struct smb_sb_info *server = server_from_inode(filp->f_path.dentry->d_inode); |
1da177e4c Linux-2.6.12-rc2 |
29 30 |
struct smb_conn_opt opt; int result = -EINVAL; |
ce8273a57 smbfs: Push down ... |
31 |
lock_kernel(); |
1da177e4c Linux-2.6.12-rc2 |
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
switch (cmd) { uid16_t uid16; uid_t uid32; case SMB_IOC_GETMOUNTUID: SET_UID(uid16, server->mnt->mounted_uid); result = put_user(uid16, (uid16_t __user *) arg); break; case SMB_IOC_GETMOUNTUID32: SET_UID(uid32, server->mnt->mounted_uid); result = put_user(uid32, (uid_t __user *) arg); break; case SMB_IOC_NEWCONN: /* arg is smb_conn_opt, or NULL if no connection was made */ if (!arg) { result = 0; smb_lock_server(server); server->state = CONN_RETRIED; printk(KERN_ERR "Connection attempt failed! [%d] ", server->conn_error); smbiod_flush(server); smb_unlock_server(server); break; } result = -EFAULT; if (!copy_from_user(&opt, (void __user *)arg, sizeof(opt))) result = smb_newconn(server, &opt); break; default: break; } |
ce8273a57 smbfs: Push down ... |
65 |
unlock_kernel(); |
1da177e4c Linux-2.6.12-rc2 |
66 67 68 |
return result; } |