<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/block/blk-core.c, branch linux-2.6.35.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.35.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.35.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2011-08-01T20:55:00Z</updated>
<entry>
<title>fix crash in scsi_dispatch_cmd()</title>
<updated>2011-08-01T20:55:00Z</updated>
<author>
<name>James Bottomley</name>
</author>
<published>2011-07-07T20:45:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=300896911157016b30ea6f2de8705b675441e76a'/>
<id>urn:sha1:300896911157016b30ea6f2de8705b675441e76a</id>
<content type='text'>
[ upstream commit bfe159a51203c15d23cb3158fffdc25ec4b4dda1 ]

USB surprise removal of sr is triggering an oops in
scsi_dispatch_command().  What seems to be happening is that USB is
hanging on to a queue reference until the last close of the upper
device, so the crash is caused by surprise remove of a mounted CD
followed by attempted unmount.

The problem is that USB doesn't issue its final commands as part of
the SCSI teardown path, but on last close when the block queue is long
gone.  The long term fix is probably to make sr do the teardown in the
same way as sd (so remove all the lower bits on ejection, but keep the
upper disk alive until last close of user space).  However, the
current oops can be simply fixed by not allowing any commands to be
sent to a dead queue.

Cc: stable@kernel.org
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;

</content>
</entry>
<entry>
<title>block: export blk_{get,put}_queue()</title>
<updated>2011-08-01T20:54:54Z</updated>
<author>
<name>Jens Axboe</name>
</author>
<published>2011-05-27T05:44:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f253441b14e828b6cb0c8d030d3985738730e5fd'/>
<id>urn:sha1:f253441b14e828b6cb0c8d030d3985738730e5fd</id>
<content type='text'>
commit d86e0e83b32bc84600adb0b6ea1fce389b266682 upstream.

We need them in SCSI to fix a bug, but currently they are not
exported to modules. Export them.

Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;

</content>
</entry>
<entry>
<title>block: Don't count_vm_events for discard bio in submit_bio.</title>
<updated>2010-06-24T06:14:22Z</updated>
<author>
<name>Tao Ma</name>
</author>
<published>2010-06-23T23:43:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1b99973f1c82707e46e8cb9416865a1e955e8f8c'/>
<id>urn:sha1:1b99973f1c82707e46e8cb9416865a1e955e8f8c</id>
<content type='text'>
In submit_bio, we count vm events by check READ/WRITE.
But actually DISCARD_NOBARRIER also has the WRITE flag set.
It looks as if in blkdev_issue_discard, we also add a
page as the payload and the bio_has_data check isn't enough.
So add another check for discard bio.

Signed-off-by: Tao Ma &lt;tao.ma@oracle.com&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>block: fix DISCARD_BARRIER requests</title>
<updated>2010-06-17T08:10:53Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-06-17T07:54:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fbbf055692aeb25c54c49d9ca84532de836fbba0'/>
<id>urn:sha1:fbbf055692aeb25c54c49d9ca84532de836fbba0</id>
<content type='text'>
Filesystems assume that DISCARD_BARRIER are full barriers, so that they
don't have to track in-progress discard operation when submitting new I/O.
But currently we only treat them as elevator barriers, which don't
actually do the nessecary queue drains.

Also remove the unlikely around both the DISCARD and BARRIER requests -
the happen far too often for a static mispredict.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>block: make blk_init_free_list and elevator_init idempotent</title>
<updated>2010-06-04T11:47:06Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2010-05-25T17:15:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1abec4fdbb142e3ccb6ce99832fae42129134a96'/>
<id>urn:sha1:1abec4fdbb142e3ccb6ce99832fae42129134a96</id>
<content type='text'>
blk_init_allocated_queue_node may fail and the caller _could_ retry.
Accommodate the unlikely event that blk_init_allocated_queue_node is
called on an already initialized (possibly partially) request_queue.

Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>block: avoid unconditionally freeing previously allocated request_queue</title>
<updated>2010-06-04T11:47:06Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2010-06-03T17:34:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c86d1b8ae622e1ea5d20e98bd72fbd7d9dd69016'/>
<id>urn:sha1:c86d1b8ae622e1ea5d20e98bd72fbd7d9dd69016</id>
<content type='text'>
On blk_init_allocated_queue_node failure, only free the request_queue if
it is wasn't previously allocated outside the block layer
(e.g. blk_init_queue_node was blk_init_allocated_queue_node caller).

This addresses an interface bug introduced by the following commit:
01effb0 block: allow initialization of previously allocated
request_queue

Otherwise the request_queue may be free'd out from underneath a caller
that is managing the request_queue directly (e.g. caller uses
blk_alloc_queue + blk_init_allocated_queue_node).

Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>block: allow initialization of previously allocated request_queue</title>
<updated>2010-05-11T06:57:42Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2010-05-11T06:57:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=01effb0dc1451fad55925873ffbfb88fa4eadce0'/>
<id>urn:sha1:01effb0dc1451fad55925873ffbfb88fa4eadce0</id>
<content type='text'>
blk_init_queue() allocates the request_queue structure and then
initializes it as needed (request_fn, elevator, etc).

Split initialization out to blk_init_allocated_queue_node.
Introduce blk_init_allocated_queue wrapper function to model existing
blk_init_queue and blk_init_queue_node interfaces.

Export elv_register_queue to allow a newly added elevator to be
registered with sysfs.  Export elv_unregister_queue for symmetry.

These changes allow DM to initialize a device's request_queue with more
precision.  In particular, DM no longer unconditionally initializes a
full request_queue (elevator et al).  It only does so for a
request-based DM device.

Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>blkio: Add io_merged stat</title>
<updated>2010-04-09T06:36:07Z</updated>
<author>
<name>Divyesh Shah</name>
</author>
<published>2010-04-09T04:14:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=812d402648f4fc1ab1091b2172a46fc1b367c724'/>
<id>urn:sha1:812d402648f4fc1ab1091b2172a46fc1b367c724</id>
<content type='text'>
This includes both the number of bios merged into requests belonging to this
cgroup as well as the number of requests merged together.
In the past, we've observed different merging behavior across upstream kernels,
some by design some actual bugs. This stat helps a lot in debugging such
problems when applications report decreased throughput with a new kernel
version.

This needed adding an extra elevator function to capture bios being merged as I
did not want to pollute elevator code with blkiocg knowledge and hence needed
the accounting invocation to come from CFQ.

Signed-off-by: Divyesh Shah&lt;dpshah@google.com&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>laptop-mode: Make flushes per-device</title>
<updated>2010-04-06T12:25:14Z</updated>
<author>
<name>Matthew Garrett</name>
</author>
<published>2010-04-06T12:25:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=31373d09da5b7fe21fe6f781e92bd534a3495f00'/>
<id>urn:sha1:31373d09da5b7fe21fe6f781e92bd534a3495f00</id>
<content type='text'>
One of the features of laptop-mode is that it forces a writeout of dirty
pages if something else triggers a physical read or write from a device.
The current implementation flushes pages on all devices, rather than only
the one that triggered the flush. This patch alters the behaviour so that
only the recently accessed block device is flushed, preventing other
disks being spun up for no terribly good reason.

Signed-off-by: Matthew Garrett &lt;mjg@redhat.com&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>blkio: Increment the blkio cgroup stats for real now</title>
<updated>2010-04-02T06:44:37Z</updated>
<author>
<name>Divyesh Shah</name>
</author>
<published>2010-04-01T22:01:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9195291e5f05e01d67f9a09c756b8aca8f009089'/>
<id>urn:sha1:9195291e5f05e01d67f9a09c756b8aca8f009089</id>
<content type='text'>
We also add start_time_ns and io_start_time_ns fields to struct request
here to record the time when a request is created and when it is
dispatched to device. We use ns uints here as ms and jiffies are
not very useful for non-rotational media.

Signed-off-by: Divyesh Shah&lt;dpshah@google.com&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
</feed>
