Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 35c11fdd authored by Steve French's avatar Steve French
Browse files

[CIFS] cifs export operations



For nfsd to work over cifs mounts (which presumably makes sense when trying
to reexport mounts to windows, network appliances or Samba servers to nfs
clients via nfs server).

This is the first stage of that enablement, marked experimental and turned
off by default.

Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent ba6a46a0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3,4 +3,4 @@
#
obj-$(CONFIG_CIFS) += cifs.o

cifs-objs := cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o link.o misc.o netmisc.o smbdes.o smbencrypt.o transport.o asn1.o md4.o md5.o cifs_unicode.o nterr.o xattr.o cifsencrypt.o fcntl.o readdir.o ioctl.o sess.o
cifs-objs := cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o link.o misc.o netmisc.o smbdes.o smbencrypt.o transport.o asn1.o md4.o md5.o cifs_unicode.o nterr.o xattr.o cifsencrypt.o fcntl.o readdir.o ioctl.o sess.o export.o
+7 −9
Original line number Diff line number Diff line
@@ -18,7 +18,9 @@ better)

d) Kerberos/SPNEGO session setup support - (started)

e) NTLMv2 authentication (mostly implemented)
e) NTLMv2 authentication (mostly implemented - double check
that NTLMv2 signing works, also need to cleanup now unneeded SessSetup code in
fs/cifs/connect.c)

f) MD5-HMAC signing SMB PDUs when SPNEGO style SessionSetup 
used (Kerberos or NTLMSSP). Signing alreadyimplemented for NTLM
@@ -88,11 +90,12 @@ w) Finish up the dos time conversion routines needed to return old server
time to the client (default time, of now or time 0 is used now for these 
very old servers)

x) Add support for OS/2 (LANMAN 1.2 and LANMAN2.1 based SMB servers)
x) In support for OS/2 (LANMAN 1.2 and LANMAN2.1 based SMB servers) 
need to add ability to set time to server (utimes command)

y) Finish testing of Windows 9x/Windows ME server support (started).

KNOWN BUGS (updated April 29, 2005)
KNOWN BUGS (updated February 26, 2007)
====================================
See http://bugzilla.samba.org - search on product "CifsVFS" for
current bug list.
@@ -107,11 +110,6 @@ but recognizes them
succeed but still return access denied (appears to be Windows 
server not cifs client problem) and has not been reproduced recently.
NTFS partitions do not have this problem.
4) debug connectathon lock test case 10 which fails against
Samba (may be unmappable due to POSIX to Windows lock model
differences but worth investigating).  Also debug Samba to 
see why lock test case 7 takes longer to complete to Samba
than to Windows.

Misc testing to do
==================
@@ -119,7 +117,7 @@ Misc testing to do
types. Try nested symlinks (8 deep). Return max path name in stat -f information

2) Modify file portion of ltp so it can run against a mounted network
share and run it against cifs vfs.
share and run it against cifs vfs in automated fashion.

3) Additional performance testing and optimization using iozone and similar - 
there are some easy changes that can be done to parallelize sequential writes,
+10 −2
Original line number Diff line number Diff line
/*
 *   fs/cifs/cifsfs.c
 *
 *   Copyright (C) International Business Machines  Corp., 2002,2004
 *   Copyright (C) International Business Machines  Corp., 2002,2007
 *   Author(s): Steve French (sfrench@us.ibm.com)
 *
 *   Common Internet FileSystem (CIFS) client
@@ -47,7 +47,11 @@

#ifdef CONFIG_CIFS_QUOTA
static struct quotactl_ops cifs_quotactl_ops;
#endif
#endif /* QUOTA */

#ifdef CONFIG_CIFS_EXPERIMENTAL
extern struct export_operations cifs_export_ops;
#endif /* EXPERIMENTAL */

int cifsFYI = 0;
int cifsERROR = 1;
@@ -110,6 +114,10 @@ cifs_read_super(struct super_block *sb, void *data,

	sb->s_magic = CIFS_MAGIC_NUMBER;
	sb->s_op = &cifs_super_ops;
#ifdef CONFIG_CIFS_EXPERIMENTAL
	if(experimEnabled != 0)
		sb->s_export_op = &cifs_export_ops;
#endif /* EXPERIMENTAL */	
/*	if(cifs_sb->tcon->ses->server->maxBuf > MAX_CIFS_HDR_SIZE + 512)
	    sb->s_blocksize = cifs_sb->tcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE; */
#ifdef CONFIG_CIFS_QUOTA