diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-29 15:42:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-29 15:42:10 -0400 |
commit | 442a9ffabb21f175027e93e72ea05159818271a6 (patch) | |
tree | c9c708a36c8af91389527dbf310ef8ee2c4e3409 /fs/cifs/cifsfs.c | |
parent | 4b781474682434e7881f20e9dfbe6687ea619795 (diff) | |
parent | 2c0c2a08bed7a3b791f88d09d16ace56acb3dd98 (diff) |
Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6
Pull CIFS updates from Steve French.
* 'for-next' of git://git.samba.org/sfrench/cifs-2.6: (29 commits)
cifs: fix oops while traversing open file list (try #4)
cifs: Fix comment as d_alloc_root() is replaced by d_make_root()
CIFS: Introduce SMB2 mounts as vers=2.1
CIFS: Introduce SMB2 Kconfig option
CIFS: Move add/set_credits and get_credits_field to ops structure
CIFS: Move protocol specific demultiplex thread calls to ops struct
CIFS: Move protocol specific part from cifs_readv_receive to ops struct
CIFS: Move header_size/max_header_size to ops structure
CIFS: Move protocol specific part from SendReceive2 to ops struct
cifs: Include backup intent search flags during searches {try #2)
CIFS: Separate protocol specific part from setlk
CIFS: Separate protocol specific part from getlk
CIFS: Separate protocol specific lock type handling
CIFS: Convert lock type to 32 bit variable
CIFS: Move locks to cifsFileInfo structure
cifs: convert send_nt_cancel into a version specific op
cifs: add a smb_version_operations/values structures and a smb_version enum
cifs: remove the vers= and version= synonyms for ver=
cifs: add warning about change in default cache semantics in 3.7
cifs: display cache= option in /proc/mounts
...
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r-- | fs/cifs/cifsfs.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 0a0fa0250e99..8b6e344eb0ba 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -56,7 +56,6 @@ int traceSMB = 0; | |||
56 | bool enable_oplocks = true; | 56 | bool enable_oplocks = true; |
57 | unsigned int linuxExtEnabled = 1; | 57 | unsigned int linuxExtEnabled = 1; |
58 | unsigned int lookupCacheEnabled = 1; | 58 | unsigned int lookupCacheEnabled = 1; |
59 | unsigned int multiuser_mount = 0; | ||
60 | unsigned int global_secflags = CIFSSEC_DEF; | 59 | unsigned int global_secflags = CIFSSEC_DEF; |
61 | /* unsigned int ntlmv2_support = 0; */ | 60 | /* unsigned int ntlmv2_support = 0; */ |
62 | unsigned int sign_CIFS_PDUs = 1; | 61 | unsigned int sign_CIFS_PDUs = 1; |
@@ -125,7 +124,7 @@ cifs_read_super(struct super_block *sb) | |||
125 | goto out_no_root; | 124 | goto out_no_root; |
126 | } | 125 | } |
127 | 126 | ||
128 | /* do that *after* d_alloc_root() - we want NULL ->d_op for root here */ | 127 | /* do that *after* d_make_root() - we want NULL ->d_op for root here */ |
129 | if (cifs_sb_master_tcon(cifs_sb)->nocase) | 128 | if (cifs_sb_master_tcon(cifs_sb)->nocase) |
130 | sb->s_d_op = &cifs_ci_dentry_ops; | 129 | sb->s_d_op = &cifs_ci_dentry_ops; |
131 | else | 130 | else |
@@ -329,6 +328,19 @@ cifs_show_security(struct seq_file *s, struct TCP_Server_Info *server) | |||
329 | seq_printf(s, "i"); | 328 | seq_printf(s, "i"); |
330 | } | 329 | } |
331 | 330 | ||
331 | static void | ||
332 | cifs_show_cache_flavor(struct seq_file *s, struct cifs_sb_info *cifs_sb) | ||
333 | { | ||
334 | seq_printf(s, ",cache="); | ||
335 | |||
336 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_STRICT_IO) | ||
337 | seq_printf(s, "strict"); | ||
338 | else if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DIRECT_IO) | ||
339 | seq_printf(s, "none"); | ||
340 | else | ||
341 | seq_printf(s, "loose"); | ||
342 | } | ||
343 | |||
332 | /* | 344 | /* |
333 | * cifs_show_options() is for displaying mount options in /proc/mounts. | 345 | * cifs_show_options() is for displaying mount options in /proc/mounts. |
334 | * Not all settable options are displayed but most of the important | 346 | * Not all settable options are displayed but most of the important |
@@ -342,7 +354,9 @@ cifs_show_options(struct seq_file *s, struct dentry *root) | |||
342 | struct sockaddr *srcaddr; | 354 | struct sockaddr *srcaddr; |
343 | srcaddr = (struct sockaddr *)&tcon->ses->server->srcaddr; | 355 | srcaddr = (struct sockaddr *)&tcon->ses->server->srcaddr; |
344 | 356 | ||
357 | seq_printf(s, ",vers=%s", tcon->ses->server->vals->version_string); | ||
345 | cifs_show_security(s, tcon->ses->server); | 358 | cifs_show_security(s, tcon->ses->server); |
359 | cifs_show_cache_flavor(s, cifs_sb); | ||
346 | 360 | ||
347 | seq_printf(s, ",unc=%s", tcon->treeName); | 361 | seq_printf(s, ",unc=%s", tcon->treeName); |
348 | 362 | ||
@@ -408,8 +422,6 @@ cifs_show_options(struct seq_file *s, struct dentry *root) | |||
408 | seq_printf(s, ",rwpidforward"); | 422 | seq_printf(s, ",rwpidforward"); |
409 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NOPOSIXBRL) | 423 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NOPOSIXBRL) |
410 | seq_printf(s, ",forcemand"); | 424 | seq_printf(s, ",forcemand"); |
411 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DIRECT_IO) | ||
412 | seq_printf(s, ",directio"); | ||
413 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR) | 425 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR) |
414 | seq_printf(s, ",nouser_xattr"); | 426 | seq_printf(s, ",nouser_xattr"); |
415 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR) | 427 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR) |
@@ -432,8 +444,6 @@ cifs_show_options(struct seq_file *s, struct dentry *root) | |||
432 | seq_printf(s, ",nostrictsync"); | 444 | seq_printf(s, ",nostrictsync"); |
433 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_PERM) | 445 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_PERM) |
434 | seq_printf(s, ",noperm"); | 446 | seq_printf(s, ",noperm"); |
435 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_STRICT_IO) | ||
436 | seq_printf(s, ",strictcache"); | ||
437 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_BACKUPUID) | 447 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_BACKUPUID) |
438 | seq_printf(s, ",backupuid=%u", cifs_sb->mnt_backupuid); | 448 | seq_printf(s, ",backupuid=%u", cifs_sb->mnt_backupuid); |
439 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_BACKUPGID) | 449 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_BACKUPGID) |
@@ -945,7 +955,6 @@ cifs_init_once(void *inode) | |||
945 | struct cifsInodeInfo *cifsi = inode; | 955 | struct cifsInodeInfo *cifsi = inode; |
946 | 956 | ||
947 | inode_init_once(&cifsi->vfs_inode); | 957 | inode_init_once(&cifsi->vfs_inode); |
948 | INIT_LIST_HEAD(&cifsi->llist); | ||
949 | mutex_init(&cifsi->lock_mutex); | 958 | mutex_init(&cifsi->lock_mutex); |
950 | } | 959 | } |
951 | 960 | ||