cifs: pull freeing mountdata/dropping nls/freeing cifs_sb into cifs_umount()
all callers of cifs_umount() proceed to do the same thing; pull it into cifs_umount() itself. Acked-by: Pavel Shilovsky <piastryyy@gmail.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
98ab494dd1
commit
d757d71bfc
|
@ -171,9 +171,6 @@ static void cifs_kill_sb(struct super_block *sb)
|
||||||
struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
|
struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
|
||||||
kill_anon_super(sb);
|
kill_anon_super(sb);
|
||||||
cifs_umount(cifs_sb);
|
cifs_umount(cifs_sb);
|
||||||
kfree(cifs_sb->mountdata);
|
|
||||||
unload_nls(cifs_sb->local_nls);
|
|
||||||
kfree(cifs_sb);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -685,15 +682,12 @@ cifs_do_mount(struct file_system_type *fs_type,
|
||||||
if (IS_ERR(sb)) {
|
if (IS_ERR(sb)) {
|
||||||
root = ERR_CAST(sb);
|
root = ERR_CAST(sb);
|
||||||
cifs_umount(cifs_sb);
|
cifs_umount(cifs_sb);
|
||||||
goto out_cifs_sb;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sb->s_fs_info) {
|
if (sb->s_fs_info) {
|
||||||
cFYI(1, "Use existing superblock");
|
cFYI(1, "Use existing superblock");
|
||||||
cifs_umount(cifs_sb);
|
cifs_umount(cifs_sb);
|
||||||
kfree(cifs_sb->mountdata);
|
|
||||||
unload_nls(cifs_sb->local_nls);
|
|
||||||
kfree(cifs_sb);
|
|
||||||
goto out_shared;
|
goto out_shared;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -725,13 +719,6 @@ out_shared:
|
||||||
|
|
||||||
out_super:
|
out_super:
|
||||||
deactivate_locked_super(sb);
|
deactivate_locked_super(sb);
|
||||||
goto out;
|
|
||||||
|
|
||||||
out_cifs_sb:
|
|
||||||
kfree(cifs_sb->mountdata);
|
|
||||||
unload_nls(cifs_sb->local_nls);
|
|
||||||
kfree(cifs_sb);
|
|
||||||
|
|
||||||
out:
|
out:
|
||||||
cifs_cleanup_volume_info(&volume_info);
|
cifs_cleanup_volume_info(&volume_info);
|
||||||
return root;
|
return root;
|
||||||
|
|
|
@ -3362,6 +3362,9 @@ cifs_umount(struct cifs_sb_info *cifs_sb)
|
||||||
spin_unlock(&cifs_sb->tlink_tree_lock);
|
spin_unlock(&cifs_sb->tlink_tree_lock);
|
||||||
|
|
||||||
bdi_destroy(&cifs_sb->bdi);
|
bdi_destroy(&cifs_sb->bdi);
|
||||||
|
kfree(cifs_sb->mountdata);
|
||||||
|
unload_nls(cifs_sb->local_nls);
|
||||||
|
kfree(cifs_sb);
|
||||||
}
|
}
|
||||||
|
|
||||||
int cifs_negotiate_protocol(unsigned int xid, struct cifs_ses *ses)
|
int cifs_negotiate_protocol(unsigned int xid, struct cifs_ses *ses)
|
||||||
|
|
Loading…
Reference in New Issue