1. 22 9月, 2009 1 次提交
  2. 11 9月, 2009 2 次提交
  3. 24 8月, 2009 1 次提交
  4. 22 6月, 2009 2 次提交
  5. 16 6月, 2009 1 次提交
  6. 12 6月, 2009 2 次提交
  7. 23 5月, 2009 1 次提交
  8. 11 5月, 2009 2 次提交
    • 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 pos and nr_sectors accessors · 83096ebf
      Tejun Heo 提交于
      With recent cleanups, there is no place where low level driver
      directly manipulates request fields.  This means that the 'hard'
      request fields always equal the !hard fields.  Convert all
      rq->sectors, nr_sectors and current_nr_sectors references to
      accessors.
      
      While at it, drop superflous blk_rq_pos() < 0 test in swim.c.
      
      [ Impact: use pos and nr_sectors accessors ]
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
      Tested-by: NGrant Likely <grant.likely@secretlab.ca>
      Acked-by: NGrant Likely <grant.likely@secretlab.ca>
      Tested-by: NAdrian McMenamin <adrian@mcmen.demon.co.uk>
      Acked-by: NAdrian McMenamin <adrian@mcmen.demon.co.uk>
      Acked-by: NMike Miller <mike.miller@hp.com>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      Cc: Borislav Petkov <petkovbb@googlemail.com>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Eric Moore <Eric.Moore@lsi.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Pete Zaitcev <zaitcev@redhat.com>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Paul Clements <paul.clements@steeleye.com>
      Cc: Tim Waugh <tim@cyberelk.net>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
      Cc: Alex Dubov <oakad@yahoo.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Dario Ballabio <ballabio_dario@emc.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: unsik Kim <donari75@gmail.com>
      Cc: Laurent Vivier <Laurent@lvivier.info>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      83096ebf
  9. 28 4月, 2009 1 次提交
    • T
      block: implement and use [__]blk_end_request_all() · 40cbbb78
      Tejun Heo 提交于
      There are many [__]blk_end_request() call sites which call it with
      full request length and expect full completion.  Many of them ensure
      that the request actually completes by doing BUG_ON() the return
      value, which is awkward and error-prone.
      
      This patch adds [__]blk_end_request_all() which takes @rq and @error
      and fully completes the request.  BUG_ON() is added to to ensure that
      this actually happens.
      
      Most conversions are simple but there are a few noteworthy ones.
      
      * cdrom/viocd: viocd_end_request() replaced with direct calls to
        __blk_end_request_all().
      
      * s390/block/dasd: dasd_end_request() replaced with direct calls to
        __blk_end_request_all().
      
      * s390/char/tape_block: tapeblock_end_request() replaced with direct
        calls to blk_end_request_all().
      
      [ Impact: cleanup ]
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Mike Miller <mike.miller@hp.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
      Cc: Alex Dubov <oakad@yahoo.com>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      40cbbb78
  10. 14 4月, 2009 1 次提交
  11. 01 4月, 2009 1 次提交
  12. 26 3月, 2009 3 次提交
  13. 11 2月, 2009 1 次提交
    • S
      [S390] dasd: fix race in dasd timer handling · 48cae885
      Stefan Weinhuber 提交于
      In dasd_device_set_timer and dasd_block_set_timer we interpret the
      return value of mod_timer in a wrong way. If the timer expires in
      the small window between our check of timer_pending and the call to
      mod_timer, then the timer will be set, mod_timer returns zero and
      we will call add_timer for a timer that is already pending.
      As del_timer and mod_timer do all the necessary checking themselves,
      we can simplify our code and remove the race a the same time.
      Signed-off-by: NStefan Weinhuber <wein@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      48cae885
  14. 09 1月, 2009 1 次提交
  15. 25 12月, 2008 1 次提交
  16. 15 11月, 2008 1 次提交
  17. 21 10月, 2008 2 次提交
    • A
      [PATCH] switch dasd · 57a7c0bc
      Al Viro 提交于
      ->compat_ioctl() actually had been useless here; generic
      logics works fine.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      57a7c0bc
    • A
      [PATCH] beginning of methods conversion · d4430d62
      Al Viro 提交于
      To keep the size of changesets sane we split the switch by drivers;
      to keep the damn thing bisectable we do the following:
      	1) rename the affected methods, add ones with correct
      prototypes, make (few) callers handle both.  That's this changeset.
      	2) for each driver convert to new methods.  *ALL* drivers
      are converted in this series.
      	3) kill the old (renamed) methods.
      
      Note that it _is_ a flagday; all in-tree drivers are converted and by the
      end of this series no trace of old methods remain.  The only reason why
      we do that this way is to keep the damn thing bisectable and allow per-driver
      debugging if anything goes wrong.
      
      New methods:
      	open(bdev, mode)
      	release(disk, mode)
      	ioctl(bdev, mode, cmd, arg)		/* Called without BKL */
      	compat_ioctl(bdev, mode, cmd, arg)
      	locked_ioctl(bdev, mode, cmd, arg)	/* Called with BKL, legacy */
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      d4430d62
  18. 11 10月, 2008 1 次提交
  19. 22 8月, 2008 1 次提交
  20. 14 7月, 2008 1 次提交
  21. 30 5月, 2008 1 次提交
  22. 15 5月, 2008 1 次提交
  23. 17 4月, 2008 3 次提交
    • H
      [S390] Fix a lot of sparse warnings. · a806170e
      Heiko Carstens 提交于
      Most noteable part of this commit is the new local header file entry.h
      which contains all the function declarations of functions that get only
      called from asm code or are arch internal. That way we can avoid extern
      declarations in C files.
      This is more or less the same that was done for sparc64.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      a806170e
    • H
      [S390] replace remaining __FUNCTION__ occurrences · 2a2cf6b1
      Harvey Harrison 提交于
      __FUNCTION__ is gcc-specific, use __func__
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      2a2cf6b1
    • J
      [S390] dasd: fix double elevator_exit call when deadline iosched fails to load · 08a8a0c5
      Josef 'Jeff' Sipek 提交于
      I compiled the kernel without deadline, and the dasd code exits the old
      scheduler (CFQ), fails to load the new one (deadline), and then things just
      hang - with one of these (sorry about the weird chars - I copy & pasted it
      from a 3270 console):
      
      dasd(eckd): 0.0.0151: 3390/0A(CU:3990/01) Cyl:3338 Head:15 Sec:224
      ------------ cut here ------------
      Badness at kernel/mutex.c:134
      Modules linked in: dasd_eckd_mod dasd_mod
      CPU: 0 Not tainted 2.6.25-rc3 #9
      Process exe (pid: 538, task: 000000000d172000, ksp: 000000000d21ef88)
      Krnl PSW : 0404000180000000 000000000022fb5c (mutex_lock_nested+0x2a4/0x2cc)
                 R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0 EA:3
      Krnl GPRS: 0000000000024218 000000000076fc78 0000000000000000 000000000000000f
                 000000000022f92e 0000000000449898 000000000f921c00 000003e000162590
                 00000000001539c4 000000000d172000 070000007fffffff 000000000d21f400
                 000000000f8f2560 00000000002413f8 000000000022fb44 000000000d21f400
      Krnl Code: 000000000022fb50: bf2f1000           icm     %r2,15,0(%r1)
                 000000000022fb54: a774fef6           brc     7,22f940
                 000000000022fb58: a7f40001           brc     15,22fb5a
                >000000000022fb5c: a7f4fef2           brc     15,22f940
                 000000000022fb60: c0e5fffa112a       brasl   %r14,171db4
                 000000000022fb66: 1222               ltr     %r2,%r2
                 000000000022fb68: a784fedb           brc     8,22f91e
                 000000000022fb6c: c010002a0086       larl    %r1,76fc78
      Call Trace:
      (<000000000022f92e> mutex_lock_nested+0x76/0x2cc)
       <00000000001539c4> elevator_exit+0x38/0x80
       <0000000000156ffe> blk_cleanup_queue+0x62/0x7c
       <000003e0001d5414> dasd_change_state+0xe0/0x8ec
       <000003e0001d5cae> dasd_set_target_state+0x8e/0x9c
       <000003e0001d5f74> dasd_generic_set_online+0x160/0x284
       <000003e00011e83a> dasd_eckd_set_online+0x2e/0x40
       <0000000000199bf4> ccw_device_set_online+0x170/0x2c0
       <0000000000199d9e> online_store_recog_and_online+0x5a/0x14c
       <000000000019a08a> online_store+0xbe/0x2ec
       <000000000018456c> dev_attr_store+0x38/0x58
       <000000000010efbc> sysfs_write_file+0x130/0x190
       <00000000000af582> vfs_write+0xb2/0x160
       <00000000000afc7c> sys_write+0x54/0x9c
       <0000000000025e16> sys32_write+0x2e/0x50
       <0000000000024218> sysc_noemu+0x10/0x16
       <0000000077e82bd2> 0x77e82bd2
      
      Set elevator pointer to NULL in order to avoid double elevator_exit
      calls when elevator_init call for deadline iosched fails.
      Also make sure the dasd device driver depends on IOSCHED_DEADLINE so
      the default IO scheduler of the dasd driver is present.
      Signed-off-by: NJosef 'Jeff' Sipek <jeffpc@josefsipek.net>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      08a8a0c5
  24. 19 2月, 2008 1 次提交
  25. 05 2月, 2008 2 次提交
  26. 28 1月, 2008 1 次提交
  27. 26 1月, 2008 4 次提交