diff options
Diffstat (limited to 'fs/super.c')
-rw-r--r-- | fs/super.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/super.c b/fs/super.c index dba74e718751..61fa181faa43 100644 --- a/fs/super.c +++ b/fs/super.c | |||
@@ -210,7 +210,6 @@ static int grab_super(struct super_block *s) __releases(sb_lock) | |||
210 | { | 210 | { |
211 | if (atomic_inc_not_zero(&s->s_active)) { | 211 | if (atomic_inc_not_zero(&s->s_active)) { |
212 | spin_unlock(&sb_lock); | 212 | spin_unlock(&sb_lock); |
213 | down_write(&s->s_umount); | ||
214 | return 1; | 213 | return 1; |
215 | } | 214 | } |
216 | /* it's going away */ | 215 | /* it's going away */ |
@@ -317,6 +316,7 @@ retry: | |||
317 | up_write(&s->s_umount); | 316 | up_write(&s->s_umount); |
318 | destroy_super(s); | 317 | destroy_super(s); |
319 | } | 318 | } |
319 | down_write(&old->s_umount); | ||
320 | return old; | 320 | return old; |
321 | } | 321 | } |
322 | } | 322 | } |
@@ -466,7 +466,7 @@ EXPORT_SYMBOL(get_super); | |||
466 | * | 466 | * |
467 | * Scans the superblock list and finds the superblock of the file system | 467 | * Scans the superblock list and finds the superblock of the file system |
468 | * mounted on the device given. Returns the superblock with an active | 468 | * mounted on the device given. Returns the superblock with an active |
469 | * reference and s_umount held exclusively or %NULL if none was found. | 469 | * reference or %NULL if none was found. |
470 | */ | 470 | */ |
471 | struct super_block *get_active_super(struct block_device *bdev) | 471 | struct super_block *get_active_super(struct block_device *bdev) |
472 | { | 472 | { |