10 Jan, 2012

3 commits


22 Jul, 2011

1 commit


31 Mar, 2011

1 commit


18 Mar, 2010

1 commit

  • jffs2 uses rb_node = NULL; to zero rb_root.

    The problem with this is that 17d9ddc72fb8bba0d4f678 ("rbtree: Add
    support for augmented rbtrees") in the linux-next tree adds a new field
    to that struct which needs to be NULL as well. This patch uses RB_ROOT
    as the intializer so all of the relevant fields will be NULL'd.

    Signed-off-by: Venkatesh Pallipadi
    Cc: Eric Paris
    Acked-by: David Woodhouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Venkatesh Pallipadi
     

17 Dec, 2009

1 commit

  • * git://git.infradead.org/mtd-2.6: (90 commits)
    jffs2: Fix long-standing bug with symlink garbage collection.
    mtd: OneNAND: Fix test of unsigned in onenand_otp_walk()
    mtd: cfi_cmdset_0002, fix lock imbalance
    Revert "mtd: move mxcnd_remove to .exit.text"
    mtd: m25p80: add support for Macronix MX25L4005A
    kmsg_dump: fix build for CONFIG_PRINTK=n
    mtd: nandsim: add support for 4KiB pages
    mtd: mtdoops: refactor as a kmsg_dumper
    mtd: mtdoops: make record size configurable
    mtd: mtdoops: limit the maximum mtd partition size
    mtd: mtdoops: keep track of used/unused pages in an array
    mtd: mtdoops: several minor cleanups
    core: Add kernel message dumper to call on oopses and panics
    mtd: add ARM pismo support
    mtd: pxa3xx_nand: Fix PIO data transfer
    mtd: nand: fix multi-chip suspend problem
    mtd: add support for switching old SST chips into QRY mode
    mtd: fix M29W800D dev_id and uaddr
    mtd: don't use PF_MEMALLOC
    mtd: Add bad block table overrides to Davinci NAND driver
    ...

    Fixed up conflicts (mostly trivial) in
    drivers/mtd/devices/m25p80.c
    drivers/mtd/maps/pcmciamtd.c
    drivers/mtd/nand/pxa3xx_nand.c
    kernel/printk.c

    Linus Torvalds
     

04 Dec, 2009

1 commit

  • That is "success", "unknown", "through", "performance", "[re|un]mapping"
    , "access", "default", "reasonable", "[con]currently", "temperature"
    , "channel", "[un]used", "application", "example","hierarchy", "therefore"
    , "[over|under]flow", "contiguous", "threshold", "enough" and others.

    Signed-off-by: André Goddard Rosa
    Signed-off-by: Jiri Kosina

    André Goddard Rosa
     

30 Nov, 2009

1 commit


24 Jun, 2009

1 commit


21 Feb, 2009

1 commit

  • At scan time we observed following scenario:

    node A inserted
    node B inserted
    node C inserted -> sets overlapped flag on node B

    node A is removed due to CRC failure -> overlapped flag on node B remains

    while (tn->overlapped)
    tn = tn_prev(tn);

    ==> crash, when tn_prev(B) is referenced.

    When the ultimate node is removed at scan time and the overlapped flag
    is set on the penultimate node, then nothing updates the overlapped
    flag of that node. The overlapped iterators blindly expect that the
    ultimate node does not have the overlapped flag set, which causes the
    scan code to crash.

    It would be a huge overhead to go through the node chain on node
    removal and fix up the overlapped flags, so detecting such a case on
    the fly in the overlapped iterators is a simpler and reliable
    solution.

    Cc: stable@kernel.org
    Signed-off-by: Thomas Gleixner
    Signed-off-by: David Woodhouse

    Thomas Gleixner
     

02 May, 2008

2 commits


23 Apr, 2008

1 commit


22 Apr, 2008

1 commit


08 Feb, 2008

1 commit

  • * git://git.infradead.org/mtd-2.6: (120 commits)
    [MTD] Fix mtdoops.c compilation
    [MTD] [NOR] fix startup lock when using multiple nor flash chips
    [MTD] [DOC200x] eccbuf is statically defined and always evaluate to true
    [MTD] Fix maps/physmap.c compilation with CONFIG_PM
    [MTD] onenand: Add panic_write function to the onenand driver
    [MTD] mtdoops: Use the panic_write function when present
    [MTD] Add mtd panic_write function pointer
    [MTD] [NAND] Freescale enhanced Local Bus Controller FCM NAND support.
    [MTD] physmap.c: Add support for multiple resources
    [MTD] [NAND] Fix misparenthesization introduced by commit 78b65179...
    [MTD] [NAND] Fix Blackfin NFC ECC calculating bug with page size 512 bytes
    [MTD] [NAND] Remove wrong operation in PM function of the BF54x NFC driver
    [MTD] [NAND] Remove unused variable in plat_nand_remove
    [MTD] Unlocking all Intel flash that is locked on power up.
    [MTD] [NAND] at91_nand: Make mtdparts option can override board info
    [MTD] mtdoops: Various minor cleanups
    [MTD] mtdoops: Ensure sequential write to the buffer
    [MTD] mtdoops: Perform write operations in a workqueue
    [MTD] mtdoops: Add further error return code checking
    [MTD] [NOR] Test devtype, not definition in flash_probe(), drivers/mtd/devices/lart.c
    ...

    Linus Torvalds
     

03 Feb, 2008

1 commit


28 Nov, 2007

1 commit


22 Nov, 2007

1 commit


24 Sep, 2007

1 commit

  • Fix a couple of instances in JFFS2 where the unpoint() routine is
    being called with the wrong length in cases where the point() routine
    truncated a request.

    Signed-off-by: Andy Lowe
    Signed-off-by: Nicolas Pitre
    Signed-off-by: David Woodhouse

    Andy Lowe
     

10 Jul, 2007

1 commit


05 Jul, 2007

1 commit


04 Jul, 2007

1 commit


29 Jun, 2007

1 commit


02 Jun, 2007

1 commit


01 Jun, 2007

1 commit


08 May, 2007

1 commit


07 May, 2007

1 commit

  • We attempted to insert new nodes into the tree by just using
    rb_replace_node to let them replace an earlier node which they
    completely overlapped. However, that could place the new node into the
    wrong place in the tree, since its start could be node only before the
    start of the victim, but before the node _before_ the victim in the tree
    (if that previous node actually ends _after_ the new node, thus isn't
    entirely overlapped and wasn't itself chosen to be the victim).

    Signed-off-by: David Woodhouse

    David Woodhouse
     

06 May, 2007

1 commit

  • The original code would remember, during the first pass over the tree,
    a suitable place to start the insertion from when we eventually come
    to add a new node.

    The optimisation was broken, and we sometimes ended up inserting a new
    node in the wrong place because we started the insertion from the wrong
    point.

    Just ditch the optimisation and start the insertion from the root of the
    tree, for now. I'll try it again when I'm feeling cleverer.

    Signed-off-by: David Woodhouse

    David Woodhouse
     

05 May, 2007

1 commit


26 Apr, 2007

1 commit


25 Apr, 2007

3 commits

  • In particular, remove the bit in the LICENCE file about contacting
    Red Hat for alternative arrangements. Their errant IS department broke
    that arrangement a long time ago -- the policy of collecting copyright
    assignments from contributors came to an end when the plug was pulled on
    the servers hosting the project, without notice or reason.

    We do still dual-license it for use with eCos, with the GPL+exception
    licence approved by the FSF as being GPL-compatible. It's just that nobody
    has the right to license it differently.

    Signed-off-by: David Woodhouse

    David Woodhouse
     
  • No need to check for all-zero header since the header cannot
    be zero due to other checks.

    Replace the all-zero header check in readinode.c with a
    check for the magic word.

    Signed-off-by: Joakim Tjernlund
    Signed-off-by: David Woodhouse

    Joakim Tjernlund
     
  • We originally used to read every node and allocate a jffs2_tmp_dnode_info
    structure for each, before processing them in (reverse) version order
    and discarding the ones which are obsoleted by later nodes.

    With huge logfiles, this behaviour caused memory problems. For example, a
    file involved in OLPC trac #1292 has 1822391 nodes, and would cause the XO
    machine to run out of memory during the first stage of read_inode().

    Instead of just inserting nodes into a tree in version order as we find
    them, we now put them into a tree in order of their offset within the
    file, which allows us to immediately discard nodes which are completely
    obsoleted.

    We don't use a full tree with 'fragments' pointing to the real data
    structure, as we do in the normal fragtree. We sort only on the start
    address, and add an 'overlapped' flag to the tmp_dnode_info to indicate
    that the node in question is (partially) overlapped by another.

    When the scan is complete, we start at the end of the file, adding each
    node to a real fragtree as before. Where the node is non-overlapped, we
    just add it (it doesn't matter that it's not the latest version; there is
    no overlap). When the node at the end of the tree _is_ overlapped, we sort
    it and all its overlapping nodes into version order and then add them to
    the fragtree in that order.

    This 'early discard' reduces the peak allocation of tmp_dnode_info
    structures from 1.8M to a mere 62872 (3.5%) in the degenerate case
    referenced above.

    This version of the patch also correctly rememembers the highest node
    version# seen for an inode when it's scanned.

    Signed-off-by: David Woodhouse

    David Woodhouse
     

18 Apr, 2007

1 commit

  • In read inode we have an optimization which prevents one
    min. I/O unit (e.g. NAND page) to be read more then once.

    Namely, at the beginning we do not know which node type we read,
    so we read so we assume we read the directory entry, because it
    has the smallest node header. When we read it, we read up to the
    next min. I/O unit, just because if later we'll need to read more,
    we already have this data.

    If it turns out to be that the node is not directory entry, and
    we need more data, and we did not read it because it sits in the
    next min. I/O unit, we read the whole next (or several next)
    min. I/O unit(s). And if it happens to be that we read a data node,
    and we've read part of its data, we calculate partial CRC.
    So if later we need to check data CRC, we'll only read the rest
    of the data from further min. I/O units and continue CRC checking.

    This code was a bit messy and buggy. The bug was that it assumed
    relatively large min. I/O unit, so that the largest node header
    could overlap only one min. I/O unit boundary.

    This parch clean-ups the code a bit and fixes this bug.
    The patch was not tested on flash with small min. I/O unit, like
    NOR-ECC, nut it was tested on NAND with 512 bytes NAND page, so
    it at least does not break NAND. It was also tested with mtdram
    so it should not break NOR.

    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Artem Bityutskiy
     

09 Mar, 2007

1 commit


10 Dec, 2006

1 commit


02 Jul, 2006

1 commit

  • jffs2_clear_acl() which releases acl caches allocated by kmalloc()
    was defined but it was never called. Thus, we faced to the risk
    of memory leaking.

    This patch plugs jffs2_clear_acl() into jffs2_do_clear_inode().
    It ensures to release acl cache when inode is cleared.

    Signed-off-by: KaiGai Kohei
    Signed-off-by: David Woodhouse

    KaiGai Kohei
     

27 Jun, 2006

1 commit

  • If xattr_ref is associated with an orphan inode_cache
    on filesystem mounting, those xattr_refs are not
    released even if this inode_cache is released.

    This patch enables to call jffs2_xattr_delete_inode()
    for such a irregular inode_cachde too.

    Signed-off-by: KaiGai Kohei
    Signed-off-by: David Woodhouse

    KaiGai Kohei
     

21 Jun, 2006

1 commit

  • * git://git.infradead.org/~dwmw2/rbtree-2.6:
    [RBTREE] Switch rb_colour() et al to en_US spelling of 'color' for consistency
    Update UML kernel/physmem.c to use rb_parent() accessor macro
    [RBTREE] Update hrtimers to use rb_parent() accessor macro.
    [RBTREE] Add explicit alignment to sizeof(long) for struct rb_node.
    [RBTREE] Merge colour and parent fields of struct rb_node.
    [RBTREE] Remove dead code in rb_erase()
    [RBTREE] Update JFFS2 to use rb_parent() accessor macro.
    [RBTREE] Update eventpoll.c to use rb_parent() accessor macro.
    [RBTREE] Update key.c to use rb_parent() accessor macro.
    [RBTREE] Update ext3 to use rb_parent() accessor macro.
    [RBTREE] Change rbtree off-tree marking in I/O schedulers.
    [RBTREE] Add accessor macros for colour and parent fields of rb_node

    Linus Torvalds