From 800f4125e5d487304289da67b1477bc1c2319955baff9b4b67d2602163844637 Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Mon, 14 Jul 2014 13:56:04 +0000 Subject: [PATCH] Accepting request 240012 from home:k0da:ppc OBS-URL: https://build.opensuse.org/request/show/240012 OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=97 --- grub2-xfs-V5-filesystem-format-support.patch | 47 +++++++++----------- grub2.changes | 6 +++ 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/grub2-xfs-V5-filesystem-format-support.patch b/grub2-xfs-V5-filesystem-format-support.patch index 6359d64..1240720 100644 --- a/grub2-xfs-V5-filesystem-format-support.patch +++ b/grub2-xfs-V5-filesystem-format-support.patch @@ -8,10 +8,10 @@ Signed-off-by: Jan Kara grub-core/fs/xfs.c | 245 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 173 insertions(+), 72 deletions(-) -diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c -index 7e247a32df5c..3b1d8994067f 100644 ---- a/grub-core/fs/xfs.c -+++ b/grub-core/fs/xfs.c +Index: grub-2.02~beta2/grub-core/fs/xfs.c +=================================================================== +--- grub-2.02~beta2.orig/grub-core/fs/xfs.c ++++ grub-2.02~beta2/grub-core/fs/xfs.c @@ -34,6 +34,15 @@ GRUB_MOD_LICENSE ("GPLv3+"); #define XFS_INODE_FORMAT_EXT 2 #define XFS_INODE_FORMAT_BTREE 3 @@ -140,7 +140,7 @@ index 7e247a32df5c..3b1d8994067f 100644 /* Filetype information as used in inodes. */ #define FILETYPE_INO_MASK 0170000 #define FILETYPE_INO_REG 0100000 -@@ -219,18 +249,6 @@ GRUB_XFS_EXTENT_SIZE (grub_xfs_extent *exts, int ex) +@@ -219,18 +249,6 @@ GRUB_XFS_EXTENT_SIZE (grub_xfs_extent *e return (grub_be_to_cpu32 (exts[ex][3]) & ((1 << 21) - 1)); } @@ -159,7 +159,7 @@ index 7e247a32df5c..3b1d8994067f 100644 static inline grub_uint64_t grub_xfs_inode_block (struct grub_xfs_data *data, -@@ -261,6 +279,92 @@ grub_xfs_inode_size(struct grub_xfs_data *data) +@@ -261,6 +279,92 @@ grub_xfs_inode_size(struct grub_xfs_data return 1 << data->sblock.log2_inode; } @@ -200,7 +200,7 @@ index 7e247a32df5c..3b1d8994067f 100644 + p += head->largeino ? sizeof(grub_uint64_t) : sizeof(grub_uint32_t); + if (data->hasftype) + p++; -+ ++ + return (struct grub_xfs_dir_entry *)p; +} + @@ -246,13 +246,13 @@ index 7e247a32df5c..3b1d8994067f 100644 + + if (data->hascrc) + p += 48; /* crc, uuid, ... */ -+ return (grub_uint64_t *)p; ++ return (grub_uint64_t *)(void*)p; +} + static grub_err_t grub_xfs_read_inode (struct grub_xfs_data *data, grub_uint64_t ino, struct grub_xfs_inode *inode) -@@ -268,6 +372,9 @@ grub_xfs_read_inode (struct grub_xfs_data *data, grub_uint64_t ino, +@@ -268,6 +372,9 @@ grub_xfs_read_inode (struct grub_xfs_dat grub_uint64_t block = grub_xfs_inode_block (data, ino); int offset = grub_xfs_inode_offset (data, ino); @@ -262,7 +262,7 @@ index 7e247a32df5c..3b1d8994067f 100644 /* Read the inode. */ if (grub_disk_read (data->disk, block, offset, grub_xfs_inode_size(data), inode)) -@@ -290,6 +397,7 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) +@@ -290,6 +397,7 @@ grub_xfs_read_block (grub_fshelp_node_t if (node->inode.format == XFS_INODE_FORMAT_BTREE) { @@ -270,7 +270,7 @@ index 7e247a32df5c..3b1d8994067f 100644 const grub_uint64_t *keys; int recoffset; -@@ -297,15 +405,15 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) +@@ -297,15 +405,15 @@ grub_xfs_read_block (grub_fshelp_node_t if (leaf == 0) return 0; @@ -291,7 +291,7 @@ index 7e247a32df5c..3b1d8994067f 100644 do { int i; -@@ -327,7 +435,10 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) +@@ -327,7 +435,10 @@ grub_xfs_read_block (grub_fshelp_node_t 0, node->data->bsize, leaf)) return 0; @@ -303,7 +303,7 @@ index 7e247a32df5c..3b1d8994067f 100644 { grub_free (leaf); grub_error (GRUB_ERR_BAD_FS, "not a correct XFS BMAP node"); -@@ -335,8 +446,8 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) +@@ -335,8 +446,8 @@ grub_xfs_read_block (grub_fshelp_node_t } nrec = grub_be_to_cpu16 (leaf->numrecs); @@ -314,7 +314,7 @@ index 7e247a32df5c..3b1d8994067f 100644 - (char *) leaf)) / (2 * sizeof (grub_uint64_t))); } -@@ -346,7 +457,7 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) +@@ -346,7 +457,7 @@ grub_xfs_read_block (grub_fshelp_node_t else if (node->inode.format == XFS_INODE_FORMAT_EXT) { nrec = grub_be_to_cpu32 (node->inode.nextents); @@ -323,7 +323,7 @@ index 7e247a32df5c..3b1d8994067f 100644 } else { -@@ -404,7 +515,7 @@ grub_xfs_read_symlink (grub_fshelp_node_t node) +@@ -404,7 +515,7 @@ grub_xfs_read_symlink (grub_fshelp_node_ switch (node->inode.format) { case XFS_INODE_FORMAT_INO: @@ -332,7 +332,7 @@ index 7e247a32df5c..3b1d8994067f 100644 case XFS_INODE_FORMAT_EXT: { -@@ -501,23 +612,18 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir, +@@ -501,23 +612,18 @@ grub_xfs_iterate_dir (grub_fshelp_node_t { case XFS_INODE_FORMAT_INO: { @@ -361,7 +361,7 @@ index 7e247a32df5c..3b1d8994067f 100644 /* Synthesize the direntries for `.' and `..'. */ if (iterate_dir_call_hook (diro->ino, ".", &ctx)) -@@ -526,12 +632,10 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir, +@@ -526,12 +632,10 @@ grub_xfs_iterate_dir (grub_fshelp_node_t if (iterate_dir_call_hook (parent, "..", &ctx)) return 1; @@ -376,7 +376,7 @@ index 7e247a32df5c..3b1d8994067f 100644 grub_uint8_t c; /* inopos might be unaligned. */ -@@ -556,10 +660,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir, +@@ -556,10 +660,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t return 1; de->name[de->len] = c; @@ -388,7 +388,7 @@ index 7e247a32df5c..3b1d8994067f 100644 } break; } -@@ -586,15 +687,11 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir, +@@ -586,15 +687,11 @@ grub_xfs_iterate_dir (grub_fshelp_node_t >> dirblk_log2); blk++) { @@ -408,7 +408,7 @@ index 7e247a32df5c..3b1d8994067f 100644 numread = grub_xfs_read_file (dir, 0, 0, blk << dirblk_log2, -@@ -606,13 +703,11 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir, +@@ -606,13 +703,11 @@ grub_xfs_iterate_dir (grub_fshelp_node_t - grub_be_to_cpu32 (tail->leaf_stale)); /* Iterate over all entries within this block. */ @@ -423,7 +423,7 @@ index 7e247a32df5c..3b1d8994067f 100644 freetag = (grub_uint8_t *) direntry; if (grub_get_unaligned16 (freetag) == 0XFFFF) -@@ -620,14 +715,16 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir, +@@ -620,14 +715,16 @@ grub_xfs_iterate_dir (grub_fshelp_node_t grub_uint8_t *skip = (freetag + sizeof (grub_uint16_t)); /* This entry is not used, go to the next one. */ @@ -444,7 +444,7 @@ index 7e247a32df5c..3b1d8994067f 100644 filename[direntry->len] = '\0'; if (iterate_dir_call_hook (grub_be_to_cpu64(direntry->inode), -@@ -644,8 +741,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir, +@@ -644,8 +741,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t break; /* Select the next directory entry. */ @@ -476,6 +476,3 @@ index 7e247a32df5c..3b1d8994067f 100644 grub_xfs_read_inode (data, data->diropen.ino, &data->diropen.inode); --- -1.8.1.4 - diff --git a/grub2.changes b/grub2.changes index d38c5fb..87d3a84 100644 --- a/grub2.changes +++ b/grub2.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jul 9 16:26:35 UTC 2014 - dvlaeev@suse.com + +- Fix ppc64le build by fixing + grub2-xfs-V5-filesystem-format-support.patch + ------------------------------------------------------------------- Wed Jun 25 09:20:16 UTC 2014 - jack@suse.cz