소스 검색

btrfs: make open_ctree() return int

It returns either ERR_PTR(-ve) or sb->s_fs_info.  The latter can
be found by caller just as well, TYVM, no need to return it.  Just
return -ve or 0...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 13 년 전
부모
커밋
ad2b2c802b
3개의 변경된 파일13개의 추가작업 그리고 13개의 파일을 삭제
  1. 6 6
      fs/btrfs/disk-io.c
  2. 3 3
      fs/btrfs/disk-io.h
  3. 4 4
      fs/btrfs/super.c

+ 6 - 6
fs/btrfs/disk-io.c

@@ -1880,9 +1880,9 @@ static void free_root_pointers(struct btrfs_fs_info *info, int chunk_root)
 }
 }
 
 
 
 
-struct btrfs_root *open_ctree(struct super_block *sb,
-			      struct btrfs_fs_devices *fs_devices,
-			      char *options)
+int open_ctree(struct super_block *sb,
+	       struct btrfs_fs_devices *fs_devices,
+	       char *options)
 {
 {
 	u32 sectorsize;
 	u32 sectorsize;
 	u32 nodesize;
 	u32 nodesize;
@@ -2428,11 +2428,11 @@ retry_root_backup:
 		if (err) {
 		if (err) {
 			close_ctree(tree_root);
 			close_ctree(tree_root);
 			free_fs_info(fs_info);
 			free_fs_info(fs_info);
-			return ERR_PTR(err);
+			return err;
 		}
 		}
 	}
 	}
 
 
-	return tree_root;
+	return 0;
 
 
 fail_trans_kthread:
 fail_trans_kthread:
 	kthread_stop(fs_info->transaction_kthread);
 	kthread_stop(fs_info->transaction_kthread);
@@ -2479,7 +2479,7 @@ fail_srcu:
 fail:
 fail:
 	btrfs_close_devices(fs_info->fs_devices);
 	btrfs_close_devices(fs_info->fs_devices);
 	free_fs_info(fs_info);
 	free_fs_info(fs_info);
-	return ERR_PTR(err);
+	return err;
 
 
 recovery_tree_root:
 recovery_tree_root:
 	if (!btrfs_test_opt(tree_root, RECOVERY))
 	if (!btrfs_test_opt(tree_root, RECOVERY))

+ 3 - 3
fs/btrfs/disk-io.h

@@ -46,9 +46,9 @@ struct extent_buffer *btrfs_find_create_tree_block(struct btrfs_root *root,
 						   u64 bytenr, u32 blocksize);
 						   u64 bytenr, u32 blocksize);
 int clean_tree_block(struct btrfs_trans_handle *trans,
 int clean_tree_block(struct btrfs_trans_handle *trans,
 		     struct btrfs_root *root, struct extent_buffer *buf);
 		     struct btrfs_root *root, struct extent_buffer *buf);
-struct btrfs_root *open_ctree(struct super_block *sb,
-			      struct btrfs_fs_devices *fs_devices,
-			      char *options);
+int open_ctree(struct super_block *sb,
+	       struct btrfs_fs_devices *fs_devices,
+	       char *options);
 int close_ctree(struct btrfs_root *root);
 int close_ctree(struct btrfs_root *root);
 int write_ctree_super(struct btrfs_trans_handle *trans,
 int write_ctree_super(struct btrfs_trans_handle *trans,
 		      struct btrfs_root *root, int max_mirrors);
 		      struct btrfs_root *root, int max_mirrors);

+ 4 - 4
fs/btrfs/super.c

@@ -604,12 +604,12 @@ static int btrfs_fill_super(struct super_block *sb,
 	sb->s_flags |= MS_POSIXACL;
 	sb->s_flags |= MS_POSIXACL;
 #endif
 #endif
 
 
-	tree_root = open_ctree(sb, fs_devices, (char *)data);
-
-	if (IS_ERR(tree_root)) {
+	err = open_ctree(sb, fs_devices, (char *)data);
+	if (err) {
 		printk("btrfs: open_ctree failed\n");
 		printk("btrfs: open_ctree failed\n");
-		return PTR_ERR(tree_root);
+		return err;
 	}
 	}
+	tree_root = sb->s_fs_info;
 	fs_info = tree_root->fs_info;
 	fs_info = tree_root->fs_info;
 	sb->s_fs_info = tree_root;
 	sb->s_fs_info = tree_root;