1. 09 5月, 2007 1 次提交
  2. 13 4月, 2007 1 次提交
  3. 12 2月, 2007 1 次提交
  4. 10 2月, 2007 1 次提交
    • N
      [PATCH] md: avoid possible BUG_ON in md bitmap handling · da6e1a32
      Neil Brown 提交于
      md/bitmap tracks how many active write requests are pending on blocks
      associated with each bit in the bitmap, so that it knows when it can clear
      the bit (when count hits zero).
      
      The counter has 14 bits of space, so if there are ever more than 16383, we
      cannot cope.
      
      Currently the code just calles BUG_ON as "all" drivers have request queue
      limits much smaller than this.
      
      However is seems that some don't.  Apparently some multipath configurations
      can allow more than 16383 concurrent write requests.
      
      So, in this unlikely situation, instead of calling BUG_ON we now wait
      for the count to drop down a bit.  This requires a new wait_queue_head,
      some waiting code, and a wakeup call.
      
      Tested by limiting the counter to 20 instead of 16383 (writes go a lot slower
      in that case...).
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      da6e1a32
  5. 27 1月, 2007 1 次提交
  6. 09 12月, 2006 1 次提交
  7. 22 10月, 2006 1 次提交
  8. 12 10月, 2006 1 次提交
  9. 03 10月, 2006 2 次提交
  10. 01 7月, 2006 1 次提交
  11. 27 6月, 2006 8 次提交
  12. 27 3月, 2006 1 次提交
  13. 26 3月, 2006 1 次提交
  14. 25 3月, 2006 1 次提交
  15. 15 1月, 2006 1 次提交
  16. 07 1月, 2006 7 次提交
  17. 18 11月, 2005 1 次提交
  18. 09 11月, 2005 4 次提交
    • N
      [PATCH] md: support BIO_RW_BARRIER for md/raid1 · a9701a30
      NeilBrown 提交于
      We can only accept BARRIER requests if all slaves handle
      barriers, and that can, of course, change with time....
      
      So we keep track of whether the whole array seems safe for barriers,
      and also whether each individual rdev handles barriers.
      
      We initially assumes barriers are OK.
      
      When writing the superblock we try a barrier, and if that fails, we flag
      things for no-barriers.  This will usually clear the flags fairly quickly.
      
      If writing the superblock finds that BIO_RW_BARRIER is -ENOTSUPP, we need to
      resubmit, so introduce function "md_super_wait" which waits for requests to
      finish, and retries ENOTSUPP requests without the barrier flag.
      
      When writing the real raid1, write requests which were BIO_RW_BARRIER but
      which aresn't supported need to be retried.  So raid1d is enhanced to do this,
      and when any bio write completes (i.e.  no retry needed) we remove it from the
      r1bio, so that devices needing retry are easy to find.
      
      We should hardly ever get -ENOTSUPP errors when writing data to the raid.
      It should only happen if:
        1/ the device used to support BARRIER, but now doesn't.  Few devices
           change like this, though raid1 can!
      or
        2/ the array has no persistent superblock, so there was no opportunity to
           pre-test for barriers when writing the superblock.
      Signed-off-by: NNeil Brown <neilb@cse.unsw.edu.au>
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a9701a30
    • N
      [PATCH] md: make md on-disk bitmaps not host-endian · bd926c63
      NeilBrown 提交于
      Current bitmaps use set_bit et.al and so are host-endian, which means
      not-portable.  Oops.
      
      Define a new version number (4) for which bitmaps are little-endian.
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      bd926c63
    • N
      [PATCH] md: convert 'faulty' and 'in_sync' fields to bits in 'flags' field · b2d444d7
      NeilBrown 提交于
      This has the advantage of removing the confusion caused by 'rdev_t' and
      'mddev_t' both having 'in_sync' fields.
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b2d444d7
    • O
      [PATCH] changing CONFIG_LOCALVERSION rebuilds too much, for no good reason · 733482e4
      Olaf Hering 提交于
      This patch removes almost all inclusions of linux/version.h.  The 3
      #defines are unused in most of the touched files.
      
      A few drivers use the simple KERNEL_VERSION(a,b,c) macro, which is
      unfortunatly in linux/version.h.
      
      There are also lots of #ifdef for long obsolete kernels, this was not
      touched.  In a few places, the linux/version.h include was move to where
      the LINUX_VERSION_CODE was used.
      
      quilt vi `find * -type f -name "*.[ch]"|xargs grep -El '(UTS_RELEASE|LINUX_VERSION_CODE|KERNEL_VERSION|linux/version.h)'|grep -Ev '(/(boot|coda|drm)/|~$)'`
      
      search pattern:
      /UTS_RELEASE\|LINUX_VERSION_CODE\|KERNEL_VERSION\|linux\/\(utsname\|version\).h
      Signed-off-by: NOlaf Hering <olh@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      733482e4
  19. 28 10月, 2005 1 次提交
  20. 10 9月, 2005 4 次提交