Whamcloud - gitweb
Align the types used by jbd2_journal_bmap and getblk with the kernel
authorTheodore Ts'o <tytso@mit.edu>
Sat, 9 Nov 2019 06:47:24 +0000 (01:47 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 9 Nov 2019 06:55:14 +0000 (01:55 -0500)
This avoids some 32-bit vs 64-bit discrepancies in the function
signatures and the types used by their callers.

This cleans up some sparse warnings in recovery.c.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
debugfs/journal.c
e2fsck/jfs_user.h
e2fsck/journal.c

index c55a6ef..fa72ec5 100644 (file)
@@ -99,7 +99,7 @@ static errcode_t ext2fs_journal_sb_csum_set(journal_t *j,
  * to use the recovery.c file virtually unchanged from the kernel, so we
  * don't have to do much to keep kernel and user recovery in sync.
  */
-int jbd2_journal_bmap(journal_t *journal, blk64_t block,
+int jbd2_journal_bmap(journal_t *journal, unsigned long block,
                      unsigned long long *phys)
 {
 #ifdef USE_INODE_IO
@@ -116,13 +116,15 @@ int jbd2_journal_bmap(journal_t *journal, blk64_t block,
        }
 
        retval = ext2fs_bmap2(inode->i_fs, inode->i_ino,
-                             &inode->i_ext2, NULL, 0, block, 0, &pblk);
+                             &inode->i_ext2, NULL, 0, (blk64_t) block,
+                             0, &pblk);
        *phys = pblk;
        return (int) retval;
 #endif
 }
 
-struct buffer_head *getblk(kdev_t kdev, blk64_t blocknr, int blocksize)
+struct buffer_head *getblk(kdev_t kdev, unsigned long long blocknr,
+                          int blocksize)
 {
        struct buffer_head *bh;
        int bufsize = sizeof(*bh) + kdev->k_fs->blocksize -
@@ -138,7 +140,7 @@ struct buffer_head *getblk(kdev_t kdev, blk64_t blocknr, int blocksize)
                bh_count++;
 #endif
        jfs_debug(4, "getblk for block %llu (%d bytes)(total %d)\n",
-                 (unsigned long long) blocknr, blocksize, bh_count);
+                 blocknr, blocksize, bh_count);
 
        bh->b_fs = kdev->k_fs;
        if (kdev->k_dev == K_DEV_FS)
index 9955578..10baf75 100644 (file)
@@ -187,9 +187,10 @@ _INLINE_ __u32 hash_64(__u64 val, unsigned int bits)
 /*
  * Kernel compatibility functions are defined in journal.c
  */
-int jbd2_journal_bmap(journal_t *journal, blk64_t block,
+int jbd2_journal_bmap(journal_t *journal, unsigned long block,
                      unsigned long long *phys);
-struct buffer_head *getblk(kdev_t ctx, blk64_t blocknr, int blocksize);
+struct buffer_head *getblk(kdev_t ctx, unsigned long long blocknr,
+                          int blocksize);
 int sync_blockdev(kdev_t kdev);
 void ll_rw_block(int rw, int op_flags, int nr, struct buffer_head *bh[]);
 void mark_buffer_dirty(struct buffer_head *bh);
index 9a0ced5..7d9f1b4 100644 (file)
@@ -94,7 +94,7 @@ static errcode_t e2fsck_journal_sb_csum_set(journal_t *j,
  * to use the recovery.c file virtually unchanged from the kernel, so we
  * don't have to do much to keep kernel and user recovery in sync.
  */
-int jbd2_journal_bmap(journal_t *journal, blk64_t block,
+int jbd2_journal_bmap(journal_t *journal, unsigned long block,
                      unsigned long long *phys)
 {
 #ifdef USE_INODE_IO
@@ -111,13 +111,15 @@ int jbd2_journal_bmap(journal_t *journal, blk64_t block,
        }
 
        retval= ext2fs_bmap2(inode->i_ctx->fs, inode->i_ino,
-                            &inode->i_ext2, NULL, 0, block, 0, &pblk);
+                            &inode->i_ext2, NULL, 0, (blk64_t) block,
+                            0, &pblk);
        *phys = pblk;
        return -1 * ((int) retval);
 #endif
 }
 
-struct buffer_head *getblk(kdev_t kdev, blk64_t blocknr, int blocksize)
+struct buffer_head *getblk(kdev_t kdev, unsigned long long blocknr,
+                          int blocksize)
 {
        struct buffer_head *bh;
        int bufsize = sizeof(*bh) + kdev->k_ctx->fs->blocksize -
@@ -132,7 +134,7 @@ struct buffer_head *getblk(kdev_t kdev, blk64_t blocknr, int blocksize)
                bh_count++;
 #endif
        jfs_debug(4, "getblk for block %llu (%d bytes)(total %d)\n",
-                 (unsigned long long) blocknr, blocksize, bh_count);
+                 blocknr, blocksize, bh_count);
 
        bh->b_ctx = kdev->k_ctx;
        if (kdev->k_dev == K_DEV_FS)