diff options
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r-- | fs/cifs/connect.c | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index f31dc9ac37b7..5dcc55197fb3 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -215,6 +215,8 @@ static const match_table_t cifs_mount_option_tokens = { | |||
215 | 215 | ||
216 | { Opt_ignore, "cred" }, | 216 | { Opt_ignore, "cred" }, |
217 | { Opt_ignore, "credentials" }, | 217 | { Opt_ignore, "credentials" }, |
218 | { Opt_ignore, "cred=%s" }, | ||
219 | { Opt_ignore, "credentials=%s" }, | ||
218 | { Opt_ignore, "guest" }, | 220 | { Opt_ignore, "guest" }, |
219 | { Opt_ignore, "rw" }, | 221 | { Opt_ignore, "rw" }, |
220 | { Opt_ignore, "ro" }, | 222 | { Opt_ignore, "ro" }, |
@@ -2183,6 +2185,7 @@ cifs_get_tcp_session(struct smb_vol *volume_info) | |||
2183 | tcp_ses->session_estab = false; | 2185 | tcp_ses->session_estab = false; |
2184 | tcp_ses->sequence_number = 0; | 2186 | tcp_ses->sequence_number = 0; |
2185 | tcp_ses->lstrp = jiffies; | 2187 | tcp_ses->lstrp = jiffies; |
2188 | spin_lock_init(&tcp_ses->req_lock); | ||
2186 | INIT_LIST_HEAD(&tcp_ses->tcp_ses_list); | 2189 | INIT_LIST_HEAD(&tcp_ses->tcp_ses_list); |
2187 | INIT_LIST_HEAD(&tcp_ses->smb_ses_list); | 2190 | INIT_LIST_HEAD(&tcp_ses->smb_ses_list); |
2188 | INIT_DELAYED_WORK(&tcp_ses->echo, cifs_echo_request); | 2191 | INIT_DELAYED_WORK(&tcp_ses->echo, cifs_echo_request); |
@@ -3228,10 +3231,6 @@ void cifs_setup_cifs_sb(struct smb_vol *pvolume_info, | |||
3228 | 3231 | ||
3229 | cifs_sb->mnt_uid = pvolume_info->linux_uid; | 3232 | cifs_sb->mnt_uid = pvolume_info->linux_uid; |
3230 | cifs_sb->mnt_gid = pvolume_info->linux_gid; | 3233 | cifs_sb->mnt_gid = pvolume_info->linux_gid; |
3231 | if (pvolume_info->backupuid_specified) | ||
3232 | cifs_sb->mnt_backupuid = pvolume_info->backupuid; | ||
3233 | if (pvolume_info->backupgid_specified) | ||
3234 | cifs_sb->mnt_backupgid = pvolume_info->backupgid; | ||
3235 | cifs_sb->mnt_file_mode = pvolume_info->file_mode; | 3234 | cifs_sb->mnt_file_mode = pvolume_info->file_mode; |
3236 | cifs_sb->mnt_dir_mode = pvolume_info->dir_mode; | 3235 | cifs_sb->mnt_dir_mode = pvolume_info->dir_mode; |
3237 | cFYI(1, "file mode: 0x%hx dir mode: 0x%hx", | 3236 | cFYI(1, "file mode: 0x%hx dir mode: 0x%hx", |
@@ -3262,10 +3261,14 @@ void cifs_setup_cifs_sb(struct smb_vol *pvolume_info, | |||
3262 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_RWPIDFORWARD; | 3261 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_RWPIDFORWARD; |
3263 | if (pvolume_info->cifs_acl) | 3262 | if (pvolume_info->cifs_acl) |
3264 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_CIFS_ACL; | 3263 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_CIFS_ACL; |
3265 | if (pvolume_info->backupuid_specified) | 3264 | if (pvolume_info->backupuid_specified) { |
3266 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_CIFS_BACKUPUID; | 3265 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_CIFS_BACKUPUID; |
3267 | if (pvolume_info->backupgid_specified) | 3266 | cifs_sb->mnt_backupuid = pvolume_info->backupuid; |
3267 | } | ||
3268 | if (pvolume_info->backupgid_specified) { | ||
3268 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_CIFS_BACKUPGID; | 3269 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_CIFS_BACKUPGID; |
3270 | cifs_sb->mnt_backupgid = pvolume_info->backupgid; | ||
3271 | } | ||
3269 | if (pvolume_info->override_uid) | 3272 | if (pvolume_info->override_uid) |
3270 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_UID; | 3273 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_UID; |
3271 | if (pvolume_info->override_gid) | 3274 | if (pvolume_info->override_gid) |
@@ -3614,22 +3617,6 @@ cifs_get_volume_info(char *mount_data, const char *devname) | |||
3614 | return volume_info; | 3617 | return volume_info; |
3615 | } | 3618 | } |
3616 | 3619 | ||
3617 | /* make sure ra_pages is a multiple of rsize */ | ||
3618 | static inline unsigned int | ||
3619 | cifs_ra_pages(struct cifs_sb_info *cifs_sb) | ||
3620 | { | ||
3621 | unsigned int reads; | ||
3622 | unsigned int rsize_pages = cifs_sb->rsize / PAGE_CACHE_SIZE; | ||
3623 | |||
3624 | if (rsize_pages >= default_backing_dev_info.ra_pages) | ||
3625 | return default_backing_dev_info.ra_pages; | ||
3626 | else if (rsize_pages == 0) | ||
3627 | return rsize_pages; | ||
3628 | |||
3629 | reads = default_backing_dev_info.ra_pages / rsize_pages; | ||
3630 | return reads * rsize_pages; | ||
3631 | } | ||
3632 | |||
3633 | int | 3620 | int |
3634 | cifs_mount(struct cifs_sb_info *cifs_sb, struct smb_vol *volume_info) | 3621 | cifs_mount(struct cifs_sb_info *cifs_sb, struct smb_vol *volume_info) |
3635 | { | 3622 | { |
@@ -3717,7 +3704,7 @@ try_mount_again: | |||
3717 | cifs_sb->rsize = cifs_negotiate_rsize(tcon, volume_info); | 3704 | cifs_sb->rsize = cifs_negotiate_rsize(tcon, volume_info); |
3718 | 3705 | ||
3719 | /* tune readahead according to rsize */ | 3706 | /* tune readahead according to rsize */ |
3720 | cifs_sb->bdi.ra_pages = cifs_ra_pages(cifs_sb); | 3707 | cifs_sb->bdi.ra_pages = cifs_sb->rsize / PAGE_CACHE_SIZE; |
3721 | 3708 | ||
3722 | remote_path_check: | 3709 | remote_path_check: |
3723 | #ifdef CONFIG_CIFS_DFS_UPCALL | 3710 | #ifdef CONFIG_CIFS_DFS_UPCALL |