浏览代码

[CIFS] Update kconfig for cifs

Add cifs extended stats configure option and reduce experimental code.

Signed-off-by: Steve French <sfrench@us.ibm.com>
Steve French 20 年之前
父节点
当前提交
ec58ef0328
共有 4 个文件被更改,包括 32 次插入14 次删除
  1. 31 9
      fs/Kconfig
  2. 1 1
      fs/cifs/cifsproto.h
  3. 0 2
      fs/cifs/cifssmb.c
  4. 0 2
      fs/cifs/inode.c

+ 31 - 9
fs/Kconfig

@@ -1587,9 +1587,10 @@ config CIFS
 	  PC operating systems.  The CIFS protocol is fully supported by 
 	  PC operating systems.  The CIFS protocol is fully supported by 
 	  file servers such as Windows 2000 (including Windows 2003, NT 4  
 	  file servers such as Windows 2000 (including Windows 2003, NT 4  
 	  and Windows XP) as well by Samba (which provides excellent CIFS
 	  and Windows XP) as well by Samba (which provides excellent CIFS
-	  server support for Linux and many other operating systems). Currently
-	  you must use the smbfs client filesystem to access older SMB servers
-	  such as Windows 9x and OS/2.
+	  server support for Linux and many other operating systems). Limited
+	  support for Windows ME and similar servers is provided as well. 
+	  You must use the smbfs client filesystem to access older SMB servers
+	  such as OS/2 and DOS.
 
 
 	  The intent of the cifs module is to provide an advanced
 	  The intent of the cifs module is to provide an advanced
 	  network file system client for mounting to CIFS compliant servers, 
 	  network file system client for mounting to CIFS compliant servers, 
@@ -1600,7 +1601,7 @@ config CIFS
 	  cifs if running only a (Samba) server. It is possible to enable both
 	  cifs if running only a (Samba) server. It is possible to enable both
 	  smbfs and cifs (e.g. if you are using CIFS for accessing Windows 2003
 	  smbfs and cifs (e.g. if you are using CIFS for accessing Windows 2003
 	  and Samba 3 servers, and smbfs for accessing old servers). If you need 
 	  and Samba 3 servers, and smbfs for accessing old servers). If you need 
-	  to mount to Samba or Windows 2003 servers from this machine, say Y.
+	  to mount to Samba or Windows from this machine, say Y.
 
 
 config CIFS_STATS
 config CIFS_STATS
         bool "CIFS statistics"
         bool "CIFS statistics"
@@ -1609,8 +1610,22 @@ config CIFS_STATS
           Enabling this option will cause statistics for each server share
           Enabling this option will cause statistics for each server share
 	  mounted by the cifs client to be displayed in /proc/fs/cifs/Stats
 	  mounted by the cifs client to be displayed in /proc/fs/cifs/Stats
 
 
+config CIFS_STATS2
+	bool "CIFS extended statistics"
+	depends on CIFS_STATS
+	help
+	  Enabling this option will allow more detailed statistics on SMB
+	  request timing to be displayed in /proc/fs/cifs/DebugData and also
+	  allow optional logging of slow responses to dmesg (depending on the
+	  value of /proc/fs/cifs/cifsFYI, see fs/cifs/README for more details).
+	  These additional statistics may have a minor effect on performance
+	  and memory utilization.
+
+	  Unless you are a developer or are doing network performance analysis
+	  or tuning, say N.
+
 config CIFS_XATTR
 config CIFS_XATTR
-        bool "CIFS extended attributes (EXPERIMENTAL)"
+        bool "CIFS extended attributes"
         depends on CIFS
         depends on CIFS
         help
         help
           Extended attributes are name:value pairs associated with inodes by
           Extended attributes are name:value pairs associated with inodes by
@@ -1622,11 +1637,11 @@ config CIFS_XATTR
           prefaced by the user namespace prefix. The system namespace
           prefaced by the user namespace prefix. The system namespace
           (used by some filesystems to store ACLs) is not supported at
           (used by some filesystems to store ACLs) is not supported at
           this time.
           this time.
-                                                                                                    
+
           If unsure, say N.
           If unsure, say N.
 
 
 config CIFS_POSIX
 config CIFS_POSIX
-        bool "CIFS POSIX Extensions (EXPERIMENTAL)"
+        bool "CIFS POSIX Extensions"
         depends on CIFS_XATTR
         depends on CIFS_XATTR
         help
         help
           Enabling this option will cause the cifs client to attempt to
           Enabling this option will cause the cifs client to attempt to
@@ -1641,8 +1656,15 @@ config CIFS_EXPERIMENTAL
 	  bool "CIFS Experimental Features (EXPERIMENTAL)"
 	  bool "CIFS Experimental Features (EXPERIMENTAL)"
 	  depends on CIFS && EXPERIMENTAL
 	  depends on CIFS && EXPERIMENTAL
 	  help
 	  help
-	    Enables cifs features under testing. These features
-	    are highly experimental.  If unsure, say N.
+	    Enables cifs features under testing. These features are
+	    experimental and currently include support for writepages
+	    (multipage writebehind performance improvements) and directory
+	    change notification ie fcntl(F_DNOTIFY) as well as some security
+	    improvements.  Some also depend on setting at runtime the
+	    pseudo-file /proc/fs/cifs/Experimental (which is disabled by
+	    default). See the file fs/cifs/README for more details.
+
+	    If unsure, say N.
 
 
 config NCP_FS
 config NCP_FS
 	tristate "NCP file system support (to mount NetWare volumes)"
 	tristate "NCP file system support (to mount NetWare volumes)"

+ 1 - 1
fs/cifs/cifsproto.h

@@ -242,11 +242,11 @@ extern int CIFSSMBWrite2(const int xid, struct cifsTconInfo *tcon,
 			const int netfid, const unsigned int count,
 			const int netfid, const unsigned int count,
 			const __u64 offset, unsigned int *nbytes, 
 			const __u64 offset, unsigned int *nbytes, 
 			struct kvec *iov, const int nvec, const int long_op);
 			struct kvec *iov, const int nvec, const int long_op);
+#endif /* CONFIG_CIFS_EXPERIMENTAL */
 extern int CIFSGetSrvInodeNumber(const int xid, struct cifsTconInfo *tcon,
 extern int CIFSGetSrvInodeNumber(const int xid, struct cifsTconInfo *tcon,
 			const unsigned char *searchName, __u64 * inode_number,
 			const unsigned char *searchName, __u64 * inode_number,
 			const struct nls_table *nls_codepage, 
 			const struct nls_table *nls_codepage, 
 			int remap_special_chars);
 			int remap_special_chars);
-#endif /* CONFIG_CIFS_EXPERIMENTAL */
 extern int cifs_convertUCSpath(char *target, const __le16 *source, int maxlen,
 extern int cifs_convertUCSpath(char *target, const __le16 *source, int maxlen,
 			const struct nls_table * codepage);
 			const struct nls_table * codepage);
 extern int cifsConvertToUCS(__le16 * target, const char *source, int maxlen,
 extern int cifsConvertToUCS(__le16 * target, const char *source, int maxlen,

+ 0 - 2
fs/cifs/cifssmb.c

@@ -2959,7 +2959,6 @@ CIFSFindClose(const int xid, struct cifsTconInfo *tcon, const __u16 searchHandle
 	return rc;
 	return rc;
 }
 }
 
 
-#ifdef CONFIG_CIFS_EXPERIMENTAL
 int
 int
 CIFSGetSrvInodeNumber(const int xid, struct cifsTconInfo *tcon,
 CIFSGetSrvInodeNumber(const int xid, struct cifsTconInfo *tcon,
                 const unsigned char *searchName,
                 const unsigned char *searchName,
@@ -3053,7 +3052,6 @@ GetInodeNumOut:
 		goto GetInodeNumberRetry;
 		goto GetInodeNumberRetry;
 	return rc;
 	return rc;
 }
 }
-#endif /* CIFS_EXPERIMENTAL */
 
 
 int
 int
 CIFSGetDFSRefer(const int xid, struct cifsSesInfo *ses,
 CIFSGetDFSRefer(const int xid, struct cifsSesInfo *ses,

+ 0 - 2
fs/cifs/inode.c

@@ -283,7 +283,6 @@ int cifs_get_inode_info(struct inode **pinode,
 			   there Windows server or network appliances for which
 			   there Windows server or network appliances for which
 			   IndexNumber field is not guaranteed unique? */
 			   IndexNumber field is not guaranteed unique? */
 
 
-#ifdef CONFIG_CIFS_EXPERIMENTAL		
 			if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM){
 			if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM){
 				int rc1 = 0;
 				int rc1 = 0;
 				__u64 inode_num;
 				__u64 inode_num;
@@ -299,7 +298,6 @@ int cifs_get_inode_info(struct inode **pinode,
 				} else /* do we need cast or hash to ino? */
 				} else /* do we need cast or hash to ino? */
 					(*pinode)->i_ino = inode_num;
 					(*pinode)->i_ino = inode_num;
 			} /* else ino incremented to unique num in new_inode*/
 			} /* else ino incremented to unique num in new_inode*/
-#endif /* CIFS_EXPERIMENTAL */
 			insert_inode_hash(*pinode);
 			insert_inode_hash(*pinode);
 		}
 		}
 		inode = *pinode;
 		inode = *pinode;