aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.c
diff options
context:
space:
mode:
authorSean Finney <seanius@seanius.net>2011-04-11 09:19:34 -0400
committerSteve French <sfrench@us.ibm.com>2011-05-19 10:10:55 -0400
commit5167f11ec962690ecf926fab00f1d0524cd78664 (patch)
tree06797f7f000ad72df4127fa78c673772d93ddede /fs/cifs/cifsfs.c
parent046462abca2576cc1c71f501c148798fac4ea314 (diff)
cifs: Use kstrndup for cifs_sb->mountdata
A relatively minor nit, but also clarified the "consensus" from the preceding comments that it is in fact better to try for the kstrdup early and cleanup while cleaning up is still a simple thing to do. Reviewed-By: Steve French <smfrench@gmail.com> Signed-off-by: Sean Finney <seanius@seanius.net> Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r--fs/cifs/cifsfs.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 0f6a54f14eff..bb39afcc6f38 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -129,24 +129,19 @@ cifs_read_super(struct super_block *sb, void *data,
129 cifs_sb->bdi.ra_pages = default_backing_dev_info.ra_pages; 129 cifs_sb->bdi.ra_pages = default_backing_dev_info.ra_pages;
130 130
131#ifdef CONFIG_CIFS_DFS_UPCALL 131#ifdef CONFIG_CIFS_DFS_UPCALL
132 /* copy mount params to sb for use in submounts */ 132 /*
133 /* BB: should we move this after the mount so we 133 * Copy mount params to sb for use in submounts. Better to do
134 * do not have to do the copy on failed mounts? 134 * the copy here and deal with the error before cleanup gets
135 * BB: May be it is better to do simple copy before 135 * complicated post-mount.
136 * complex operation (mount), and in case of fail 136 */
137 * just exit instead of doing mount and attempting
138 * undo it if this copy fails?*/
139 if (data) { 137 if (data) {
140 int len = strlen(data); 138 cifs_sb->mountdata = kstrndup(data, PAGE_SIZE, GFP_KERNEL);
141 cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL);
142 if (cifs_sb->mountdata == NULL) { 139 if (cifs_sb->mountdata == NULL) {
143 bdi_destroy(&cifs_sb->bdi); 140 bdi_destroy(&cifs_sb->bdi);
144 kfree(sb->s_fs_info); 141 kfree(sb->s_fs_info);
145 sb->s_fs_info = NULL; 142 sb->s_fs_info = NULL;
146 return -ENOMEM; 143 return -ENOMEM;
147 } 144 }
148 strncpy(cifs_sb->mountdata, data, len + 1);
149 cifs_sb->mountdata[len] = '\0';
150 } 145 }
151#endif 146#endif
152 147