lkml.org 
[lkml]   [2003]   [Jan]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH] 2.5 ext3 ino_t removal
    On Jan 05, 2003  21:33 -0700, Andreas Dilger wrote:
    > This patch against 2.5.53 removes my erronous use of ino_t in a
    > couple of places in the ext3 code. This has been replaced with unsigned
    > long (the same as is used for inode->i_ino). This patch matches the fix
    > submitted to 2.4 for fixing 64-bit compiler warnings, and also replaces a
    > couple of %ld with %lu to forestall output wierdness with filesystems with
    > a few billion inodes.

    Sorry - I sent the 2.4 version in the previous patch. This is the 2.5
    version.

    Cheers, Andreas
    ======================= ext3-2.5-ino_t.diff ===============================
    --- 1.24/fs/ext3/ialloc.c Sat Dec 21 09:24:41 2002
    +++ edited/fs/ext3/ialloc.c Sat Jan 4 12:49:23 2003
    @@ -417,7 +417,7 @@
    struct buffer_head *bitmap_bh = NULL;
    struct buffer_head *bh2;
    int group;
    - ino_t ino;
    + unsigned long ino;
    struct inode * inode;
    struct ext3_group_desc * gdp;
    struct ext3_super_block * es;
    @@ -463,7 +463,7 @@
    BUFFER_TRACE(bitmap_bh, "get_write_access");
    err = ext3_journal_get_write_access(handle, bitmap_bh);
    if (err) goto fail;
    -
    +
    if (ext3_set_bit(ino, bitmap_bh->b_data)) {
    ext3_error (sb, "ext3_new_inode",
    "bit already set for inode %lu", ino);
    @@ -619,19 +619,18 @@
    }

    /* Verify that we are loading a valid orphan from disk */
    -struct inode *ext3_orphan_get (struct super_block * sb, ino_t ino)
    +struct inode *ext3_orphan_get(struct super_block *sb, unsigned long ino)
    {
    - ino_t max_ino = le32_to_cpu(EXT3_SB(sb)->s_es->s_inodes_count);
    + unsigned long max_ino = le32_to_cpu(EXT3_SB(sb)->s_es->s_inodes_count);
    unsigned long block_group;
    int bit;
    struct buffer_head *bitmap_bh = NULL;
    struct inode *inode = NULL;
    -
    +
    /* Error cases - e2fsck has already cleaned up for us */
    if (ino > max_ino) {
    ext3_warning(sb, __FUNCTION__,
    - "bad orphan ino %lu! e2fsck was run?\n",
    - (unsigned long) ino);
    + "bad orphan ino %lu! e2fsck was run?\n", ino);
    goto out;
    }

    @@ -640,8 +639,7 @@
    bitmap_bh = read_inode_bitmap(sb, block_group);
    if (!bitmap_bh) {
    ext3_warning(sb, __FUNCTION__,
    - "inode bitmap error for orphan %lu\n",
    - (unsigned long) ino);
    + "inode bitmap error for orphan %lu\n", ino);
    goto out;
    }

    @@ -653,19 +651,17 @@
    !(inode = iget(sb, ino)) || is_bad_inode(inode) ||
    NEXT_ORPHAN(inode) > max_ino) {
    ext3_warning(sb, __FUNCTION__,
    - "bad orphan inode %lu! e2fsck was run?\n", (unsigned long)ino);
    + "bad orphan inode %lu! e2fsck was run?\n", ino);
    printk(KERN_NOTICE "ext3_test_bit(bit=%d, block=%llu) = %d\n",
    - bit,
    - (unsigned long long)bitmap_bh->b_blocknr,
    - ext3_test_bit(bit, bitmap_bh->b_data));
    + bit, (unsigned long long)bitmap_bh->b_blocknr,
    + ext3_test_bit(bit, bitmap_bh->b_data));
    printk(KERN_NOTICE "inode=%p\n", inode);
    if (inode) {
    printk(KERN_NOTICE "is_bad_inode(inode)=%d\n",
    is_bad_inode(inode));
    - printk(KERN_NOTICE "NEXT_ORPHAN(inode)=%d\n",
    + printk(KERN_NOTICE "NEXT_ORPHAN(inode)=%u\n",
    NEXT_ORPHAN(inode));
    - printk(KERN_NOTICE "max_ino=%lu\n",
    - (unsigned long) max_ino);
    + printk(KERN_NOTICE "max_ino=%lu\n", max_ino);
    }
    /* Avoid freeing blocks if we got a bad deleted inode */
    if (inode && inode->i_nlink == 0)
    --- 1.32/fs/ext3/namei.c Sat Dec 21 09:24:44 2002
    +++ edited/fs/ext3/namei.c Sat Jan 4 12:53:06 2003
    @@ -1869,10 +1869,10 @@
    struct list_head *prev;
    struct ext3_inode_info *ei = EXT3_I(inode);
    struct ext3_sb_info *sbi;
    - ino_t ino_next;
    + unsigned long ino_next;
    struct ext3_iloc iloc;
    int err = 0;
    -
    +
    lock_super(inode->i_sb);
    if (list_empty(&ei->i_orphan)) {
    unlock_super(inode->i_sb);
    @@ -1883,7 +1883,7 @@
    prev = ei->i_orphan.prev;
    sbi = EXT3_SB(inode->i_sb);

    - jbd_debug(4, "remove inode %ld from orphan list\n", inode->i_ino);
    + jbd_debug(4, "remove inode %lu from orphan list\n", inode->i_ino);

    list_del_init(&ei->i_orphan);

    @@ -1893,13 +1893,13 @@
    * list in memory. */
    if (!handle)
    goto out;
    -
    +
    err = ext3_reserve_inode_write(handle, inode, &iloc);
    if (err)
    goto out_err;

    if (prev == &sbi->s_orphan) {
    - jbd_debug(4, "superblock will point to %ld\n", ino_next);
    + jbd_debug(4, "superblock will point to %lu\n", ino_next);
    BUFFER_TRACE(sbi->s_sbh, "get_write_access");
    err = ext3_journal_get_write_access(handle, sbi->s_sbh);
    if (err)
    @@ -1910,8 +1910,8 @@
    struct ext3_iloc iloc2;
    struct inode *i_prev =
    &list_entry(prev, struct ext3_inode_info, i_orphan)->vfs_inode;
    -
    - jbd_debug(4, "orphan inode %ld will point to %ld\n",
    +
    + jbd_debug(4, "orphan inode %lu will point to %lu\n",
    i_prev->i_ino, ino_next);
    err = ext3_reserve_inode_write(handle, i_prev, &iloc2);
    if (err)
    @@ -1926,7 +1926,7 @@
    if (err)
    goto out_brelse;

    -out_err:
    +out_err:
    ext3_std_error(inode->i_sb, err);
    out:
    unlock_super(inode->i_sb);
    --- 1.20/include/linux/ext3_fs.h Sun Nov 17 12:00:57 2002
    +++ edited/include/linux/ext3_fs.h Sat Jan 4 12:45:16 2003
    @@ -704,7 +704,7 @@
    /* ialloc.c */
    extern struct inode * ext3_new_inode (handle_t *, struct inode *, int);
    extern void ext3_free_inode (handle_t *, struct inode *);
    -extern struct inode * ext3_orphan_get (struct super_block *, ino_t);
    +extern struct inode * ext3_orphan_get (struct super_block *, unsigned long);
    extern unsigned long ext3_count_free_inodes (struct super_block *);
    extern unsigned long ext3_count_dirs (struct super_block *);
    extern void ext3_check_inodes_bitmap (struct super_block *);
    --
    Andreas Dilger
    http://sourceforge.net/projects/ext2resize/
    http://www-mddsp.enel.ucalgary.ca/People/adilger/

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:32    [W:0.030 / U:0.028 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site