All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hin-Tak Leung <hintak_leung@yahoo.co.uk>
To: Christoph Hellwig <hch@infradead.org>, Pavel Ivanov <paivanof@gmail.com>
Cc: linux-fsdevel@vger.kernel.org,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Christoph Hellwig <hch@tuxera.com>
Subject: Re: Kernel 3.1.0-rc4 oops when connecting iPod
Date: Mon, 12 Sep 2011 16:57:30 +0100 (BST)	[thread overview]
Message-ID: <1315843050.34041.YahooMailClassic@web29505.mail.ird.yahoo.com> (raw)
In-Reply-To: <CAG1a4rsuYVehnSCM3KxeYQ+g94nrivG1vfss=y8275E4D24qTg@mail.gmail.com>

--- On Mon, 12/9/11, Pavel Ivanov <paivanof@gmail.com> wrote:

> On Mon, Sep 12, 2011 at 10:34 AM,
> Christoph Hellwig <hch@infradead.org>
> wrote:
> > Does this patch fix your issues with large block
> sizes?
> 
> I'll be able to try it in the evening but meanwhile I have
> some comments below.
> 
> >
> >
> > 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;
> 
> Did you mix left and right shifts here? Expression doesn't
> make sense to me.
> 
> Also I have a little concern about consistency in using
> PAGE_CACHE_SHIFT and PAGE_SHIFT. hfsplus_read_wrapper()
> limits visible
> block size to PAGE_SIZE, not PAGE_CACHE_SIZE. And although
> now they
> are equal comment in linux/pagemap.h clearly says that
> PAGE_CACHE_SIZE
> can be bigger than PAGE_SIZE. Is it something that should
> be fixed in
> hfsplus_read_wrapper() ?
> 
> > +
> > +       if ((last_fs_block > (sector_t)(~0ULL)
> >> (sbi->alloc_blksz_shift - 9)) ||
> 
> Maybe this 9 should be extracted from here and
> generic_check_addressable() into some macro?
> 
> > +           (last_fs_page > (pgoff_t)(~0ULL)))
> {
> >                printk(KERN_ERR "hfs:
> filesystem size too large.\n");
> >                goto out_free_vhdr;
> >        }
> >

I 2nd that this is kind of ugly. The literal "9". How about abstracting this logic out to say, hfs_check_addressable()?

  parent reply	other threads:[~2011-09-12 15:57 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-03  3:08 Kernel 3.1.0-rc4 oops when connecting iPod Pavel Ivanov
2011-09-03  3:59 ` Hin-Tak Leung
2011-09-03  3:59   ` Hin-Tak Leung
2011-09-03  4:37   ` Pavel Ivanov
2011-09-03  6:57     ` Hin-Tak Leung
2011-09-03 20:52       ` Pavel Ivanov
2011-09-03 20:52         ` Pavel Ivanov
2011-09-03 23:35         ` Hin-Tak Leung
2011-09-03 23:35           ` Hin-Tak Leung
2011-09-03 23:59           ` Pavel Ivanov
2011-09-03 23:59             ` Pavel Ivanov
2011-09-04  0:37             ` Hin-Tak Leung
2011-09-06  4:35               ` Pavel Ivanov
2011-09-06  4:35                 ` Pavel Ivanov
2011-09-06  5:12                 ` Hin-Tak Leung
2011-09-06  5:12                   ` Hin-Tak Leung
2011-09-06 15:09                   ` Pavel Ivanov
2011-09-06 15:09                     ` Pavel Ivanov
2011-09-11  3:52                     ` Pavel Ivanov
2011-09-11  3:52                       ` Pavel Ivanov
2011-09-11 13:46                       ` Hin-Tak Leung
2011-09-11 13:46                         ` Hin-Tak Leung
2011-09-11 14:14                         ` Christoph Hellwig
2011-09-11 14:12                       ` Christoph Hellwig
2011-09-12 14:34                       ` Christoph Hellwig
2011-09-12 15:19                         ` Pavel Ivanov
2011-09-12 15:19                           ` Pavel Ivanov
2011-09-12 15:31                           ` Christoph Hellwig
2011-09-13  2:20                             ` Pavel Ivanov
2011-09-13  2:20                               ` Pavel Ivanov
2011-09-14 17:42                               ` Christoph Hellwig
2011-09-15 14:35                                 ` Christoph Hellwig
2011-09-12 15:57                           ` Hin-Tak Leung [this message]
2011-09-07 17:59                 ` Seth Forshee
2011-09-07 17:59                   ` Seth Forshee
2011-09-08  3:13                   ` Hin-Tak Leung
2011-09-08  3:13                     ` Hin-Tak Leung
2011-09-08 16:23                     ` Seth Forshee
2011-09-09 12:48                       ` Christoph Hellwig
2011-09-11  3:32                       ` Pavel Ivanov
2011-09-11  3:32                         ` Pavel Ivanov
2011-09-11 14:10                         ` Christoph Hellwig
2011-09-12 14:00                           ` Pavel Ivanov
2011-09-12 15:27                             ` [PATCH] hfsplus: Fix kfree of wrong vhdr pointers Seth Forshee
2011-09-12 15:28                               ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1315843050.34041.YahooMailClassic@web29505.mail.ird.yahoo.com \
    --to=hintak_leung@yahoo.co.uk \
    --cc=hch@infradead.org \
    --cc=hch@tuxera.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paivanof@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.