22 May, 2014

1 commit

  • This simple patch adds support for raid6 to the ORE.
    Most operations and calculations where already for the general
    case. Only things left:
    * call async_gen_syndrome() in the case of raid6
    (NOTE that the raid6 math is the one supported by the Linux Kernel
    see: crypto/async_tx/async_pq.c)
    * call _ore_add_parity_unit() twice with only last call generating
    the redundancy pages.

    * Fix couple BUGS in old code
    a. In reads when parity==2 it can happen that per_dev->length=0
    but per_dev->offset was set and adjusted by _ore_add_sg_seg().
    Don't let it be overwritten.
    b. The all 'cur_comp > starting_dev' thing to determine if:
    "per_dev->offset is in the current stripe number or the
    next one."
    Was a complete raid5/4 accident. When parity==2 this is not
    at all true usually. All we need to do is increment si->ob_offset
    once we pass by the first parity device.
    (This also greatly simplifies the code, amen)
    c. Calculation of si->dev rotation can overflow when parity==2.

    * Then last enable raid6 in ore_verify_layout()

    I want to deeply thank Daniel Gryniewicz who found first all the
    bugs in the old raid code, and inspired these patches:
    Inspired-by Daniel Gryniewicz

    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     

06 Jan, 2012

1 commit

  • As Reported by Randy Dunlap

    When MISC_FILESYSTEMS is not enabled and NFS4.1 is:

    fs/built-in.o: In function `objio_alloc_io_state':
    objio_osd.c:(.text+0xcb525): undefined reference to `ore_get_rw_state'
    fs/built-in.o: In function `_write_done':
    objio_osd.c:(.text+0xcb58d): undefined reference to `ore_check_io'
    fs/built-in.o: In function `_read_done':
    ...

    When MISC_FILESYSTEMS, which is more of a GUI thing then anything else,
    is not selected. exofs/Kconfig is never examined during Kconfig,
    and it can not do it's magic stuff to automatically select everything
    needed.

    We must split exofs/Kconfig in two. The ore one is always included.
    And the exofs one is left in it's old place in the menu.

    [Needed for the 3.2.0 Kernel]
    CC: Stable Tree
    Reported-by: Randy Dunlap
    Signed-off-by: Boaz Harrosh

    Boaz Harrosh