01 Nov, 2005

1 commit

  • Instead of having ->read_sectors and ->write_sectors, combine the two
    into ->sectors[2] and similar for the other fields. This saves a branch
    several places in the io path, since we don't have to care for what the
    actual io direction is. On my x86-64 box, that's 200 bytes less text in
    just the core (not counting the various drivers).

    Signed-off-by: Jens Axboe

    Jens Axboe
     

30 Oct, 2005

1 commit


28 Oct, 2005

1 commit


27 Oct, 2005

1 commit


20 Oct, 2005

1 commit

  • The main problem fixes is that in certain situations stopping md arrays may
    take longer than you expect, or may require multiple attempts. This would
    only happen when resync/recovery is happening.

    This patch fixes three vaguely related bugs.

    1/ The recent change to use kthreads got the setting of the
    process name wrong. This fixes it.
    2/ The recent change to use kthreads lost the ability for
    md threads to be signalled with SIG_KILL. This restores that.
    3/ There is a long standing bug in that if:
    - An array needs recovery (onto a hot-spare) and
    - The recovery is being blocked because some other array being
    recovered shares a physical device and
    - The recovery thread is killed with SIG_KILL
    Then the recovery will appear to have completed with no IO being
    done, which can cause data corruption.
    This patch makes sure that incomplete recovery will be treated as
    incomplete.

    Note that any kernel affected by bug 2 will not suffer the problem of bug
    3, as the signal can never be delivered. Thus the current 2.6.14-rc
    kernels are not susceptible to data corruption. Note also that if arrays
    are shutdown (with "mdadm -S" or "raidstop") then the problem doesn't
    occur. It only happens if a SIGKILL is independently delivered as done by
    'init' when shutting down.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     

09 Oct, 2005

1 commit

  • - added typedef unsigned int __nocast gfp_t;

    - replaced __nocast uses for gfp flags with gfp_t - it gives exactly
    the same warnings as far as sparse is concerned, doesn't change
    generated code (from gcc point of view we replaced unsigned int with
    typedef) and documents what's going on far better.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

28 Sep, 2005

2 commits

  • When creating a multipath device, if the queue_if_no_path parameter is
    specified it gets ignored.

    While the queue_if_no_path variable is correctly set to 1, the
    saved_queue_if_no_path gets set to 0. When the device is subsequently made
    live (resumed), the saved value (0) always overwrites the live value (1) so
    the option *always* gets turned off.

    The fix adds a parameter to the queue_if_no_path() function to indicate
    whether the previous value should be preserved or not - if not, as when the
    device is being set up, the saved value is set to the new value (1).

    Signed-Off-By: Alasdair G Kergon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • If anything is waiting on a device's table when the device is removed, we
    must first wake it up so it will release its reference. Otherwise the
    table's reference count will not drop to zero and the table will not get
    removed.

    Signed-Off-By: Alasdair G Kergon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    goggin, edward
     

18 Sep, 2005

1 commit

  • This patch fixes a signedness bug with RAID6 for Altivec, and makes the
    Altivec code testable in userspace.

    Signed-off-by: H. Peter Anvin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H. Peter Anvin
     

11 Sep, 2005

2 commits

  • This patch contains the most trivial from Rusty's trivial patches:
    - spelling fixes
    - remove duplicate includes

    Signed-off-by: Adrian Bunk
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • This patch does a full cleanup of 'NULL checks before vfree', and a partial
    cleanup of calls to kfree for all of drivers/ - the kfree bit is partial in
    that I only did the files that also had vfree calls in them. The patch
    also gets rid of some redundant (void *) casts of pointers being passed to
    [vk]free, and a some tiny whitespace corrections also crept in.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Juhl
     

10 Sep, 2005

29 commits