Accepting request 346049 from home:dsterba:branches:filesystems
- fix mkfs failure on ppc64 (or with sectorsize > 4k) OBS-URL: https://build.opensuse.org/request/show/346049 OBS-URL: https://build.opensuse.org/package/show/filesystems/btrfsprogs?expand=0&rev=223
This commit is contained in:
parent
060c5a9cca
commit
841295d9e4
@ -0,0 +1,41 @@
|
|||||||
|
From bf1ac8305ab3f191d9345793b88c4f5ec691cb9b Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Sterba <dsterba@suse.com>
|
||||||
|
Date: Thu, 19 Nov 2015 15:55:05 +0100
|
||||||
|
Subject: [PATCH] btrfs-progs: mkfs: use correct size for superblock csum and
|
||||||
|
writeout
|
||||||
|
|
||||||
|
If sectorsize is not BTRFS_SUPER_INFO_SIZE (4k), the superblock checksum
|
||||||
|
is wrong and mkfs fails. This has been reported on ppc64 where we pick
|
||||||
|
sectorisize from page size (64k). This has been broken since ages
|
||||||
|
(2008) and discovered by the recently added superblock checks.
|
||||||
|
|
||||||
|
Reported-by: Dinar Valeev <dvaleev@suse.com>
|
||||||
|
Signed-off-by: David Sterba <dsterba@suse.com>
|
||||||
|
---
|
||||||
|
utils.c | 8 ++++----
|
||||||
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/utils.c b/utils.c
|
||||||
|
index 60235d84889c..13835051a1a5 100644
|
||||||
|
--- a/utils.c
|
||||||
|
+++ b/utils.c
|
||||||
|
@@ -552,12 +552,12 @@ int make_btrfs(int fd, struct btrfs_mkfs_config *cfg)
|
||||||
|
|
||||||
|
/* and write out the super block */
|
||||||
|
BUG_ON(sizeof(super) > cfg->sectorsize);
|
||||||
|
- memset(buf->data, 0, cfg->sectorsize);
|
||||||
|
+ memset(buf->data, 0, BTRFS_SUPER_INFO_SIZE);
|
||||||
|
memcpy(buf->data, &super, sizeof(super));
|
||||||
|
- buf->len = cfg->sectorsize;
|
||||||
|
+ buf->len = BTRFS_SUPER_INFO_SIZE;
|
||||||
|
csum_tree_block_size(buf, BTRFS_CRC32_SIZE, 0);
|
||||||
|
- ret = pwrite(fd, buf->data, cfg->sectorsize, cfg->blocks[0]);
|
||||||
|
- if (ret != cfg->sectorsize) {
|
||||||
|
+ ret = pwrite(fd, buf->data, BTRFS_SUPER_INFO_SIZE, cfg->blocks[0]);
|
||||||
|
+ if (ret != BTRFS_SUPER_INFO_SIZE) {
|
||||||
|
ret = (ret < 0 ? -errno : -EIO);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.6.2
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Nov 24 00:00:00 CET 2015 - dsterba@suse.cz
|
||||||
|
|
||||||
|
- fix mkfs failure on ppc64 (or with sectorsize > 4k)
|
||||||
|
- Added patch: 0001-btrfs-progs-mkfs-use-correct-size-for-superblock-csu.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Nov 16 00:00:00 CET 2015 - dsterba@suse.cz
|
Mon Nov 16 00:00:00 CET 2015 - dsterba@suse.cz
|
||||||
|
|
||||||
|
@ -37,6 +37,8 @@ Source: https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs
|
|||||||
Source1: boot-btrfs.sh
|
Source1: boot-btrfs.sh
|
||||||
Source4: setup-btrfs.sh
|
Source4: setup-btrfs.sh
|
||||||
|
|
||||||
|
Patch1: 0001-btrfs-progs-mkfs-use-correct-size-for-superblock-csu.patch
|
||||||
|
|
||||||
Patch163: 0163-btrfs-progs-fsck-fix-segfault.patch
|
Patch163: 0163-btrfs-progs-fsck-fix-segfault.patch
|
||||||
Patch167: 0167-Btrfs-progs-make-find_and_setup_root-return-an-error.patch
|
Patch167: 0167-Btrfs-progs-make-find_and_setup_root-return-an-error.patch
|
||||||
Patch168: 0168-Btrfs-progs-don-t-bug-out-if-we-can-t-find-the-last-.patch
|
Patch168: 0168-Btrfs-progs-don-t-bug-out-if-we-can-t-find-the-last-.patch
|
||||||
@ -106,6 +108,7 @@ build applications to interface with btrfs.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n btrfs-progs-v%{version}
|
%setup -q -n btrfs-progs-v%{version}
|
||||||
|
%patch1 -p1
|
||||||
%patch163 -p1
|
%patch163 -p1
|
||||||
%patch167 -p1
|
%patch167 -p1
|
||||||
%patch168 -p1
|
%patch168 -p1
|
||||||
|
@ -7,7 +7,7 @@ Index: btrfs-progs-v4.1/version.sh
|
|||||||
# Released under the GNU GPLv2
|
# Released under the GNU GPLv2
|
||||||
|
|
||||||
-v="v4.3.1"
|
-v="v4.3.1"
|
||||||
+v="v4.3+20151116"
|
+v="v4.3.1+20151124"
|
||||||
|
|
||||||
opt=$1
|
opt=$1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user