get rid of open-coded grab_super() in get_active_super()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
79d7e39ee1
Коммит
389b8be6ef
19
fs/super.c
19
fs/super.c
|
@ -487,22 +487,9 @@ struct super_block *get_active_super(struct block_device *bdev)
|
|||
if (sb->s_bdev != bdev)
|
||||
continue;
|
||||
|
||||
sb->s_count++;
|
||||
spin_unlock(&sb_lock);
|
||||
down_write(&sb->s_umount);
|
||||
if (sb->s_root) {
|
||||
spin_lock(&sb_lock);
|
||||
if (sb->s_count > S_BIAS) {
|
||||
atomic_inc(&sb->s_active);
|
||||
sb->s_count--;
|
||||
spin_unlock(&sb_lock);
|
||||
return sb;
|
||||
}
|
||||
spin_unlock(&sb_lock);
|
||||
}
|
||||
up_write(&sb->s_umount);
|
||||
put_super(sb);
|
||||
yield();
|
||||
if (grab_super(sb)) /* drops sb_lock */
|
||||
return sb;
|
||||
|
||||
spin_lock(&sb_lock);
|
||||
}
|
||||
spin_unlock(&sb_lock);
|
||||
|
|
Загрузка…
Ссылка в новой задаче