diff options
Diffstat (limited to 'fs/autofs/inode.c')
-rw-r--r-- | fs/autofs/inode.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/autofs/inode.c b/fs/autofs/inode.c index 38ede5c9d6fd..f968d1342808 100644 --- a/fs/autofs/inode.c +++ b/fs/autofs/inode.c | |||
@@ -28,10 +28,11 @@ void autofs_kill_sb(struct super_block *sb) | |||
28 | /* | 28 | /* |
29 | * In the event of a failure in get_sb_nodev the superblock | 29 | * In the event of a failure in get_sb_nodev the superblock |
30 | * info is not present so nothing else has been setup, so | 30 | * info is not present so nothing else has been setup, so |
31 | * just exit when we are called from deactivate_super. | 31 | * just call kill_anon_super when we are called from |
32 | * deactivate_super. | ||
32 | */ | 33 | */ |
33 | if (!sbi) | 34 | if (!sbi) |
34 | return; | 35 | goto out_kill_sb; |
35 | 36 | ||
36 | if ( !sbi->catatonic ) | 37 | if ( !sbi->catatonic ) |
37 | autofs_catatonic_mode(sbi); /* Free wait queues, close pipe */ | 38 | autofs_catatonic_mode(sbi); /* Free wait queues, close pipe */ |
@@ -44,6 +45,7 @@ void autofs_kill_sb(struct super_block *sb) | |||
44 | 45 | ||
45 | kfree(sb->s_fs_info); | 46 | kfree(sb->s_fs_info); |
46 | 47 | ||
48 | out_kill_sb: | ||
47 | DPRINTK(("autofs: shutting down\n")); | 49 | DPRINTK(("autofs: shutting down\n")); |
48 | kill_anon_super(sb); | 50 | kill_anon_super(sb); |
49 | } | 51 | } |
@@ -209,7 +211,6 @@ fail_iput: | |||
209 | fail_free: | 211 | fail_free: |
210 | kfree(sbi); | 212 | kfree(sbi); |
211 | s->s_fs_info = NULL; | 213 | s->s_fs_info = NULL; |
212 | kill_anon_super(s); | ||
213 | fail_unlock: | 214 | fail_unlock: |
214 | return -EINVAL; | 215 | return -EINVAL; |
215 | } | 216 | } |