From d00c9550da1801a0eaff5cedf4312e24691b31ea Mon Sep 17 00:00:00 2001 From: Dimitri John Ledkov Date: Tue, 8 May 2018 14:17:29 -0700 Subject: New upstream release. --- disk-io.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'disk-io.c') diff --git a/disk-io.c b/disk-io.c index 76958aef..72d44531 100644 --- a/disk-io.c +++ b/disk-io.c @@ -184,8 +184,7 @@ struct extent_buffer *btrfs_find_tree_block(struct btrfs_fs_info *fs_info, struct extent_buffer* btrfs_find_create_tree_block( struct btrfs_fs_info *fs_info, u64 bytenr) { - return alloc_extent_buffer(&fs_info->extent_cache, bytenr, - fs_info->nodesize); + return alloc_extent_buffer(fs_info, bytenr, fs_info->nodesize); } void readahead_tree_block(struct btrfs_fs_info *fs_info, u64 bytenr, @@ -396,10 +395,12 @@ int read_extent_data(struct btrfs_fs_info *fs_info, char *data, u64 logical, } device = multi->stripes[0].dev; - if (device->fd <= 0) - goto err; if (*len > max_len) *len = max_len; + if (device->fd < 0) { + ret = -EIO; + goto err; + } ret = pread64(device->fd, data, *len, multi->stripes[0].physical); if (ret != *len) @@ -1115,14 +1116,14 @@ static struct btrfs_fs_info *__open_ctree_fd(int fp, const char *path, fs_info->ignore_chunk_tree_error = 1; if ((flags & OPEN_CTREE_RECOVER_SUPER) - && (flags & OPEN_CTREE_FS_PARTIAL)) { + && (flags & OPEN_CTREE_TEMPORARY_SUPER)) { fprintf(stderr, - "cannot open a partially created filesystem for recovery"); + "cannot open a filesystem with temporary super block for recovery"); goto out; } - if (flags & OPEN_CTREE_FS_PARTIAL) - sbflags = SBREAD_PARTIAL; + if (flags & OPEN_CTREE_TEMPORARY_SUPER) + sbflags = SBREAD_TEMPORARY; ret = btrfs_scan_fs_devices(fp, path, &fs_devices, sb_bytenr, sbflags, (flags & OPEN_CTREE_NO_DEVICES)); @@ -1283,8 +1284,8 @@ static int check_super(struct btrfs_super_block *sb, unsigned sbflags) int csum_size; if (btrfs_super_magic(sb) != BTRFS_MAGIC) { - if (btrfs_super_magic(sb) == BTRFS_MAGIC_PARTIAL) { - if (!(sbflags & SBREAD_PARTIAL)) { + if (btrfs_super_magic(sb) == BTRFS_MAGIC_TEMPORARY) { + if (!(sbflags & SBREAD_TEMPORARY)) { error("superblock magic doesn't match"); return -EIO; } -- cgit v1.2.3