diff options
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r-- | fs/cifs/connect.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 12cf72dd0c42..78fd7557e35d 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -2983,6 +2983,13 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | |||
2983 | struct tcon_link *tlink; | 2983 | struct tcon_link *tlink; |
2984 | #ifdef CONFIG_CIFS_DFS_UPCALL | 2984 | #ifdef CONFIG_CIFS_DFS_UPCALL |
2985 | int referral_walks_count = 0; | 2985 | int referral_walks_count = 0; |
2986 | |||
2987 | rc = bdi_setup_and_register(&cifs_sb->bdi, "cifs", BDI_CAP_MAP_COPY); | ||
2988 | if (rc) | ||
2989 | return rc; | ||
2990 | |||
2991 | cifs_sb->bdi.ra_pages = default_backing_dev_info.ra_pages; | ||
2992 | |||
2986 | try_mount_again: | 2993 | try_mount_again: |
2987 | /* cleanup activities if we're chasing a referral */ | 2994 | /* cleanup activities if we're chasing a referral */ |
2988 | if (referral_walks_count) { | 2995 | if (referral_walks_count) { |
@@ -3007,6 +3014,7 @@ try_mount_again: | |||
3007 | srvTcp = cifs_get_tcp_session(volume_info); | 3014 | srvTcp = cifs_get_tcp_session(volume_info); |
3008 | if (IS_ERR(srvTcp)) { | 3015 | if (IS_ERR(srvTcp)) { |
3009 | rc = PTR_ERR(srvTcp); | 3016 | rc = PTR_ERR(srvTcp); |
3017 | bdi_destroy(&cifs_sb->bdi); | ||
3010 | goto out; | 3018 | goto out; |
3011 | } | 3019 | } |
3012 | 3020 | ||
@@ -3161,6 +3169,7 @@ mount_fail_check: | |||
3161 | cifs_put_smb_ses(pSesInfo); | 3169 | cifs_put_smb_ses(pSesInfo); |
3162 | else | 3170 | else |
3163 | cifs_put_tcp_session(srvTcp); | 3171 | cifs_put_tcp_session(srvTcp); |
3172 | bdi_destroy(&cifs_sb->bdi); | ||
3164 | goto out; | 3173 | goto out; |
3165 | } | 3174 | } |
3166 | 3175 | ||
@@ -3357,6 +3366,7 @@ cifs_umount(struct super_block *sb, struct cifs_sb_info *cifs_sb) | |||
3357 | } | 3366 | } |
3358 | spin_unlock(&cifs_sb->tlink_tree_lock); | 3367 | spin_unlock(&cifs_sb->tlink_tree_lock); |
3359 | 3368 | ||
3369 | bdi_destroy(&cifs_sb->bdi); | ||
3360 | return 0; | 3370 | return 0; |
3361 | } | 3371 | } |
3362 | 3372 | ||