lkml.org 
[lkml]   [2011]   [Sep]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: Kernel 3.1.0-rc4 oops when connecting iPod
    Does this patch fix your issues with large block sizes?


    Index: linux-2.6/fs/hfsplus/super.c
    ===================================================================
    --- linux-2.6.orig/fs/hfsplus/super.c 2011-09-12 09:56:58.619988416 -0400
    +++ linux-2.6/fs/hfsplus/super.c 2011-09-12 10:07:18.006651395 -0400
    @@ -344,6 +344,7 @@ static int hfsplus_fill_super(struct sup
    struct inode *root, *inode;
    struct qstr str;
    struct nls_table *nls = NULL;
    + u64 last_fs_block, last_fs_page;
    int err;

    err = -EINVAL;
    @@ -399,9 +400,13 @@ static int hfsplus_fill_super(struct sup
    if (!sbi->rsrc_clump_blocks)
    sbi->rsrc_clump_blocks = 1;

    - err = generic_check_addressable(sbi->alloc_blksz_shift,
    - sbi->total_blocks);
    - if (err) {
    + err = -EFBIG;
    + last_fs_block = sbi->total_blocks - 1;
    + last_fs_page = (last_fs_block >> sbi->alloc_blksz_shift) <<
    + PAGE_CACHE_SHIFT;
    +
    + if ((last_fs_block > (sector_t)(~0ULL) >> (sbi->alloc_blksz_shift - 9)) ||
    + (last_fs_page > (pgoff_t)(~0ULL))) {
    printk(KERN_ERR "hfs: filesystem size too large.\n");
    goto out_free_vhdr;
    }

    \
     
     \ /
      Last update: 2011-09-12 16:37    [W:0.023 / U:2.560 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site