소스 검색

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

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 15 년 전
부모
커밋
389b8be6ef
1개의 변경된 파일3개의 추가작업 그리고 16개의 파일을 삭제
  1. 3 16
      fs/super.c

+ 3 - 16
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);