29 lines
792 B
Diff
29 lines
792 B
Diff
|
hfsplus: Check for NULL volume header
|
||
|
|
||
|
If volume header is null there is not much to do in put_super().
|
||
|
|
||
|
Signed-Off-By: Chuck Ebbert <cebbert@redhat.com>
|
||
|
|
||
|
--- vanilla-2.6.38-rc2-git9.orig/fs/hfsplus/super.c
|
||
|
+++ vanilla-2.6.38-rc2-git9/fs/hfsplus/super.c
|
||
|
@@ -237,7 +237,10 @@ static void hfsplus_put_super(struct sup
|
||
|
if (!sb->s_fs_info)
|
||
|
return;
|
||
|
|
||
|
- if (!(sb->s_flags & MS_RDONLY) && sbi->s_vhdr) {
|
||
|
+ if (!sbi->s_vhdr)
|
||
|
+ goto out_unload_nls;
|
||
|
+
|
||
|
+ if (!(sb->s_flags & MS_RDONLY)) {
|
||
|
struct hfsplus_vh *vhdr = sbi->s_vhdr;
|
||
|
|
||
|
vhdr->modify_date = hfsp_now2mt();
|
||
|
@@ -253,6 +256,7 @@ static void hfsplus_put_super(struct sup
|
||
|
iput(sbi->hidden_dir);
|
||
|
kfree(sbi->s_vhdr);
|
||
|
kfree(sbi->s_backup_vhdr);
|
||
|
+out_unload_nls:
|
||
|
unload_nls(sbi->nls);
|
||
|
kfree(sb->s_fs_info);
|
||
|
sb->s_fs_info = NULL;
|