cifs: have cifs_cleanup_volume_info not take a double pointer

...as that makes for a cumbersome interface. Make it take a regular
smb_vol pointer and rely on the caller to zero it out if needed.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Pavel Shilovsky <piastryyy@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
Jeff Layton 2011-07-06 08:10:37 -04:00 committed by Steve French
parent b2a0fa1520
commit f9e59bcba2
3 changed files with 5 additions and 9 deletions

View File

@ -713,7 +713,7 @@ cifs_do_mount(struct file_system_type *fs_type,
out_super: out_super:
deactivate_locked_super(sb); deactivate_locked_super(sb);
out: out:
cifs_cleanup_volume_info(&volume_info); cifs_cleanup_volume_info(volume_info);
return root; return root;
out_mountdata: out_mountdata:

View File

@ -154,7 +154,7 @@ extern int set_cifs_acl(struct cifs_ntsd *, __u32, struct inode *,
extern void cifs_setup_cifs_sb(struct smb_vol *pvolume_info, extern void cifs_setup_cifs_sb(struct smb_vol *pvolume_info,
struct cifs_sb_info *cifs_sb); struct cifs_sb_info *cifs_sb);
extern int cifs_match_super(struct super_block *, void *); extern int cifs_match_super(struct super_block *, void *);
extern void cifs_cleanup_volume_info(struct smb_vol **pvolume_info); extern void cifs_cleanup_volume_info(struct smb_vol *pvolume_info);
extern int cifs_setup_volume_info(struct smb_vol **pvolume_info, extern int cifs_setup_volume_info(struct smb_vol **pvolume_info,
char *mount_data, const char *devname); char *mount_data, const char *devname);
extern int cifs_mount(struct cifs_sb_info *, struct smb_vol *); extern int cifs_mount(struct cifs_sb_info *, struct smb_vol *);

View File

@ -2831,14 +2831,11 @@ is_path_accessible(int xid, struct cifs_tcon *tcon,
} }
void void
cifs_cleanup_volume_info(struct smb_vol **pvolume_info) cifs_cleanup_volume_info(struct smb_vol *volume_info)
{ {
struct smb_vol *volume_info; if (!volume_info)
if (!pvolume_info || !*pvolume_info)
return; return;
volume_info = *pvolume_info;
kfree(volume_info->username); kfree(volume_info->username);
kzfree(volume_info->password); kzfree(volume_info->password);
kfree(volume_info->UNC); kfree(volume_info->UNC);
@ -2847,7 +2844,6 @@ cifs_cleanup_volume_info(struct smb_vol **pvolume_info)
kfree(volume_info->iocharset); kfree(volume_info->iocharset);
kfree(volume_info->prepath); kfree(volume_info->prepath);
kfree(volume_info); kfree(volume_info);
*pvolume_info = NULL;
return; return;
} }
@ -2990,7 +2986,7 @@ int cifs_setup_volume_info(struct smb_vol **pvolume_info, char *mount_data,
*pvolume_info = volume_info; *pvolume_info = volume_info;
return rc; return rc;
out: out:
cifs_cleanup_volume_info(&volume_info); cifs_cleanup_volume_info(volume_info);
return rc; return rc;
} }