Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
5e04e7fe
Commit
5e04e7fe
authored
Nov 10, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
parents
a5cf8b7d
1b397f4f
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
96 additions
and
21 deletions
+96
-21
fs/Kconfig
fs/Kconfig
+43
-10
fs/cifs/CHANGES
fs/cifs/CHANGES
+1
-1
fs/cifs/cifs_unicode.c
fs/cifs/cifs_unicode.c
+3
-2
fs/cifs/cifsfs.c
fs/cifs/cifsfs.c
+8
-3
fs/cifs/cifsproto.h
fs/cifs/cifsproto.h
+1
-1
fs/cifs/cifssmb.c
fs/cifs/cifssmb.c
+0
-2
fs/cifs/cn_cifs.h
fs/cifs/cn_cifs.h
+37
-0
fs/cifs/connect.c
fs/cifs/connect.c
+1
-0
fs/cifs/inode.c
fs/cifs/inode.c
+0
-2
include/linux/connector.h
include/linux/connector.h
+2
-0
No files found.
fs/Kconfig
View file @
5e04e7fe
...
@@ -1601,9 +1601,10 @@ config CIFS
...
@@ -1601,9 +1601,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
server support for Linux and many other operating systems). Limited
you must use the smbfs client filesystem to access older SMB servers
support for Windows ME and similar servers is provided as well.
such as Windows 9x and OS/2.
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,
...
@@ -1614,7 +1615,7 @@ config CIFS
...
@@ -1614,7 +1615,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"
...
@@ -1623,8 +1624,22 @@ config CIFS_STATS
...
@@ -1623,8 +1624,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
...
@@ -1640,7 +1655,7 @@ config CIFS_XATTR
...
@@ -1640,7 +1655,7 @@ config CIFS_XATTR
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
...
@@ -1653,10 +1668,28 @@ config CIFS_POSIX
...
@@ -1653,10 +1668,28 @@ config CIFS_POSIX
config CIFS_EXPERIMENTAL
config CIFS_EXPERIMENTAL
bool "CIFS Experimental Features (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
help
Enables cifs features under testing. These features
Enables an upcall mechanism for CIFS which will be used to contact
are highly experimental. If unsure, say N.
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
config NCP_FS
tristate "NCP file system support (to mount NetWare volumes)"
tristate "NCP file system support (to mount NetWare volumes)"
...
...
fs/cifs/CHANGES
View file @
5e04e7fe
...
@@ -2,7 +2,7 @@ Version 1.39
...
@@ -2,7 +2,7 @@ Version 1.39
------------
------------
Defer close of a file handle slightly if pending writes depend on that file handle
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
(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
Version 1.38
------------
------------
...
...
fs/cifs/cifs_unicode.c
View file @
5e04e7fe
...
@@ -74,10 +74,11 @@ cifs_strtoUCS(wchar_t * to, const char *from, int len,
...
@@ -74,10 +74,11 @@ cifs_strtoUCS(wchar_t * to, const char *from, int len,
cERROR
(
1
,
cERROR
(
1
,
(
"cifs_strtoUCS: char2uni returned %d"
,
(
"cifs_strtoUCS: char2uni returned %d"
,
charlen
));
charlen
));
to
[
i
]
=
cpu_to_le16
(
0x003f
);
/* a question mark */
/* A question mark */
to
[
i
]
=
(
wchar_t
)
cpu_to_le16
(
0x003f
);
charlen
=
1
;
charlen
=
1
;
}
else
}
else
to
[
i
]
=
cpu_to_le16
(
to
[
i
]);
to
[
i
]
=
(
wchar_t
)
cpu_to_le16
(
to
[
i
]);
}
}
...
...
fs/cifs/cifsfs.c
View file @
5e04e7fe
...
@@ -405,6 +405,7 @@ static struct quotactl_ops cifs_quotactl_ops = {
...
@@ -405,6 +405,7 @@ static struct quotactl_ops cifs_quotactl_ops = {
};
};
#endif
#endif
#ifdef CONFIG_CIFS_EXPERIMENTAL
static
void
cifs_umount_begin
(
struct
super_block
*
sblock
)
static
void
cifs_umount_begin
(
struct
super_block
*
sblock
)
{
{
struct
cifs_sb_info
*
cifs_sb
;
struct
cifs_sb_info
*
cifs_sb
;
...
@@ -422,16 +423,18 @@ static void cifs_umount_begin(struct super_block * sblock)
...
@@ -422,16 +423,18 @@ static void cifs_umount_begin(struct super_block * sblock)
tcon
->
tidStatus
=
CifsExiting
;
tcon
->
tidStatus
=
CifsExiting
;
up
(
&
tcon
->
tconSem
);
up
(
&
tcon
->
tconSem
);
/* cancel_brl_requests(tcon); */
/* cancel_notify_requests(tcon); */
if
(
tcon
->
ses
&&
tcon
->
ses
->
server
)
if
(
tcon
->
ses
&&
tcon
->
ses
->
server
)
{
{
c
ERROR
(
1
,(
"wake up tasks now - umount begin not complete"
));
c
FYI
(
1
,(
"wake up tasks now - umount begin not complete"
));
wake_up_all
(
&
tcon
->
ses
->
server
->
request_q
);
wake_up_all
(
&
tcon
->
ses
->
server
->
request_q
);
}
}
/* BB FIXME - finish add checks for tidStatus BB */
/* BB FIXME - finish add checks for tidStatus BB */
return
;
return
;
}
}
#endif
static
int
cifs_remount
(
struct
super_block
*
sb
,
int
*
flags
,
char
*
data
)
static
int
cifs_remount
(
struct
super_block
*
sb
,
int
*
flags
,
char
*
data
)
{
{
...
@@ -450,7 +453,9 @@ struct super_operations cifs_super_ops = {
...
@@ -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
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 */
us with the same number of releases (closes) as opens */
.
show_options
=
cifs_show_options
,
.
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
,
.
remount_fs
=
cifs_remount
,
};
};
...
...
fs/cifs/cifsproto.h
View file @
5e04e7fe
...
@@ -242,11 +242,11 @@ extern int CIFSSMBWrite2(const int xid, struct cifsTconInfo *tcon,
...
@@ -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
,
...
...
fs/cifs/cifssmb.c
View file @
5e04e7fe
...
@@ -2959,7 +2959,6 @@ CIFSFindClose(const int xid, struct cifsTconInfo *tcon, const __u16 searchHandle
...
@@ -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:
...
@@ -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
,
...
...
fs/cifs/cn_cifs.h
0 → 100644
View file @
5e04e7fe
/*
* fs/cifs/cn_cifs.h
*
* Copyright (c) International Business Machines Corp., 2002
* Author(s): Steve French (sfrench@us.ibm.com)
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
* the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _CN_CIFS_H
#define _CN_CIFS_H
#ifdef CONFIG_CIFS_UPCALL
#include <linux/types.h>
#include <linux/connector.h>
struct
cifs_upcall
{
char
signature
[
4
];
/* CIFS */
enum
command
{
CIFS_GET_IP
=
0x00000001
,
/* get ip address for hostname */
CIFS_GET_SECBLOB
=
0x00000002
,
/* get SPNEGO wrapped blob */
}
command
;
/* union cifs upcall data follows */
};
#endif
/* CIFS_UPCALL */
#endif
/* _CN_CIFS_H */
fs/cifs/connect.c
View file @
5e04e7fe
...
@@ -42,6 +42,7 @@
...
@@ -42,6 +42,7 @@
#include "ntlmssp.h"
#include "ntlmssp.h"
#include "nterr.h"
#include "nterr.h"
#include "rfc1002pdu.h"
#include "rfc1002pdu.h"
#include "cn_cifs.h"
#define CIFS_PORT 445
#define CIFS_PORT 445
#define RFC1001_PORT 139
#define RFC1001_PORT 139
...
...
fs/cifs/inode.c
View file @
5e04e7fe
...
@@ -283,7 +283,6 @@ int cifs_get_inode_info(struct inode **pinode,
...
@@ -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,
...
@@ -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
;
...
...
include/linux/connector.h
View file @
5e04e7fe
...
@@ -32,6 +32,8 @@
...
@@ -32,6 +32,8 @@
*/
*/
#define CN_IDX_PROC 0x1
#define CN_IDX_PROC 0x1
#define CN_VAL_PROC 0x1
#define CN_VAL_PROC 0x1
#define CN_IDX_CIFS 0x2
#define CN_VAL_CIFS 0x1
#define CN_NETLINK_USERS 1
#define CN_NETLINK_USERS 1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment