Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 389b8be6 authored by Al Viro's avatar Al Viro
Browse files

get rid of open-coded grab_super() in get_active_super()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 79d7e39e
Loading
Loading
Loading
Loading
+3 −16
Original line number Diff line number Diff line
@@ -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);
		if (grab_super(sb)) /* drops sb_lock */
			return sb;
			}
			spin_unlock(&sb_lock);
		}
		up_write(&sb->s_umount);
		put_super(sb);
		yield();

		spin_lock(&sb_lock);
	}
	spin_unlock(&sb_lock);