1. 08 8月, 2010 1 次提交
    • C
      block: unify flags for struct bio and struct request · 7b6d91da
      Christoph Hellwig 提交于
      Remove the current bio flags and reuse the request flags for the bio, too.
      This allows to more easily trace the type of I/O from the filesystem
      down to the block driver.  There were two flags in the bio that were
      missing in the requests:  BIO_RW_UNPLUG and BIO_RW_AHEAD.  Also I've
      renamed two request flags that had a superflous RW in them.
      
      Note that the flags are in bio.h despite having the REQ_ name - as
      blkdev.h includes bio.h that is the only way to go for now.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
      7b6d91da
  2. 06 3月, 2010 1 次提交
  3. 17 2月, 2010 1 次提交
  4. 14 9月, 2009 1 次提交
  5. 11 9月, 2009 1 次提交
  6. 05 9月, 2009 1 次提交
  7. 24 7月, 2009 1 次提交
  8. 22 6月, 2009 2 次提交
  9. 06 1月, 2009 1 次提交
    • M
      dm: consolidate target deregistration error handling · 10d3bd09
      Mikulas Patocka 提交于
      Change dm_unregister_target to return void and use BUG() for error
      reporting.
      
      dm_unregister_target can only fail because of programming bug in the
      target driver. It can't fail because of user's behavior or disk errors.
      
      This patch changes unregister_target to return void and use BUG if
      someone tries to unregister non-registered target or unregister target
      that is in use.
      
      This patch removes code duplication (testing of error codes in all dm
      targets) and reports bugs in just one place, in dm_unregister_target. In
      some target drivers, these return codes were ignored, which could lead
      to a situation where bugs could be missed.
      Signed-off-by: NMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      10d3bd09
  10. 14 11月, 2008 1 次提交
  11. 22 10月, 2008 2 次提交
  12. 09 10月, 2008 1 次提交
    • T
      block: don't depend on consecutive minor space · f331c029
      Tejun Heo 提交于
      * Implement disk_devt() and part_devt() and use them to directly
        access devt instead of computing it from ->major and ->first_minor.
      
        Note that all references to ->major and ->first_minor outside of
        block layer is used to determine devt of the disk (the part0) and as
        ->major and ->first_minor will continue to represent devt for the
        disk, converting these users aren't strictly necessary.  However,
        convert them for consistency.
      
      * Implement disk_max_parts() to avoid directly deferencing
        genhd->minors.
      
      * Update bdget_disk() such that it doesn't assume consecutive minor
        space.
      
      * Move devt computation from register_disk() to add_disk() and make it
        the only one (all other usages use the initially determined value).
      
      These changes clean up the code and will help disk->part dereference
      fix and extended block device numbers.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      f331c029
  13. 08 2月, 2008 2 次提交
    • B
      dm: stripe enhanced status return · 4f7f5c67
      Brian Wood 提交于
      This patch adds additional information to the status line. It is added at the
      end of the returned text so it will not interfere with existing
      implementations using this data. The addition of this information will allow
      for a common return interface to match that returned with the dm-raid1.c
      status line (with Jonathan Brassow's patches).
      
      Here is a sample of what is returned with a mirror "status" call:
      isw_eeaaabgfg_mirror: 0 488390920 mirror 2 8:16 8:32 3727/3727 1 AA 1 core
      
      Here's what's returned with this patch for a stripe "status" call:
      isw_dheeijjdej_stripe: 0 976783872 striped 2 8:16 8:32 1 AA
      Signed-off-by: NBrian Wood <brian.j.wood@intel.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      4f7f5c67
    • B
      dm: stripe trigger event on failure · a25eb944
      Brian Wood 提交于
      This patch adds the stripe_end_io function to process errors that might
      occur after an IO operation. As part of this there are a number of
      enhancements made to record and trigger events:
      
      - New atomic variable in struct stripe to record the number of
      errors each stripe volume device has experienced (could be used
      later with uevents to report back directly to userspace)
      
      - New workqueue/work struct setup to process the trigger_event function
      
      - New end_io function. It is here that testing for BIO error conditions
      take place. It determines the exact stripe that cause the error,
      records this in the new atomic variable, and calls the queue_work() function
      
      - New trigger_event function to process failure events. This
      calls dm_table_event()
      Signed-off-by: NBrian Wood <brian.j.wood@intel.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      a25eb944
  14. 20 10月, 2007 1 次提交
  15. 09 12月, 2006 1 次提交
  16. 27 6月, 2006 1 次提交
  17. 28 3月, 2006 2 次提交
  18. 17 3月, 2006 1 次提交
    • K
      [PATCH] dm stripe: Fix bounds · 8ba32fde
      Kevin Corry 提交于
      The dm-stripe target currently does not enforce that the size of a stripe
      device be a multiple of the chunk-size.  Under certain conditions, this can
      lead to I/O requests going off the end of an underlying device.  This
      test-case shows one example.
      
      echo "0 100 linear /dev/hdb1 0" | dmsetup create linear0
      echo "0 100 linear /dev/hdb1 100" | dmsetup create linear1
      echo "0 200 striped 2 32 /dev/mapper/linear0 0 /dev/mapper/linear1 0" | \
         dmsetup create stripe0
      dd if=/dev/zero of=/dev/mapper/stripe0 bs=1k
      
      This will produce the output:
      dd: writing '/dev/mapper/stripe0': Input/output error
      97+0 records in
      96+0 records out
      
      And in the kernel log will be:
      attempt to access beyond end of device
      dm-0: rw=0, want=104, limit=100
      
      The patch will check that the table size is a multiple of the stripe
      chunk-size when the table is created, which will prevent the above striped
      device from being created.
      
      This should not affect tools like LVM or EVMS, since in all the cases I can
      think of, striped devices are always created with the sizes being a
      multiple of the chunk-size.
      
      The size of a stripe device must be a multiple of its chunk-size.
      
      (akpm: that typecast is quite gratuitous)
      Signed-off-by: NKevin Corry <kevcorry@us.ibm.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8ba32fde
  19. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4