<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/block/paride/pf.c, branch v3.0.6</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/block/paride/pf.c?h=v3.0.6</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/block/paride/pf.c?h=v3.0.6'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-04-21T19:33:05Z</updated>
<entry>
<title>block: unexport DISK_EVENT_MEDIA_CHANGE for legacy/fringe drivers</title>
<updated>2011-04-21T19:33:05Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-04-21T19:32:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9fd097b14918875bd6f125ed699d7bbbba5893ee'/>
<id>urn:sha1:9fd097b14918875bd6f125ed699d7bbbba5893ee</id>
<content type='text'>
In-kernel disk event polling doesn't matter for legacy/fringe drivers
and may lead to infinite event loop if -&gt;check_events() implementation
generates events on level condition instead of edge.

Now that block layer supports suppressing exporting unlisted events,
simply leaving disk-&gt;events cleared allows these drivers to keep the
internal revalidation behavior intact while avoiding weird
interactions with userland event handler.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Kay Sievers &lt;kay.sievers@vrfy.org&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>paride: Convert to bdops-&gt;check_events()</title>
<updated>2011-03-09T18:54:28Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-03-09T18:54:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b1b56b93f331bd61492fdb99e7986f7a528ca730'/>
<id>urn:sha1:b1b56b93f331bd61492fdb99e7986f7a528ca730</id>
<content type='text'>
Convert paride drivers from -&gt;media_changed() to -&gt;check_events().

pcd and pd buffer and clear events after reporting; however, pf
unconditionally reports MEDIA_CHANGE and will generate spurious events
when polled.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Jens Axboe &lt;axboe@kernel.dk&gt;
Cc: Kay Sievers &lt;kay.sievers@vrfy.org&gt;
Cc: Tim Waugh &lt;tim@cyberelk.net&gt;
</content>
</entry>
<entry>
<title>block: autoconvert trivial BKL users to private mutex</title>
<updated>2010-10-05T13:01:10Z</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2010-06-02T12:28:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2a48fc0ab24241755dc93bfd4f01d68efab47f5a'/>
<id>urn:sha1:2a48fc0ab24241755dc93bfd4f01d68efab47f5a</id>
<content type='text'>
The block device drivers have all gained new lock_kernel
calls from a recent pushdown, and some of the drivers
were already using the BKL before.

This turns the BKL into a set of per-driver mutexes.
Still need to check whether this is safe to do.

file=$1
name=$2
if grep -q lock_kernel ${file} ; then
    if grep -q 'include.*linux.mutex.h' ${file} ; then
            sed -i '/include.*&lt;linux\/smp_lock.h&gt;/d' ${file}
    else
            sed -i 's/include.*&lt;linux\/smp_lock.h&gt;.*$/include &lt;linux\/mutex.h&gt;/g' ${file}
    fi
    sed -i ${file} \
        -e "/^#include.*linux.mutex.h/,$ {
                1,/^\(static\|int\|long\)/ {
                     /^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex);

} }"  \
    -e "s/\(un\)*lock_kernel\&gt;[ ]*()/mutex_\1lock(\&amp;${name}_mutex)/g" \
    -e '/[      ]*cycle_kernel_lock();/d'
else
    sed -i -e '/include.*\&lt;smp_lock.h\&gt;/d' ${file}  \
                -e '/cycle_kernel_lock()/d'
fi

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
</entry>
<entry>
<title>block: push down BKL into .open and .release</title>
<updated>2010-08-07T16:25:34Z</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2010-08-07T16:25:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6e9624b8caec290d28b4c6d9ec75749df6372b87'/>
<id>urn:sha1:6e9624b8caec290d28b4c6d9ec75749df6372b87</id>
<content type='text'>
The open and release block_device_operations are currently
called with the BKL held. In order to change that, we must
first make sure that all drivers that currently rely
on this have no regressions.

This blindly pushes the BKL into all .open and .release
operations for all block drivers to prepare for the
next step. The drivers can subsequently replace the BKL
with their own locks or remove it completely when it can
be shown that it is not needed.

The functions blkdev_get and blkdev_put are the only
remaining users of the big kernel lock in the block
layer, besides a few uses in the ioctl code, none
of which need to serialize with blkdev_{get,put}.

Most of these two functions is also under the protection
of bdev-&gt;bd_mutex, including the actual calls to
-&gt;open and -&gt;release, and the common code does not
access any global data structures that need the BKL.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Acked-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>block: push down BKL into .locked_ioctl</title>
<updated>2010-08-07T16:25:00Z</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2010-07-08T08:18:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8a6cfeb6deca3a8fefd639d898b0d163c0b5d368'/>
<id>urn:sha1:8a6cfeb6deca3a8fefd639d898b0d163c0b5d368</id>
<content type='text'>
As a preparation for the removal of the big kernel
lock in the block layer, this removes the BKL
from the common ioctl handling code, moving it
into every single driver still using it.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Acked-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>paride: fix off-by-one test</title>
<updated>2010-03-12T09:03:42Z</updated>
<author>
<name>Roel Kluin</name>
<email>roel.kluin@gmail.com</email>
</author>
<published>2010-03-11T22:09:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c12ec0a2d94001003dfb929ce14c287fca0522b0'/>
<id>urn:sha1:c12ec0a2d94001003dfb929ce14c287fca0522b0</id>
<content type='text'>
With `while (j++ &lt; PX_SPIN)' j reaches PX_SPIN + 1 after the loop.  This
is probably unlikely to produce a problem.

Signed-off-by: Roel Kluin &lt;roel.kluin@gmail.com&gt;
Cc: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>block: Consolidate phys_segment and hw_segment limits</title>
<updated>2010-02-26T12:58:08Z</updated>
<author>
<name>Martin K. Petersen</name>
<email>martin.petersen@oracle.com</email>
</author>
<published>2010-02-26T05:20:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8a78362c4eefc1deddbefe2c7f38aabbc2429d6b'/>
<id>urn:sha1:8a78362c4eefc1deddbefe2c7f38aabbc2429d6b</id>
<content type='text'>
Except for SCSI no device drivers distinguish between physical and
hardware segment limits.  Consolidate the two into a single segment
limit.

Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>const: make block_device_operations const</title>
<updated>2009-09-22T14:17:25Z</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-09-22T00:01:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=83d5cde47dedf01b6a4a4331882cbc0a7eea3c2e'/>
<id>urn:sha1:83d5cde47dedf01b6a4a4331882cbc0a7eea3c2e</id>
<content type='text'>
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>block: implement and enforce request peek/start/fetch</title>
<updated>2009-05-11T07:52:18Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2009-05-08T02:54:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9934c8c04561413609d2bc38c6b9f268cba774a4'/>
<id>urn:sha1:9934c8c04561413609d2bc38c6b9f268cba774a4</id>
<content type='text'>
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: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: James Bottomley &lt;James.Bottomley@HansenPartnership.com&gt;
Cc: Mike Miller &lt;mike.miller@hp.com&gt;
Cc: unsik Kim &lt;donari75@gmail.com&gt;
Cc: Paul Clements &lt;paul.clements@steeleye.com&gt;
Cc: Tim Waugh &lt;tim@cyberelk.net&gt;
Cc: Geert Uytterhoeven &lt;Geert.Uytterhoeven@sonycom.com&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Laurent Vivier &lt;Laurent@lvivier.info&gt;
Cc: Jeff Garzik &lt;jgarzik@pobox.com&gt;
Cc: Jeremy Fitzhardinge &lt;jeremy@xensource.com&gt;
Cc: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Cc: Adrian McMenamin &lt;adrian@mcmen.demon.co.uk&gt;
Cc: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;
Cc: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
Cc: Borislav Petkov &lt;petkovbb@googlemail.com&gt;
Cc: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Cc: Alex Dubov &lt;oakad@yahoo.com&gt;
Cc: Pierre Ossman &lt;drzeus@drzeus.cx&gt;
Cc: David Woodhouse &lt;dwmw2@infradead.org&gt;
Cc: Markus Lidel &lt;Markus.Lidel@shadowconnect.com&gt;
Cc: Stefan Weinhuber &lt;wein@de.ibm.com&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Pete Zaitcev &lt;zaitcev@redhat.com&gt;
Cc: FUJITA Tomonori &lt;fujita.tomonori@lab.ntt.co.jp&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>paride: dequeue in-flight request</title>
<updated>2009-05-11T07:52:16Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2009-05-08T02:54:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b12d4f82c1a3cdcb2441c803a3368a9426f2f47f'/>
<id>urn:sha1:b12d4f82c1a3cdcb2441c803a3368a9426f2f47f</id>
<content type='text'>
pd/pf/pcd have track in-flight request by pd/pf/pcd_req.  They can be
converted to dequeueing model by updating fetching and completion
paths.  Convert them.

Note that removal of elv_next_request() call from pf_next_buf()
doesn't make any functional difference.  The path is traveled only
during partial completion of a request and elv_next_request() call
must return the same request anyway.

[ Impact: dequeue in-flight request ]

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Tim Waugh &lt;tim@cyberelk.net&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
</feed>
