diff options
| -rw-r--r-- | fs/jfs/super.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/jfs/super.c b/fs/jfs/super.c index 157382fa6256..b66832ac33ac 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c | |||
| @@ -446,10 +446,8 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent) | |||
| 446 | /* initialize the mount flag and determine the default error handler */ | 446 | /* initialize the mount flag and determine the default error handler */ |
| 447 | flag = JFS_ERR_REMOUNT_RO; | 447 | flag = JFS_ERR_REMOUNT_RO; |
| 448 | 448 | ||
| 449 | if (!parse_options((char *) data, sb, &newLVSize, &flag)) { | 449 | if (!parse_options((char *) data, sb, &newLVSize, &flag)) |
| 450 | kfree(sbi); | 450 | goto out_kfree; |
| 451 | return -EINVAL; | ||
| 452 | } | ||
| 453 | sbi->flag = flag; | 451 | sbi->flag = flag; |
| 454 | 452 | ||
| 455 | #ifdef CONFIG_JFS_POSIX_ACL | 453 | #ifdef CONFIG_JFS_POSIX_ACL |
| @@ -458,7 +456,7 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent) | |||
| 458 | 456 | ||
| 459 | if (newLVSize) { | 457 | if (newLVSize) { |
| 460 | printk(KERN_ERR "resize option for remount only\n"); | 458 | printk(KERN_ERR "resize option for remount only\n"); |
| 461 | return -EINVAL; | 459 | goto out_kfree; |
| 462 | } | 460 | } |
| 463 | 461 | ||
| 464 | /* | 462 | /* |
| @@ -478,7 +476,7 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent) | |||
| 478 | inode = new_inode(sb); | 476 | inode = new_inode(sb); |
| 479 | if (inode == NULL) { | 477 | if (inode == NULL) { |
| 480 | ret = -ENOMEM; | 478 | ret = -ENOMEM; |
| 481 | goto out_kfree; | 479 | goto out_unload; |
| 482 | } | 480 | } |
| 483 | inode->i_ino = 0; | 481 | inode->i_ino = 0; |
| 484 | inode->i_nlink = 1; | 482 | inode->i_nlink = 1; |
| @@ -550,9 +548,10 @@ out_mount_failed: | |||
| 550 | make_bad_inode(sbi->direct_inode); | 548 | make_bad_inode(sbi->direct_inode); |
| 551 | iput(sbi->direct_inode); | 549 | iput(sbi->direct_inode); |
| 552 | sbi->direct_inode = NULL; | 550 | sbi->direct_inode = NULL; |
| 553 | out_kfree: | 551 | out_unload: |
| 554 | if (sbi->nls_tab) | 552 | if (sbi->nls_tab) |
| 555 | unload_nls(sbi->nls_tab); | 553 | unload_nls(sbi->nls_tab); |
| 554 | out_kfree: | ||
| 556 | kfree(sbi); | 555 | kfree(sbi); |
| 557 | return ret; | 556 | return ret; |
| 558 | } | 557 | } |
