1. 16 6月, 2009 2 次提交
  2. 13 6月, 2009 1 次提交
  3. 12 6月, 2009 3 次提交
  4. 11 6月, 2009 2 次提交
  5. 09 6月, 2009 9 次提交
  6. 02 6月, 2009 4 次提交
    • A
      cciss: use schedule_timeout_interruptible() · 77b0308a
      Andrew Morton 提交于
      Use schedule_timeout_interruptible() instead of open-coding the set and
      schedule parts.
      
      Cc: Mike Miller <mikem@beardog.cca.cpqcorp.net>
      Cc: Stephen M. Cameron <scameron@beardog.cca.cpqcorp.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      77b0308a
    • A
      cciss: add cciss driver sysfs entries · 7fe06326
      Andrew Patterson 提交于
      Add sysfs entries to the cciss driver needed for the dm/multipath tools.
      
      A file for vendor, model, rev, and unique_id is added for each logical
      drive under directory /sys/bus/pci/devices/<dev>/ccissX/cXdY.  Where X =
      the controller (or host) number and Y is the logical drive number.
      
      A link from /sys/bus/pci/devices/<dev>/ccissX/cXdY/block:cciss!cXdY to
      /sys/block/cciss!cXdY/device is also created.  A bus is created in
      /sys/bus/cciss.  A link is created from the pci ccissX entry to
      /sys/bus/cciss/devices/ccissX.  Please consider this for inclusion.
      Signed-off-by: NMike Miller <mike.miller@hp.com>
      Cc: Stephen M. Cameron <scameron@beardog.cca.cpqcorp.net>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      7fe06326
    • S
      cciss: fix SCSI device reset handler · 88f627ae
      Stephen M. Cameron 提交于
      Fix the SCSI reset error handler to send a working, properly addressed
      reset message to the target device and add code to wait for the target
      device to become ready by polling it with Test Unit Ready.
      
      The existing reset code was broken in that it didn't bother to set the
      8-byte LUN address to anything besides zero, so the command was addressed
      to the controller, which pretended to the driver that the command
      succeeded, while doing nothing.  Ages ago I tested this code, but
      unbeknownst to me, my test was flawed, and what I thought was a tape drive
      getting reset was actually nothing of the sort.  Unfortunately, there is
      still lots of Smartarray firmware that doesn't handle doing target resets
      right, and this code won't help in those cases, but it also shouldn't make
      things worse in those cases than they already are.
      Signed-off-by: NStephen M. Cameron <scameron@beardog.cca.cpqcorp.net>
      Cc: Mike Miller <mikem@beardog.cca.cpqcorp.net>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      88f627ae
    • S
      cciss: factor out core of sendcmd() for a more sane interface · 4a4b2d76
      Stephen M. Cameron 提交于
      Factor out the core of sendcmd() to provide a simpler interface which
      exposes all the error information to the caller and make the original
      sendcmd use this new function.  Rationale: The SCSI error handling
      routines need to send commands with interrupts turned off, but they also
      need access to the full error information.
      Signed-off-by: NStephen M. Cameron <scameron@beardog.cca.cpqcorp.net>
      Cc: Mike Miller <mikem@beardog.cca.cpqcorp.net>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      4a4b2d76
  7. 28 5月, 2009 1 次提交
  8. 23 5月, 2009 2 次提交
  9. 22 5月, 2009 1 次提交
  10. 21 5月, 2009 1 次提交
  11. 19 5月, 2009 4 次提交
    • T
      block: set rq->resid_len to blk_rq_bytes() on issue · 5f49f631
      Tejun Heo 提交于
      In commit c3a4d78c, while introducing
      rq->resid_len, the default value of residue count was changed from
      full count to zero.  The conversion was done under the assumption that
      when a request fails residue count wasn't defined.  However, Boaz and
      James pointed out that this wasn't true and the residue count should
      be preserved for failed requests too.
      
      This patchset restores the original behavior by setting rq->resid_len
      to blk_rq_bytes(rq) on request start and restoring explicit clearing
      in affected drivers.  While at it, take advantage of the fact that
      rq->resid_len is set to full count where applicable.
      
      * ide-cd: rq->resid_len cleared on pc success
      
      * mptsas: req->resid_len cleared on success
      
      * sas_expander: rsp/req->resid_len cleared on success
      
      * mpt2sas_transport: req->resid_len cleared on success
      
      * ide-cd, ide-tape, mptsas, sas_host_smp, mpt2sas_transport, ub: take
        advantage of initial full count to simplify code
      
      Boaz Harrosh spotted bug in resid_len initialization.  Fixed as
      suggested.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NBorislav Petkov <petkovbb@googlemail.com>
      Cc: Boaz Harrosh <bharrosh@panasas.com>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: Pete Zaitcev <zaitcev@redhat.com>
      Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Eric Moore <Eric.Moore@lsi.com>
      Cc: Darrick J. Wong <djwong@us.ibm.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      5f49f631
    • T
      ub: use __blk_end_request_all() · 3755100d
      Tejun Heo 提交于
      ub_end_rq() always tries to complete full request.  The @cmd_len
      parameter was there because rq->data_len used to be overwritten with
      residue count.  Drop @cmd_len and use __blk_end_request_all().
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Pete Zaitcev <zaitcev@redhat.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      3755100d
    • I
      xen/blkfront: fix warning when deleting gendisk on unplug/shutdown · 31a14400
      Ian Campbell 提交于
      Currently blkfront gives a warning when hot unplugging due to calling
      del_gendisk() with interrupts disabled (due to blkif_io_lock).
      
      WARNING: at kernel/softirq.c:124 local_bh_enable+0x36/0x84()
      Modules linked in: xenfs xen_netfront ext3 jbd mbcache xen_blkfront
      Pid: 13, comm: xenwatch Not tainted 2.6.29-xs5.5.0.13 #3
      Call Trace:
       [<c012611c>] warn_slowpath+0x80/0xb6
       [<c0104cf1>] xen_sched_clock+0x16/0x63
       [<c0104710>] xen_force_evtchn_callback+0xc/0x10
       [<c0104e32>] check_events+0x8/0xe
       [<c0104d9b>] xen_restore_fl_direct_end+0x0/0x1
       [<c0103749>] xen_mc_flush+0x10a/0x13f
       [<c0105bd2>] __switch_to+0x114/0x14e
       [<c011d92b>] dequeue_task+0x62/0x70
       [<c0123b6f>] finish_task_switch+0x2b/0x84
       [<c0299877>] schedule+0x66d/0x6e7
       [<c0104710>] xen_force_evtchn_callback+0xc/0x10
       [<c0104710>] xen_force_evtchn_callback+0xc/0x10
       [<c012a642>] local_bh_enable+0x36/0x84
       [<c022f9a7>] sk_filter+0x57/0x5c
       [<c0233dae>] netlink_broadcast+0x1d5/0x315
       [<c01c6371>] kobject_uevent_env+0x28d/0x331
       [<c01e7ead>] device_del+0x10f/0x120
       [<c01e7ec6>] device_unregister+0x8/0x10
       [<c015f86d>] bdi_unregister+0x2d/0x39
       [<c01bf6f4>] unlink_gendisk+0x23/0x3e
       [<c01ac946>] del_gendisk+0x7b/0xe7
       [<d0828c19>] blkfront_closing+0x28/0x6e [xen_blkfront]
       [<d082900c>] backend_changed+0x3ad/0x41d [xen_blkfront]
      
      We can fix this by calling del_gendisk() later in blkfront_closing, after
      releasing blkif_io_lock. Since the queue is stopped during the interrupts
      disabled phase I don't think there is any danger of an event occuring between
      releasing the blkif_io_lock and deleting the disk.
      Signed-off-by: NIan Campbell <ian.campbell@citrix.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      31a14400
    • I
      xen/blkfront: allow xenbus state transition to Closing->Closed when not Connected · 28afea5b
      Ian Campbell 提交于
      This situation can occur when attempting to attach a block device whose
      backend is an empty physical CD-ROM driver. The backend in this case
      will go directly from the Initialising state to Closing->Closed.
      Previously this would result in a NULL pointer deref on info->gd
      (xenbus_dev_fatal does not return as a1a15ac5 seems to expect)
      
      Cc: stable@kernel.org
      Signed-off-by: NIan Campbell <ian.campbell@citrix.com>
      Acked-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      28afea5b
  12. 18 5月, 2009 3 次提交
  13. 11 5月, 2009 7 次提交
    • M
      splice: implement default splice_read method · 6818173b
      Miklos Szeredi 提交于
      If f_op->splice_read() is not implemented, fall back to a plain read.
      Use vfs_readv() to read into previously allocated pages.
      
      This will allow splice and functions using splice, such as the loop
      device, to work on all filesystems.  This includes "direct_io" files
      in fuse which bypass the page cache.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      6818173b
    • T
      block: implement and enforce request peek/start/fetch · 9934c8c0
      Tejun Heo 提交于
      Till now block layer allowed two separate modes of request execution.
      A request is always acquired from the request queue via
      elv_next_request().  After that, drivers are free to either dequeue it
      or process it without dequeueing.  Dequeue allows elv_next_request()
      to return the next request so that multiple requests can be in flight.
      
      Executing requests without dequeueing has its merits mostly in
      allowing drivers for simpler devices which can't do sg to deal with
      segments only without considering request boundary.  However, the
      benefit this brings is dubious and declining while the cost of the API
      ambiguity is increasing.  Segment based drivers are usually for very
      old or limited devices and as converting to dequeueing model isn't
      difficult, it doesn't justify the API overhead it puts on block layer
      and its more modern users.
      
      Previous patches converted all block low level drivers to dequeueing
      model.  This patch completes the API transition by...
      
      * renaming elv_next_request() to blk_peek_request()
      
      * renaming blkdev_dequeue_request() to blk_start_request()
      
      * adding blk_fetch_request() which is combination of peek and start
      
      * disallowing completion of queued (not started) requests
      
      * applying new API to all LLDs
      
      Renamings are for consistency and to break out of tree code so that
      it's apparent that out of tree drivers need updating.
      
      [ Impact: block request issue API cleanup, no functional change ]
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: Mike Miller <mike.miller@hp.com>
      Cc: unsik Kim <donari75@gmail.com>
      Cc: Paul Clements <paul.clements@steeleye.com>
      Cc: Tim Waugh <tim@cyberelk.net>
      Cc: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Laurent Vivier <Laurent@lvivier.info>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: Adrian McMenamin <adrian@mcmen.demon.co.uk>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      Cc: Borislav Petkov <petkovbb@googlemail.com>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Alex Dubov <oakad@yahoo.com>
      Cc: Pierre Ossman <drzeus@drzeus.cx>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Markus Lidel <Markus.Lidel@shadowconnect.com>
      Cc: Stefan Weinhuber <wein@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Pete Zaitcev <zaitcev@redhat.com>
      Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      9934c8c0
    • T
      block: convert to dequeueing model (easy ones) · 296b2f6a
      Tejun Heo 提交于
      plat-omap/mailbox, floppy, viocd, mspro_block, i2o_block and
      mmc/card/queue are already pretty close to dequeueing model and can be
      converted with simple changes.  Convert them.
      
      While at it,
      
      * xen-blkfront: !fs check moved downwards to share dequeue call with
        normal path.
      
      * mspro_block: __blk_end_request(..., blk_rq_cur_byte()) converted to
        __blk_end_request_cur()
      
      * mmc/card/queue: loop of __blk_end_request() converted to
        __blk_end_request_all()
      
      [ Impact: dequeue in-flight request ]
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Alex Dubov <oakad@yahoo.com>
      Cc: Markus Lidel <Markus.Lidel@shadowconnect.com>
      Cc: Pierre Ossman <drzeus@drzeus.cx>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      296b2f6a
    • T
      z2ram: dequeue in-flight request · fb3ac7f6
      Tejun Heo 提交于
      z2ram processes requests one-by-one synchronously and can be easily
      converted to dequeueing model.  Convert it.
      
      [ Impact: dequeue in-flight request ]
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      fb3ac7f6
    • T
      xd: dequeue in-flight request · bab2a807
      Tejun Heo 提交于
      xd processes requests one-by-one synchronously and can be easily
      converted to dequeueing model.  Convert it.
      
      While at it, use rq_cur_bytes instead of rq_bytes when checking for
      sector overflow.  This is for for consistency and better behavior for
      merged requests.
      
      [ Impact: dequeue in-flight request ]
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      bab2a807
    • T
      swim: dequeue in-flight request · 06b0608e
      Tejun Heo 提交于
      swim processes requests one-by-one synchronously and can easily be
      converted to dequeuing model.  Convert it.
      
      [ Impact: dequeue in-flight request ]
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Laurent Vivier <Laurent@lvivier.info>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      06b0608e
    • T
      amiflop: dequeue in-flight request · 9e31bebe
      Tejun Heo 提交于
      Request processing in amiflop is done sequentially in
      redo_fd_request() proper and redo_fd_request() can easily be converted
      to track in-flight request.  Remove CURRENT, track in-flight request
      directly and dequeue it when processing starts.
      
      [ Impact: dequeue in-flight request ]
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      9e31bebe