|
@@ -87,10 +87,6 @@ extern mempool_t *cifs_mid_poolp;
|
|
|
|
|
|
struct workqueue_struct *cifsiod_wq;
|
|
struct workqueue_struct *cifsiod_wq;
|
|
|
|
|
|
-#ifdef CONFIG_CIFS_SMB2
|
|
|
|
-__u8 cifs_client_guid[SMB2_CLIENT_GUID_SIZE];
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Bumps refcount for cifs super block.
|
|
* Bumps refcount for cifs super block.
|
|
* Note that it should be only called if a referece to VFS super block is
|
|
* Note that it should be only called if a referece to VFS super block is
|
|
@@ -251,11 +247,7 @@ cifs_alloc_inode(struct super_block *sb)
|
|
* server, can not assume caching of file data or metadata.
|
|
* server, can not assume caching of file data or metadata.
|
|
*/
|
|
*/
|
|
cifs_set_oplock_level(cifs_inode, 0);
|
|
cifs_set_oplock_level(cifs_inode, 0);
|
|
- cifs_inode->delete_pending = false;
|
|
|
|
- cifs_inode->invalid_mapping = false;
|
|
|
|
- clear_bit(CIFS_INODE_PENDING_OPLOCK_BREAK, &cifs_inode->flags);
|
|
|
|
- clear_bit(CIFS_INODE_PENDING_WRITERS, &cifs_inode->flags);
|
|
|
|
- clear_bit(CIFS_INODE_DOWNGRADE_OPLOCK_TO_L2, &cifs_inode->flags);
|
|
|
|
|
|
+ cifs_inode->flags = 0;
|
|
spin_lock_init(&cifs_inode->writers_lock);
|
|
spin_lock_init(&cifs_inode->writers_lock);
|
|
cifs_inode->writers = 0;
|
|
cifs_inode->writers = 0;
|
|
cifs_inode->vfs_inode.i_blkbits = 14; /* 2**14 = CIFS_MAX_MSGSIZE */
|
|
cifs_inode->vfs_inode.i_blkbits = 14; /* 2**14 = CIFS_MAX_MSGSIZE */
|
|
@@ -302,7 +294,7 @@ cifs_show_address(struct seq_file *s, struct TCP_Server_Info *server)
|
|
struct sockaddr_in *sa = (struct sockaddr_in *) &server->dstaddr;
|
|
struct sockaddr_in *sa = (struct sockaddr_in *) &server->dstaddr;
|
|
struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *) &server->dstaddr;
|
|
struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *) &server->dstaddr;
|
|
|
|
|
|
- seq_printf(s, ",addr=");
|
|
|
|
|
|
+ seq_puts(s, ",addr=");
|
|
|
|
|
|
switch (server->dstaddr.ss_family) {
|
|
switch (server->dstaddr.ss_family) {
|
|
case AF_INET:
|
|
case AF_INET:
|
|
@@ -314,7 +306,7 @@ cifs_show_address(struct seq_file *s, struct TCP_Server_Info *server)
|
|
seq_printf(s, "%%%u", sa6->sin6_scope_id);
|
|
seq_printf(s, "%%%u", sa6->sin6_scope_id);
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
- seq_printf(s, "(unknown)");
|
|
|
|
|
|
+ seq_puts(s, "(unknown)");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -324,45 +316,45 @@ cifs_show_security(struct seq_file *s, struct cifs_ses *ses)
|
|
if (ses->sectype == Unspecified)
|
|
if (ses->sectype == Unspecified)
|
|
return;
|
|
return;
|
|
|
|
|
|
- seq_printf(s, ",sec=");
|
|
|
|
|
|
+ seq_puts(s, ",sec=");
|
|
|
|
|
|
switch (ses->sectype) {
|
|
switch (ses->sectype) {
|
|
case LANMAN:
|
|
case LANMAN:
|
|
- seq_printf(s, "lanman");
|
|
|
|
|
|
+ seq_puts(s, "lanman");
|
|
break;
|
|
break;
|
|
case NTLMv2:
|
|
case NTLMv2:
|
|
- seq_printf(s, "ntlmv2");
|
|
|
|
|
|
+ seq_puts(s, "ntlmv2");
|
|
break;
|
|
break;
|
|
case NTLM:
|
|
case NTLM:
|
|
- seq_printf(s, "ntlm");
|
|
|
|
|
|
+ seq_puts(s, "ntlm");
|
|
break;
|
|
break;
|
|
case Kerberos:
|
|
case Kerberos:
|
|
- seq_printf(s, "krb5");
|
|
|
|
|
|
+ seq_puts(s, "krb5");
|
|
break;
|
|
break;
|
|
case RawNTLMSSP:
|
|
case RawNTLMSSP:
|
|
- seq_printf(s, "ntlmssp");
|
|
|
|
|
|
+ seq_puts(s, "ntlmssp");
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
/* shouldn't ever happen */
|
|
/* shouldn't ever happen */
|
|
- seq_printf(s, "unknown");
|
|
|
|
|
|
+ seq_puts(s, "unknown");
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
if (ses->sign)
|
|
if (ses->sign)
|
|
- seq_printf(s, "i");
|
|
|
|
|
|
+ seq_puts(s, "i");
|
|
}
|
|
}
|
|
|
|
|
|
static void
|
|
static void
|
|
cifs_show_cache_flavor(struct seq_file *s, struct cifs_sb_info *cifs_sb)
|
|
cifs_show_cache_flavor(struct seq_file *s, struct cifs_sb_info *cifs_sb)
|
|
{
|
|
{
|
|
- seq_printf(s, ",cache=");
|
|
|
|
|
|
+ seq_puts(s, ",cache=");
|
|
|
|
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_STRICT_IO)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_STRICT_IO)
|
|
- seq_printf(s, "strict");
|
|
|
|
|
|
+ seq_puts(s, "strict");
|
|
else if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DIRECT_IO)
|
|
else if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DIRECT_IO)
|
|
- seq_printf(s, "none");
|
|
|
|
|
|
+ seq_puts(s, "none");
|
|
else
|
|
else
|
|
- seq_printf(s, "loose");
|
|
|
|
|
|
+ seq_puts(s, "loose");
|
|
}
|
|
}
|
|
|
|
|
|
static void
|
|
static void
|
|
@@ -395,7 +387,7 @@ cifs_show_options(struct seq_file *s, struct dentry *root)
|
|
cifs_show_cache_flavor(s, cifs_sb);
|
|
cifs_show_cache_flavor(s, cifs_sb);
|
|
|
|
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MULTIUSER)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MULTIUSER)
|
|
- seq_printf(s, ",multiuser");
|
|
|
|
|
|
+ seq_puts(s, ",multiuser");
|
|
else if (tcon->ses->user_name)
|
|
else if (tcon->ses->user_name)
|
|
seq_printf(s, ",username=%s", tcon->ses->user_name);
|
|
seq_printf(s, ",username=%s", tcon->ses->user_name);
|
|
|
|
|
|
@@ -421,16 +413,16 @@ cifs_show_options(struct seq_file *s, struct dentry *root)
|
|
seq_printf(s, ",uid=%u",
|
|
seq_printf(s, ",uid=%u",
|
|
from_kuid_munged(&init_user_ns, cifs_sb->mnt_uid));
|
|
from_kuid_munged(&init_user_ns, cifs_sb->mnt_uid));
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_UID)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_UID)
|
|
- seq_printf(s, ",forceuid");
|
|
|
|
|
|
+ seq_puts(s, ",forceuid");
|
|
else
|
|
else
|
|
- seq_printf(s, ",noforceuid");
|
|
|
|
|
|
+ seq_puts(s, ",noforceuid");
|
|
|
|
|
|
seq_printf(s, ",gid=%u",
|
|
seq_printf(s, ",gid=%u",
|
|
from_kgid_munged(&init_user_ns, cifs_sb->mnt_gid));
|
|
from_kgid_munged(&init_user_ns, cifs_sb->mnt_gid));
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_GID)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_GID)
|
|
- seq_printf(s, ",forcegid");
|
|
|
|
|
|
+ seq_puts(s, ",forcegid");
|
|
else
|
|
else
|
|
- seq_printf(s, ",noforcegid");
|
|
|
|
|
|
+ seq_puts(s, ",noforcegid");
|
|
|
|
|
|
cifs_show_address(s, tcon->ses->server);
|
|
cifs_show_address(s, tcon->ses->server);
|
|
|
|
|
|
@@ -442,47 +434,47 @@ cifs_show_options(struct seq_file *s, struct dentry *root)
|
|
cifs_show_nls(s, cifs_sb->local_nls);
|
|
cifs_show_nls(s, cifs_sb->local_nls);
|
|
|
|
|
|
if (tcon->seal)
|
|
if (tcon->seal)
|
|
- seq_printf(s, ",seal");
|
|
|
|
|
|
+ seq_puts(s, ",seal");
|
|
if (tcon->nocase)
|
|
if (tcon->nocase)
|
|
- seq_printf(s, ",nocase");
|
|
|
|
|
|
+ seq_puts(s, ",nocase");
|
|
if (tcon->retry)
|
|
if (tcon->retry)
|
|
- seq_printf(s, ",hard");
|
|
|
|
|
|
+ seq_puts(s, ",hard");
|
|
if (tcon->unix_ext)
|
|
if (tcon->unix_ext)
|
|
- seq_printf(s, ",unix");
|
|
|
|
|
|
+ seq_puts(s, ",unix");
|
|
else
|
|
else
|
|
- seq_printf(s, ",nounix");
|
|
|
|
|
|
+ seq_puts(s, ",nounix");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS)
|
|
- seq_printf(s, ",posixpaths");
|
|
|
|
|
|
+ seq_puts(s, ",posixpaths");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID)
|
|
- seq_printf(s, ",setuids");
|
|
|
|
|
|
+ seq_puts(s, ",setuids");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM)
|
|
- seq_printf(s, ",serverino");
|
|
|
|
|
|
+ seq_puts(s, ",serverino");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_RWPIDFORWARD)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_RWPIDFORWARD)
|
|
- seq_printf(s, ",rwpidforward");
|
|
|
|
|
|
+ seq_puts(s, ",rwpidforward");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NOPOSIXBRL)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NOPOSIXBRL)
|
|
- seq_printf(s, ",forcemand");
|
|
|
|
|
|
+ seq_puts(s, ",forcemand");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
|
|
- seq_printf(s, ",nouser_xattr");
|
|
|
|
|
|
+ seq_puts(s, ",nouser_xattr");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR)
|
|
- seq_printf(s, ",mapchars");
|
|
|
|
|
|
+ seq_puts(s, ",mapchars");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL)
|
|
- seq_printf(s, ",sfu");
|
|
|
|
|
|
+ seq_puts(s, ",sfu");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_BRL)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_BRL)
|
|
- seq_printf(s, ",nobrl");
|
|
|
|
|
|
+ seq_puts(s, ",nobrl");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL)
|
|
- seq_printf(s, ",cifsacl");
|
|
|
|
|
|
+ seq_puts(s, ",cifsacl");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM)
|
|
- seq_printf(s, ",dynperm");
|
|
|
|
|
|
+ seq_puts(s, ",dynperm");
|
|
if (root->d_sb->s_flags & MS_POSIXACL)
|
|
if (root->d_sb->s_flags & MS_POSIXACL)
|
|
- seq_printf(s, ",acl");
|
|
|
|
|
|
+ seq_puts(s, ",acl");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MF_SYMLINKS)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MF_SYMLINKS)
|
|
- seq_printf(s, ",mfsymlinks");
|
|
|
|
|
|
+ seq_puts(s, ",mfsymlinks");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_FSCACHE)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_FSCACHE)
|
|
- seq_printf(s, ",fsc");
|
|
|
|
|
|
+ seq_puts(s, ",fsc");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NOSSYNC)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NOSSYNC)
|
|
- seq_printf(s, ",nostrictsync");
|
|
|
|
|
|
+ seq_puts(s, ",nostrictsync");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_PERM)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_PERM)
|
|
- seq_printf(s, ",noperm");
|
|
|
|
|
|
+ seq_puts(s, ",noperm");
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_BACKUPUID)
|
|
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_BACKUPUID)
|
|
seq_printf(s, ",backupuid=%u",
|
|
seq_printf(s, ",backupuid=%u",
|
|
from_kuid_munged(&init_user_ns,
|
|
from_kuid_munged(&init_user_ns,
|
|
@@ -1192,10 +1184,6 @@ init_cifs(void)
|
|
spin_lock_init(&cifs_file_list_lock);
|
|
spin_lock_init(&cifs_file_list_lock);
|
|
spin_lock_init(&GlobalMid_Lock);
|
|
spin_lock_init(&GlobalMid_Lock);
|
|
|
|
|
|
-#ifdef CONFIG_CIFS_SMB2
|
|
|
|
- get_random_bytes(cifs_client_guid, SMB2_CLIENT_GUID_SIZE);
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
if (cifs_max_pending < 2) {
|
|
if (cifs_max_pending < 2) {
|
|
cifs_max_pending = 2;
|
|
cifs_max_pending = 2;
|
|
cifs_dbg(FYI, "cifs_max_pending set to min of 2\n");
|
|
cifs_dbg(FYI, "cifs_max_pending set to min of 2\n");
|