17 Dec, 2010

1 commit


14 Oct, 2010

1 commit

  • hfs seems prone to bad things when it encounters on disk corruption. Many
    values are read from disk, and used as lengths to memcpy, as an example.
    This patch fixes up several of these problematic cases.

    o sanity check the on-disk maximum key lengths on mount
    (these are set to a defined value at mkfs time and shouldn't differ)
    o check on-disk node keylens against the maximum key length for each tree
    o fix hfs_btree_open so that going out via free_tree: doesn't wind
    up in hfs_releasepage, which wants to follow the very pointer
    we were trying to set up:
    HFS_SB(sb)->cat_tree = hfs_btree_open()
    .
    failure gets to hfs_releasepage and tries to follow HFS_SB(sb)->cat_tree

    Tested with the fsfuzzer; it survives more than it used to.

    [hch: ported of commit cf0594625083111ae522496dc1c256f7476939c2 from hfs]
    [hch: added the fixes from 5581d018ed3493d226e7a4d645d9c8a5af6c36b]

    Signed-off-by: Eric Sandeen
    Signed-off-by: Christoph Hellwig

    Eric Sandeen
     

12 Feb, 2007

1 commit

  • Extend the set of "__attribute__" shortcut macros, and remove identical
    (and now superfluous) definitions from a couple of source files.

    based on a page at robert love's blog:

    http://rlove.org/log/2005102601

    extend the set of shortcut macros defined in compiler-gcc.h with the
    following:

    #define __packed __attribute__((packed))
    #define __weak __attribute__((weak))
    #define __naked __attribute__((naked))
    #define __noreturn __attribute__((noreturn))
    #define __pure __attribute__((pure))
    #define __aligned(x) __attribute__((aligned(x)))
    #define __printf(a,b) __attribute__((format(printf,a,b)))

    Once these are in place, it's up to subsystem maintainers to decide if they
    want to take advantage of them. there is already a strong precedent for
    using shortcuts like this in the source tree.

    The ones that might give people pause are "__aligned" and "__printf", but
    shortcuts for both of those are already in use, and in some ways very
    confusingly. note the two very different definitions for a macro named
    "ALIGNED":

    drivers/net/sgiseeq.c:#define ALIGNED(x) ((((unsigned long)(x)) + 0xf) & ~(0xf))
    drivers/scsi/ultrastor.c:#define ALIGNED(x) __attribute__((aligned(x)))

    also:

    include/acpi/platform/acgcc.h:
    #define ACPI_PRINTF_LIKE(c) __attribute__ ((__format__ (__printf__, c, c+1)))

    Given the precedent, then, it seems logical to at least standardize on a
    consistent set of these macros.

    Signed-off-by: Robert P. J. Day
    Acked-by: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robert P. J. Day
     

19 Jan, 2006

2 commits


30 Nov, 2005

1 commit

  • Access to a journaled HFS+ volume is not officially supported under Linux, so
    mount such a volume read-only, but users can override this behaviour using the
    "force" mount option.

    The minimum requirement to relax this check is to at least check that the
    journal is empty and so nothing needs to be replayed to make sure the volume
    is consistent.

    Signed-off-by: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roman Zippel
     

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