Loading fs/Kconfig +43 −10 Original line number Diff line number Diff line Loading @@ -1601,9 +1601,10 @@ config CIFS PC operating systems. The CIFS protocol is fully supported by file servers such as Windows 2000 (including Windows 2003, NT 4 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 network file system client for mounting to CIFS compliant servers, Loading @@ -1614,7 +1615,7 @@ config CIFS 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 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 bool "CIFS statistics" Loading @@ -1623,8 +1624,22 @@ config CIFS_STATS Enabling this option will cause statistics for each server share 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 bool "CIFS extended attributes (EXPERIMENTAL)" bool "CIFS extended attributes" depends on CIFS help Extended attributes are name:value pairs associated with inodes by Loading @@ -1640,7 +1655,7 @@ config CIFS_XATTR If unsure, say N. config CIFS_POSIX bool "CIFS POSIX Extensions (EXPERIMENTAL)" bool "CIFS POSIX Extensions" depends on CIFS_XATTR help Enabling this option will cause the cifs client to attempt to Loading @@ -1653,10 +1668,28 @@ config CIFS_POSIX config CIFS_EXPERIMENTAL bool "CIFS Experimental Features (EXPERIMENTAL)" depends on CIFS depends on CIFS && EXPERIMENTAL help 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 CIFS_UPCALL bool "CIFS Kerberos/SPNEGO advanced session setup (EXPERIMENTAL)" depends on CIFS_EXPERIMENTAL select CONNECTOR help Enables cifs features under testing. These features are highly experimental. If unsure, say N. Enables an upcall mechanism for CIFS which will be used to contact userspace helper utilities to provide SPNEGO packaged Kerberos tickets which are needed to mount to certain secure servers (for which more secure Kerberos authentication is required). If unsure, say N. config NCP_FS tristate "NCP file system support (to mount NetWare volumes)" Loading fs/cifs/CHANGES +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ Version 1.39 ------------ Defer close of a file handle slightly if pending writes depend on that file handle (this reduces the EBADF bad file handle errors that can be logged under heavy stress on writes). stress on writes). Modify cifs Kconfig options to expose CONFIG_CIFS_STATS2 Version 1.38 ------------ Loading fs/cifs/cifs_unicode.c +3 −2 Original line number Diff line number Diff line Loading @@ -74,10 +74,11 @@ cifs_strtoUCS(wchar_t * to, const char *from, int len, cERROR(1, ("cifs_strtoUCS: char2uni returned %d", charlen)); to[i] = cpu_to_le16(0x003f); /* a question mark */ /* A question mark */ to[i] = (wchar_t)cpu_to_le16(0x003f); charlen = 1; } else to[i] = cpu_to_le16(to[i]); to[i] = (wchar_t)cpu_to_le16(to[i]); } Loading fs/cifs/cifsfs.c +8 −3 Original line number Diff line number Diff line Loading @@ -405,6 +405,7 @@ static struct quotactl_ops cifs_quotactl_ops = { }; #endif #ifdef CONFIG_CIFS_EXPERIMENTAL static void cifs_umount_begin(struct super_block * sblock) { struct cifs_sb_info *cifs_sb; Loading @@ -422,16 +423,18 @@ static void cifs_umount_begin(struct super_block * sblock) tcon->tidStatus = CifsExiting; up(&tcon->tconSem); /* cancel_brl_requests(tcon); */ /* cancel_notify_requests(tcon); */ if(tcon->ses && tcon->ses->server) { cERROR(1,("wake up tasks now - umount begin not complete")); cFYI(1,("wake up tasks now - umount begin not complete")); wake_up_all(&tcon->ses->server->request_q); } /* BB FIXME - finish add checks for tidStatus BB */ return; } #endif static int cifs_remount(struct super_block *sb, int *flags, char *data) { Loading @@ -450,7 +453,9 @@ struct super_operations cifs_super_ops = { unless later we add lazy close of inodes or unless the kernel forgets to call us with the same number of releases (closes) as opens */ .show_options = cifs_show_options, /* .umount_begin = cifs_umount_begin, */ /* BB finish in the future */ #ifdef CONFIG_CIFS_EXPERIMENTAL .umount_begin = cifs_umount_begin, #endif .remount_fs = cifs_remount, }; Loading fs/cifs/cifsproto.h +1 −1 Original line number Diff line number Diff line Loading @@ -242,11 +242,11 @@ extern int CIFSSMBWrite2(const int xid, struct cifsTconInfo *tcon, const int netfid, const unsigned int count, const __u64 offset, unsigned int *nbytes, struct kvec *iov, const int nvec, const int long_op); #endif /* CONFIG_CIFS_EXPERIMENTAL */ extern int CIFSGetSrvInodeNumber(const int xid, struct cifsTconInfo *tcon, const unsigned char *searchName, __u64 * inode_number, const struct nls_table *nls_codepage, int remap_special_chars); #endif /* CONFIG_CIFS_EXPERIMENTAL */ extern int cifs_convertUCSpath(char *target, const __le16 *source, int maxlen, const struct nls_table * codepage); extern int cifsConvertToUCS(__le16 * target, const char *source, int maxlen, Loading Loading
fs/Kconfig +43 −10 Original line number Diff line number Diff line Loading @@ -1601,9 +1601,10 @@ config CIFS PC operating systems. The CIFS protocol is fully supported by file servers such as Windows 2000 (including Windows 2003, NT 4 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 network file system client for mounting to CIFS compliant servers, Loading @@ -1614,7 +1615,7 @@ config CIFS 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 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 bool "CIFS statistics" Loading @@ -1623,8 +1624,22 @@ config CIFS_STATS Enabling this option will cause statistics for each server share 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 bool "CIFS extended attributes (EXPERIMENTAL)" bool "CIFS extended attributes" depends on CIFS help Extended attributes are name:value pairs associated with inodes by Loading @@ -1640,7 +1655,7 @@ config CIFS_XATTR If unsure, say N. config CIFS_POSIX bool "CIFS POSIX Extensions (EXPERIMENTAL)" bool "CIFS POSIX Extensions" depends on CIFS_XATTR help Enabling this option will cause the cifs client to attempt to Loading @@ -1653,10 +1668,28 @@ config CIFS_POSIX config CIFS_EXPERIMENTAL bool "CIFS Experimental Features (EXPERIMENTAL)" depends on CIFS depends on CIFS && EXPERIMENTAL help 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 CIFS_UPCALL bool "CIFS Kerberos/SPNEGO advanced session setup (EXPERIMENTAL)" depends on CIFS_EXPERIMENTAL select CONNECTOR help Enables cifs features under testing. These features are highly experimental. If unsure, say N. Enables an upcall mechanism for CIFS which will be used to contact userspace helper utilities to provide SPNEGO packaged Kerberos tickets which are needed to mount to certain secure servers (for which more secure Kerberos authentication is required). If unsure, say N. config NCP_FS tristate "NCP file system support (to mount NetWare volumes)" Loading
fs/cifs/CHANGES +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ Version 1.39 ------------ Defer close of a file handle slightly if pending writes depend on that file handle (this reduces the EBADF bad file handle errors that can be logged under heavy stress on writes). stress on writes). Modify cifs Kconfig options to expose CONFIG_CIFS_STATS2 Version 1.38 ------------ Loading
fs/cifs/cifs_unicode.c +3 −2 Original line number Diff line number Diff line Loading @@ -74,10 +74,11 @@ cifs_strtoUCS(wchar_t * to, const char *from, int len, cERROR(1, ("cifs_strtoUCS: char2uni returned %d", charlen)); to[i] = cpu_to_le16(0x003f); /* a question mark */ /* A question mark */ to[i] = (wchar_t)cpu_to_le16(0x003f); charlen = 1; } else to[i] = cpu_to_le16(to[i]); to[i] = (wchar_t)cpu_to_le16(to[i]); } Loading
fs/cifs/cifsfs.c +8 −3 Original line number Diff line number Diff line Loading @@ -405,6 +405,7 @@ static struct quotactl_ops cifs_quotactl_ops = { }; #endif #ifdef CONFIG_CIFS_EXPERIMENTAL static void cifs_umount_begin(struct super_block * sblock) { struct cifs_sb_info *cifs_sb; Loading @@ -422,16 +423,18 @@ static void cifs_umount_begin(struct super_block * sblock) tcon->tidStatus = CifsExiting; up(&tcon->tconSem); /* cancel_brl_requests(tcon); */ /* cancel_notify_requests(tcon); */ if(tcon->ses && tcon->ses->server) { cERROR(1,("wake up tasks now - umount begin not complete")); cFYI(1,("wake up tasks now - umount begin not complete")); wake_up_all(&tcon->ses->server->request_q); } /* BB FIXME - finish add checks for tidStatus BB */ return; } #endif static int cifs_remount(struct super_block *sb, int *flags, char *data) { Loading @@ -450,7 +453,9 @@ struct super_operations cifs_super_ops = { unless later we add lazy close of inodes or unless the kernel forgets to call us with the same number of releases (closes) as opens */ .show_options = cifs_show_options, /* .umount_begin = cifs_umount_begin, */ /* BB finish in the future */ #ifdef CONFIG_CIFS_EXPERIMENTAL .umount_begin = cifs_umount_begin, #endif .remount_fs = cifs_remount, }; Loading
fs/cifs/cifsproto.h +1 −1 Original line number Diff line number Diff line Loading @@ -242,11 +242,11 @@ extern int CIFSSMBWrite2(const int xid, struct cifsTconInfo *tcon, const int netfid, const unsigned int count, const __u64 offset, unsigned int *nbytes, struct kvec *iov, const int nvec, const int long_op); #endif /* CONFIG_CIFS_EXPERIMENTAL */ extern int CIFSGetSrvInodeNumber(const int xid, struct cifsTconInfo *tcon, const unsigned char *searchName, __u64 * inode_number, const struct nls_table *nls_codepage, int remap_special_chars); #endif /* CONFIG_CIFS_EXPERIMENTAL */ extern int cifs_convertUCSpath(char *target, const __le16 *source, int maxlen, const struct nls_table * codepage); extern int cifsConvertToUCS(__le16 * target, const char *source, int maxlen, Loading