]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/fs/jfs.c (grub_jfs_blkno): Use more appropriate types.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 24 Oct 2011 15:02:02 +0000 (17:02 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 24 Oct 2011 15:02:02 +0000 (17:02 +0200)
(grub_jfs_blkno): Fix incorrect shift.
(grub_jfs_read_file): Use more appropriate types.

ChangeLog
grub-core/fs/jfs.c

index 12117d6a016ad31099ae090603f59d5914ec5cf5..7d216e1d796e5c1d69a7289b109629df12b90ef1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-10-24  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/fs/jfs.c (grub_jfs_blkno): Use more appropriate types.
+       (grub_jfs_blkno): Fix incorrect shift.
+       (grub_jfs_read_file): Use more appropriate types.
+
 2011-10-24  Vladimir Serbinenko  <phcoder@gmail.com>
 
        Support triple indirect on minix2 and minix3.
index ebc2c688ae6c5cf9717c6f5fdc3c06ab751af8db..4a7bb021450726a9590d79bcf1dcc0d2ce74ff6b 100644 (file)
@@ -253,11 +253,11 @@ static grub_int64_t
 grub_jfs_blkno (struct grub_jfs_data *data, struct grub_jfs_inode *inode,
                grub_uint64_t blk)
 {
-  auto int getblk (struct grub_jfs_treehead *treehead,
-                  struct grub_jfs_tree_extent *extents);
+  auto grub_int64_t getblk (struct grub_jfs_treehead *treehead,
+                           struct grub_jfs_tree_extent *extents);
 
-  int getblk (struct grub_jfs_treehead *treehead,
-             struct grub_jfs_tree_extent *extents)
+  grub_int64_t getblk (struct grub_jfs_treehead *treehead,
+                      struct grub_jfs_tree_extent *extents)
     {
       int found = -1;
       int i;
@@ -269,7 +269,7 @@ grub_jfs_blkno (struct grub_jfs_data *data, struct grub_jfs_inode *inode,
              /* Read the leafnode.  */
              if (grub_le_to_cpu32 (extents[i].offset2) <= blk
                  && ((grub_le_to_cpu16 (extents[i].extent.length))
-                     + (extents[i].extent.length2 << 8)
+                     + (extents[i].extent.length2 << 16)
                      + grub_le_to_cpu32 (extents[i].offset2)) > blk)
                return (blk - grub_le_to_cpu32 (extents[i].offset2)
                        + grub_le_to_cpu32 (extents[i].extent.blk2));
@@ -288,7 +288,7 @@ grub_jfs_blkno (struct grub_jfs_data *data, struct grub_jfs_inode *inode,
          } tree;
 
          if (grub_disk_read (data->disk,
-                             grub_le_to_cpu32 (extents[found].extent.blk2)
+                             ((grub_disk_addr_t) grub_le_to_cpu32 (extents[found].extent.blk2))
                              << (grub_le_to_cpu16 (data->sblock.log2_blksz)
                                  - GRUB_DISK_SECTOR_BITS), 0,
                              sizeof (tree), (char *) &tree))
@@ -558,10 +558,10 @@ static grub_ssize_t
 grub_jfs_read_file (struct grub_jfs_data *data,
                    void NESTED_FUNC_ATTR (*read_hook) (grub_disk_addr_t sector,
                                       unsigned offset, unsigned length),
-                   grub_uint64_t pos, grub_size_t len, char *buf)
+                   grub_off_t pos, grub_size_t len, char *buf)
 {
-  grub_uint64_t i;
-  grub_uint64_t blockcnt;
+  grub_off_t i;
+  grub_off_t blockcnt;
 
   blockcnt = (len + pos + grub_le_to_cpu32 (data->sblock.blksz) - 1)
     >> grub_le_to_cpu16 (data->sblock.log2_blksz);