1. 20 10月, 2005 1 次提交
    • N
      [PATCH] Three one-liners in md.c · 6985c43f
      NeilBrown 提交于
      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: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6985c43f
  2. 11 9月, 2005 1 次提交
  3. 10 9月, 2005 16 次提交
  4. 27 8月, 2005 2 次提交
  5. 24 8月, 2005 1 次提交
  6. 19 8月, 2005 1 次提交
  7. 05 8月, 2005 3 次提交
  8. 28 7月, 2005 1 次提交
  9. 29 6月, 2005 1 次提交
  10. 26 6月, 2005 1 次提交
    • C
      [PATCH] Cleanup patch for process freezing · 3e1d1d28
      Christoph Lameter 提交于
      1. Establish a simple API for process freezing defined in linux/include/sched.h:
      
         frozen(process)		Check for frozen process
         freezing(process)		Check if a process is being frozen
         freeze(process)		Tell a process to freeze (go to refrigerator)
         thaw_process(process)	Restart process
         frozen_process(process)	Process is frozen now
      
      2. Remove all references to PF_FREEZE and PF_FROZEN from all
         kernel sources except sched.h
      
      3. Fix numerous locations where try_to_freeze is manually done by a driver
      
      4. Remove the argument that is no longer necessary from two function calls.
      
      5. Some whitespace cleanup
      
      6. Clear potential race in refrigerator (provides an open window of PF_FREEZE
         cleared before setting PF_FROZEN, recalc_sigpending does not check
         PF_FROZEN).
      
      This patch does not address the problem of freeze_processes() violating the rule
      that a task may only modify its own flags by setting PF_FREEZE. This is not clean
      in an SMP environment. freeze(process) is therefore not SMP safe!
      Signed-off-by: NChristoph Lameter <christoph@lameter.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3e1d1d28
  11. 22 6月, 2005 12 次提交