16 Sep, 2011

1 commit

  • Commit 6596528e391a ("hfsplus: ensure bio requests are not smaller than
    the hardware sectors") changed the pointers used for volume header
    allocations but failed to free the correct pointers in the error path
    path of hfsplus_fill_super() and hfsplus_read_wrapper.

    The second hunk came from a separate patch by Pavel Ivanov.

    Reported-by: Pavel Ivanov
    Signed-off-by: Seth Forshee
    Signed-off-by: Christoph Hellwig
    Cc:
    Signed-off-by: Linus Torvalds

    Seth Forshee
     

22 Jul, 2011

1 commit


30 Jun, 2011

3 commits


04 Feb, 2011

1 commit


17 Dec, 2010

1 commit


23 Nov, 2010

1 commit

  • The hfsplus backup volume header is located two blocks from the end of
    the device. In case of device sizes that are not 4k aligned this means
    we can't access it using buffer_heads when using the default 4k block
    size.

    Switch to using raw bios to read/write all buffer headers. We were not
    relying on any caching behaviour of the buffer heads anyway. Additionally
    always read in the backup volume header during mount to verify that we
    can actually read it.

    Signed-off-by: Christoph Hellwig

    Christoph Hellwig
     

01 Oct, 2010

2 commits

  • The flags in the HFS+-specific superlock do get modified during runtime,
    use atomic bitops to make the modifications SMP safe.

    Signed-off-by: Christoph Hellwig

    Christoph Hellwig
     
  • HFSPLUS_SB doesn't return a pointer to the hfsplus-specific superblock
    information like all other FOO_SB macros, but dereference the pointer in a way
    that made it look like a direct struct derefence. This only works as long
    as the HFSPLUS_SB macro is used directly and prevents us from keepig a local
    hfsplus_sb_info pointer. Fix the calling convention and introduce a local
    sbi variable in all functions that use it constantly.

    Signed-off-by: Christoph Hellwig

    Christoph Hellwig
     

29 Oct, 2009

1 commit

  • As found in , hfsplus is using type u32
    rather than sector_t for some sector number calculations.

    In particular, hfsplus_get_block() does:

    u32 ablock, dblock, mask;
    ...
    map_bh(bh_result, sb, (dblock << HFSPLUS_SB(sb).fs_shift) + HFSPLUS_SB(sb).blockoffset + (iblock & mask));

    I am not confident that I can find and fix all cases where a sector number
    may be truncated. For now, avoid data loss by refusing to mount HFS+
    volumes with more than 2^32 sectors (2TB).

    [akpm@linux-foundation.org: fix 32 and 64-bit issues]
    Signed-off-by: Ben Hutchings
    Cc: Eric Sesterhenn
    Cc: Roman Zippel
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Hutchings
     

29 Apr, 2008

1 commit


19 Jan, 2006

2 commits


09 Nov, 2005

1 commit

  • This patch removes almost all inclusions of linux/version.h. The 3
    #defines are unused in most of the touched files.

    A few drivers use the simple KERNEL_VERSION(a,b,c) macro, which is
    unfortunatly in linux/version.h.

    There are also lots of #ifdef for long obsolete kernels, this was not
    touched. In a few places, the linux/version.h include was move to where
    the LINUX_VERSION_CODE was used.

    quilt vi `find * -type f -name "*.[ch]"|xargs grep -El '(UTS_RELEASE|LINUX_VERSION_CODE|KERNEL_VERSION|linux/version.h)'|grep -Ev '(/(boot|coda|drm)/|~$)'`

    search pattern:
    /UTS_RELEASE\|LINUX_VERSION_CODE\|KERNEL_VERSION\|linux\/\(utsname\|version\).h

    Signed-off-by: Olaf Hering
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Olaf Hering
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds