Skip to content

Commit

Permalink
smbfs: move to drivers/staging
Browse files Browse the repository at this point in the history
smbfs has been scheduled for removal in 2.6.27, so
maybe we can now move it to drivers/staging on the
way out.

smbfs still uses the big kernel lock and nobody
is going to fix that, so we should be getting
rid of it soon.

This removes the 32 bit compat mount and ioctl
handling code, which is implemented in common fs
code, and moves all smbfs related files into
drivers/staging/smbfs.

Signed-off-by: Arnd Bergmann <[email protected]>
Acked-by: Jeff Layton <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
arndb authored and gregkh committed Oct 5, 2010
1 parent 5af74aa commit 2116b7a
Show file tree
Hide file tree
Showing 34 changed files with 44 additions and 103 deletions.
2 changes: 0 additions & 2 deletions Documentation/filesystems/00-INDEX
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,6 @@ seq_file.txt
- how to use the seq_file API
sharedsubtree.txt
- a description of shared subtrees for namespaces.
smbfs.txt
- info on using filesystems with the SMB protocol (Win 3.11 and NT).
spufs.txt
- info and mount options for the SPU filesystem used on Cell.
sysfs-pci.txt
Expand Down
2 changes: 1 addition & 1 deletion Documentation/ioctl/ioctl-number.txt
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ Code Seq#(hex) Include File Comments
't' 00-7F linux/if_ppp.h
't' 80-8F linux/isdn_ppp.h
't' 90 linux/toshiba.h
'u' 00-1F linux/smb_fs.h
'u' 00-1F linux/smb_fs.h gone
'v' all linux/videodev.h conflict!
'v' 00-1F linux/ext2_fs.h conflict!
'v' 00-1F linux/fs.h conflict!
Expand Down
2 changes: 2 additions & 0 deletions drivers/staging/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,8 @@ source "drivers/staging/msm/Kconfig"

source "drivers/staging/lirc/Kconfig"

source "drivers/staging/smbfs/Kconfig"

source "drivers/staging/easycap/Kconfig"

source "drivers/staging/solo6x10/Kconfig"
Expand Down
1 change: 1 addition & 0 deletions drivers/staging/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ obj-$(CONFIG_AUTOFS_FS) += autofs/
obj-$(CONFIG_IDE_PHISON) += phison/
obj-$(CONFIG_LINE6_USB) += line6/
obj-$(CONFIG_USB_SERIAL_QUATECH2) += serqt_usb2/
obj-$(CONFIG_SMB_FS) += smbfs/
obj-$(CONFIG_USB_SERIAL_QUATECH_USB2) += quatech_usb2/
obj-$(CONFIG_OCTEON_ETHERNET) += octeon/
obj-$(CONFIG_VT6655) += vt6655/
Expand Down
File renamed without changes.
File renamed without changes.
8 changes: 8 additions & 0 deletions drivers/staging/smbfs/TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
smbfs is on its way out of the kernel, it has been replaced
by cifs several years ago.

The smbfs code uses the big kernel lock which
is getting deprecated.

Users that find smbfs to work but not cifs should contact
the CIFS developers on [email protected].
2 changes: 1 addition & 1 deletion fs/smbfs/cache.c → drivers/staging/smbfs/cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/smb_fs.h>
#include <linux/pagemap.h>
#include <linux/net.h>

#include <asm/page.h>

#include "smb_fs.h"
#include "smb_debug.h"
#include "proto.h"

Expand Down
6 changes: 3 additions & 3 deletions fs/smbfs/dir.c → drivers/staging/smbfs/dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
#include <linux/net.h>
#include <linux/sched.h>

#include <linux/smb_fs.h>
#include <linux/smb_mount.h>
#include <linux/smbno.h>
#include "smb_fs.h"
#include "smb_mount.h"
#include "smbno.h"

#include "smb_debug.h"
#include "proto.h"
Expand Down
5 changes: 2 additions & 3 deletions fs/smbfs/file.c → drivers/staging/smbfs/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@
#include <asm/uaccess.h>
#include <asm/system.h>

#include <linux/smbno.h>
#include <linux/smb_fs.h>

#include "smbno.h"
#include "smb_fs.h"
#include "smb_debug.h"
#include "proto.h"

Expand Down
File renamed without changes.
File renamed without changes.
8 changes: 4 additions & 4 deletions fs/smbfs/inode.c → drivers/staging/smbfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@
#include <linux/vfs.h>
#include <linux/highuid.h>
#include <linux/sched.h>
#include <linux/smb_fs.h>
#include <linux/smbno.h>
#include <linux/smb_mount.h>

#include <asm/system.h>
#include <asm/uaccess.h>

#include "smb_fs.h"
#include "smbno.h"
#include "smb_mount.h"
#include "smb_debug.h"
#include "getopt.h"
#include "proto.h"
Expand Down Expand Up @@ -504,7 +504,7 @@ static int smb_fill_super(struct super_block *sb, void *raw_data, int silent)
if (warn_count < 5) {
warn_count++;
printk(KERN_EMERG "smbfs is deprecated and will be removed"
" from the 2.6.27 kernel. Please migrate to cifs\n");
" from the 2.6.37 kernel. Please migrate to cifs\n");
}

if (!raw_data)
Expand Down
5 changes: 2 additions & 3 deletions fs/smbfs/ioctl.c → drivers/staging/smbfs/ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,10 @@
#include <linux/smp_lock.h>
#include <linux/net.h>

#include <linux/smb_fs.h>
#include <linux/smb_mount.h>

#include <asm/uaccess.h>

#include "smb_fs.h"
#include "smb_mount.h"
#include "proto.h"

long
Expand Down
7 changes: 3 additions & 4 deletions fs/smbfs/proc.c → drivers/staging/smbfs/proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,14 @@
#include <linux/smp_lock.h>
#include <linux/net.h>
#include <linux/vfs.h>
#include <linux/smb_fs.h>
#include <linux/smbno.h>
#include <linux/smb_mount.h>

#include <net/sock.h>

#include <asm/string.h>
#include <asm/div64.h>

#include "smb_fs.h"
#include "smbno.h"
#include "smb_mount.h"
#include "smb_debug.h"
#include "proto.h"
#include "request.h"
Expand Down
File renamed without changes.
7 changes: 3 additions & 4 deletions fs/smbfs/request.c → drivers/staging/smbfs/request.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,9 @@
#include <linux/net.h>
#include <linux/sched.h>

#include <linux/smb_fs.h>
#include <linux/smbno.h>
#include <linux/smb_mount.h>

#include "smb_fs.h"
#include "smbno.h"
#include "smb_mount.h"
#include "smb_debug.h"
#include "request.h"
#include "proto.h"
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 4 additions & 4 deletions include/linux/smb_fs.h → drivers/staging/smbfs/smb_fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#ifndef _LINUX_SMB_FS_H
#define _LINUX_SMB_FS_H

#include <linux/smb.h>
#include "smb.h"

/*
* ioctl commands
Expand All @@ -22,13 +22,13 @@


#ifdef __KERNEL__
#include <linux/smb_fs_i.h>
#include <linux/smb_fs_sb.h>
#include "smb_fs_i.h"
#include "smb_fs_sb.h"
#include "smb_mount.h"

#include <linux/fs.h>
#include <linux/pagemap.h>
#include <linux/vmalloc.h>
#include <linux/smb_mount.h>
#include <linux/jiffies.h>
#include <asm/unaligned.h>

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#include <linux/types.h>
#include <linux/backing-dev.h>
#include <linux/smb.h>
#include "smb.h"

/*
* Upper limit on the total number of active smb_request structs.
Expand Down
File renamed without changes.
File renamed without changes.
7 changes: 3 additions & 4 deletions fs/smbfs/smbiod.c → drivers/staging/smbfs/smbiod.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,12 @@
#include <linux/kthread.h>
#include <net/ip.h>

#include <linux/smb_fs.h>
#include <linux/smbno.h>
#include <linux/smb_mount.h>

#include <asm/system.h>
#include <asm/uaccess.h>

#include "smb_fs.h"
#include "smbno.h"
#include "smb_mount.h"
#include "smb_debug.h"
#include "request.h"
#include "proto.h"
Expand Down
File renamed without changes.
7 changes: 3 additions & 4 deletions fs/smbfs/sock.c → drivers/staging/smbfs/sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,12 @@
#include <net/tcp_states.h>
#include <net/ip.h>

#include <linux/smb_fs.h>
#include <linux/smb.h>
#include <linux/smbno.h>

#include <asm/uaccess.h>
#include <asm/ioctls.h>

#include "smb_fs.h"
#include "smb.h"
#include "smbno.h"
#include "smb_debug.h"
#include "proto.h"
#include "request.h"
Expand Down
5 changes: 2 additions & 3 deletions fs/smbfs/symlink.c → drivers/staging/smbfs/symlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,8 @@
#include <asm/uaccess.h>
#include <asm/system.h>

#include <linux/smbno.h>
#include <linux/smb_fs.h>

#include "smbno.h"
#include "smb_fs.h"
#include "smb_debug.h"
#include "proto.h"

Expand Down
1 change: 0 additions & 1 deletion fs/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,6 @@ config NFS_COMMON
default y

source "net/sunrpc/Kconfig"
source "fs/smbfs/Kconfig"
source "fs/ceph/Kconfig"
source "fs/cifs/Kconfig"
source "fs/ncpfs/Kconfig"
Expand Down
1 change: 0 additions & 1 deletion fs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ obj-$(CONFIG_NFSD) += nfsd/
obj-$(CONFIG_LOCKD) += lockd/
obj-$(CONFIG_NLS) += nls/
obj-$(CONFIG_SYSV_FS) += sysv/
obj-$(CONFIG_SMB_FS) += smbfs/
obj-$(CONFIG_CIFS) += cifs/
obj-$(CONFIG_NCP_FS) += ncpfs/
obj-$(CONFIG_HPFS_FS) += hpfs/
Expand Down
31 changes: 1 addition & 30 deletions fs/compat.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
#include <linux/vfs.h>
#include <linux/ioctl.h>
#include <linux/init.h>
#include <linux/smb.h>
#include <linux/smb_mount.h>
#include <linux/ncp_mount.h>
#include <linux/nfs4_mount.h>
#include <linux/syscalls.h>
Expand Down Expand Up @@ -745,30 +743,6 @@ static void *do_ncp_super_data_conv(void *raw_data)
return raw_data;
}

struct compat_smb_mount_data {
compat_int_t version;
__compat_uid_t mounted_uid;
__compat_uid_t uid;
__compat_gid_t gid;
compat_mode_t file_mode;
compat_mode_t dir_mode;
};

static void *do_smb_super_data_conv(void *raw_data)
{
struct smb_mount_data *s = raw_data;
struct compat_smb_mount_data *c_s = raw_data;

if (c_s->version != SMB_MOUNT_OLDVERSION)
goto out;
s->dir_mode = c_s->dir_mode;
s->file_mode = c_s->file_mode;
s->gid = c_s->gid;
s->uid = c_s->uid;
s->mounted_uid = c_s->mounted_uid;
out:
return raw_data;
}

struct compat_nfs_string {
compat_uint_t len;
Expand Down Expand Up @@ -835,7 +809,6 @@ static int do_nfs4_super_data_conv(void *raw_data)
return 0;
}

#define SMBFS_NAME "smbfs"
#define NCPFS_NAME "ncpfs"
#define NFS4_NAME "nfs4"

Expand Down Expand Up @@ -870,9 +843,7 @@ asmlinkage long compat_sys_mount(const char __user * dev_name,
retval = -EINVAL;

if (kernel_type && data_page) {
if (!strcmp(kernel_type, SMBFS_NAME)) {
do_smb_super_data_conv((void *)data_page);
} else if (!strcmp(kernel_type, NCPFS_NAME)) {
if (!strcmp(kernel_type, NCPFS_NAME)) {
do_ncp_super_data_conv((void *)data_page);
} else if (!strcmp(kernel_type, NFS4_NAME)) {
if (do_nfs4_super_data_conv((void *) data_page))
Expand Down
26 changes: 0 additions & 26 deletions fs/compat_ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
#include <linux/videodev.h>
#include <linux/netdevice.h>
#include <linux/raw.h>
#include <linux/smb_fs.h>
#include <linux/blkdev.h>
#include <linux/elevator.h>
#include <linux/rtc.h>
Expand Down Expand Up @@ -558,25 +557,6 @@ static int mt_ioctl_trans(unsigned int fd, unsigned int cmd, void __user *argp)

#endif /* CONFIG_BLOCK */

static int do_smb_getmountuid(unsigned int fd, unsigned int cmd,
compat_uid_t __user *argp)
{
mm_segment_t old_fs = get_fs();
__kernel_uid_t kuid;
int err;

cmd = SMB_IOC_GETMOUNTUID;

set_fs(KERNEL_DS);
err = sys_ioctl(fd, cmd, (unsigned long)&kuid);
set_fs(old_fs);

if (err >= 0)
err = put_user(kuid, argp);

return err;
}

/* Bluetooth ioctls */
#define HCIUARTSETPROTO _IOW('U', 200, int)
#define HCIUARTGETPROTO _IOR('U', 201, int)
Expand Down Expand Up @@ -1265,8 +1245,6 @@ COMPATIBLE_IOCTL(OSS_GETVERSION)
/* Raw devices */
COMPATIBLE_IOCTL(RAW_SETBIND)
COMPATIBLE_IOCTL(RAW_GETBIND)
/* SMB ioctls which do not need any translations */
COMPATIBLE_IOCTL(SMB_IOC_NEWCONN)
/* Watchdog */
COMPATIBLE_IOCTL(WDIOC_GETSUPPORT)
COMPATIBLE_IOCTL(WDIOC_GETSTATUS)
Expand Down Expand Up @@ -1528,10 +1506,6 @@ static long do_ioctl_trans(int fd, unsigned int cmd,
case RAW_GETBIND:
return raw_ioctl(fd, cmd, argp);
#endif
/* One SMB ioctl needs translations. */
#define SMB_IOC_GETMOUNTUID_32 _IOR('u', 1, compat_uid_t)
case SMB_IOC_GETMOUNTUID_32:
return do_smb_getmountuid(fd, cmd, argp);
/* Serial */
case TIOCGSERIAL:
case TIOCSSERIAL:
Expand Down
4 changes: 0 additions & 4 deletions include/linux/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -326,10 +326,6 @@ header-y += serio.h
header-y += shm.h
header-y += signal.h
header-y += signalfd.h
header-y += smb.h
header-y += smb_fs.h
header-y += smb_mount.h
header-y += smbno.h
header-y += snmp.h
header-y += socket.h
header-y += sockios.h
Expand Down

0 comments on commit 2116b7a

Please sign in to comment.