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 |
