fs: Make unload_nls() NULL pointer safe

Most call sites of unload_nls() do:
	if (nls)
		unload_nls(nls);

Check the pointer inside unload_nls() like we do in kfree() and
simplify the call sites.

Signed-off-by: Thomas Gleixner <[email protected]>
Cc: Steve French <[email protected]>
Cc: OGAWA Hirofumi <[email protected]>
Cc: Roman Zippel <[email protected]>
Cc: Dave Kleikamp <[email protected]>
Cc: Petr Vandrovec <[email protected]>
Cc: Anton Altaparmakov <[email protected]>
Signed-off-by: Al Viro <[email protected]>
This commit is contained in:
Thomas Gleixner 2009-08-16 21:05:08 +00:00 • committed by Al Viro
commit 6d729e44a5
12 changed files with 27 additions and 69 deletions

View file

@ -470,19 +470,11 @@ static void fat_put_super(struct super_block *sb)
iput(sbi->fat_inode);
if (sbi->nls_disk) {
unload_nls(sbi->nls_disk);
sbi->nls_disk = NULL;
sbi->options.codepage = fat_default_codepage;
}
if (sbi->nls_io) {
unload_nls(sbi->nls_io);
sbi->nls_io = NULL;
}
if (sbi->options.iocharset != fat_default_iocharset) {
unload_nls(sbi->nls_disk);
unload_nls(sbi->nls_io);
if (sbi->options.iocharset != fat_default_iocharset)
kfree(sbi->options.iocharset);
sbi->options.iocharset = fat_default_iocharset;
}
sb->s_fs_info = NULL;
kfree(sbi);