1. 27 6月, 2006 35 次提交
  2. 23 6月, 2006 1 次提交
  3. 01 6月, 2006 1 次提交
    • N
      [PATCH] md: Fix badness in sysfs_notify caused by md_new_event · c331eb04
      NeilBrown 提交于
      From: NeilBrown <neilb@suse.de>
      
      If an error is reported by a drive in a RAID array (which is done via
      bi_end_io - in interrupt context), we call md_error and md_new_event which
      calls sysfs_notify.  However sysfs_notify grabs a mutex and so cannot be
      called in interrupt context.
      
      This patch just creates a variant of md_new_event which avoids the sysfs
      call, and uses that.  A better fix for later is to arrange for the event to
      be called from user-context.
      
      Note: avoiding the sysfs call isn't a problem as an error will not, by
      itself, modify the sync_action attribute.  (We do still need to
      wake_up(&md_event_waiters) as an error by itself will modify /proc/mdstat).
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c331eb04
  4. 27 5月, 2006 1 次提交
  5. 24 5月, 2006 1 次提交
    • N
      [PATCH] md: fix possible oops when starting a raid0 array · 5c4c3331
      NeilBrown 提交于
      This loop that sets up the hash_table has problems.
      
      Careful examination will show that the last time through, everything but
      the first line is pointless.  This is because all it does is change 'cur'
      and 'size' and neither of these are used after the loop.  This should ring
      warning bells...  That last time through the loop,
      
              size += conf->strip_zone[cur].size
      
      can index off the end of the strip_zone array.  Depending on what it finds
      there, it might exit the loop cleanly, or it might spin going further and
      further beyond the array until it hits an unmapped address.
      
      This patch rearranges the code so that the last, pointless, iteration of
      the loop never happens.  i.e.  the one statement of the last loop that is
      needed is moved the the end of the previous loop - or to before the loop
      starts - and the loop counter starts from 1 instead of 0.
      
      Cc: "Don Dupuis" <dondster@gmail.com>
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5c4c3331
  6. 22 5月, 2006 1 次提交