<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/block, branch v3.5</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.5</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.5'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2012-07-18T04:30:31Z</updated>
<entry>
<title>rbd: endian bug in rbd_req_cb()</title>
<updated>2012-07-18T04:30:31Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2012-06-06T14:15:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6a3ca4f18873f950895cb64ddefafb51a732e3f7'/>
<id>urn:sha1:6a3ca4f18873f950895cb64ddefafb51a732e3f7</id>
<content type='text'>
Sparse complains about this because:
drivers/block/rbd.c:996:20: warning: cast to restricted __le32
drivers/block/rbd.c:996:20: warning: cast from restricted __le16

These are set in osd_req_encode_op() and they are le16.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Reviewed-by: Alex Elder &lt;elder@inktank.com&gt;
(cherry picked from commit 895cfcc810e53d7d36639969c71efb9087221167)
</content>
</entry>
<entry>
<title>rbd: Fix ceph_snap_context size calculation</title>
<updated>2012-07-18T04:30:19Z</updated>
<author>
<name>Yan, Zheng</name>
<email>zheng.z.yan@intel.com</email>
</author>
<published>2012-06-06T14:15:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=236df3755d944c33120d77e84b5ff6f3917eb307'/>
<id>urn:sha1:236df3755d944c33120d77e84b5ff6f3917eb307</id>
<content type='text'>
ceph_snap_context-&gt;snaps is an u64 array

Signed-off-by: Zheng Yan &lt;zheng.z.yan@intel.com&gt;
Reviewed-by: Alex Elder &lt;elder@inktank.com&gt;
(cherry picked from commit f9f9a1904467816452fc70740165030e84c2c659)
</content>
</entry>
<entry>
<title>blk: fix wrong idr_pre_get() error check in loop.c</title>
<updated>2012-07-14T22:39:58Z</updated>
<author>
<name>Silva Paulo</name>
<email>psdasilva@yahoo.com</email>
</author>
<published>2012-07-14T22:39:58Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=68d740d79c4977a1a2197c6e68c618c8320c8ace'/>
<id>urn:sha1:68d740d79c4977a1a2197c6e68c618c8320c8ace</id>
<content type='text'>
The idr_pre_get() function never returns a value &lt; 0.  It returns 0 (no
memory) or 1 (OK).

Reported-by: Silva Paulo &lt;psdasilva@yahoo.com&gt;
[ Rewrote Silva's patch, but attributing it to Silva anyway  - Linus ]
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>floppy: cancel any pending fd_timeouts before adding a new one</title>
<updated>2012-07-03T22:51:22Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-07-03T22:51:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=dab058fd5ff834cb3b9de1d930ce731a605eb0c6'/>
<id>urn:sha1:dab058fd5ff834cb3b9de1d930ce731a605eb0c6</id>
<content type='text'>
In commit 070ad7e793dc ("floppy: convert to delayed work and
single-thread wq") the 'fd_timeout' timer was converted to a delayed
work.  However, the "del_timer(&amp;fd_timeout)" was lost in the process,
and any previous pending timeouts would stay active when we then
re-queued the timeout.

This resulted in the floppy probe sequence having a (stale) 20s timeout
rather than the intended 3s timeout, and thus made booting with the
floppy driver (but no actual floppy controller) take much longer than it
should.

Of course, there's little reason for most people to compile the floppy
driver into the kernel at all, which is why most people never noticed.

Canceling the delayed work where we used to do the del_timer() fixes the
issue, and makes the floppy probing use the proper new timeout instead.
The three second timeout is still very wasteful, but better than the 20s
one.

Reported-and-tested-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Reported-and-tested-by: Calvin Walton &lt;calvin.walton@kepstin.ca&gt;
Cc: Jiri Kosina &lt;jkosina@suse.cz&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-jens' of git://git.drbd.org/linux-drbd into for-linus</title>
<updated>2012-06-13T19:19:42Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@kernel.dk</email>
</author>
<published>2012-06-13T19:19:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6d407cfaf5a56b3030b9e55d0f542601e173c5d2'/>
<id>urn:sha1:6d407cfaf5a56b3030b9e55d0f542601e173c5d2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'stable/for-jens-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus</title>
<updated>2012-06-13T19:19:06Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@kernel.dk</email>
</author>
<published>2012-06-13T19:19:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=987751719bd38a72dfd29f398dea1a7f3cd5b224'/>
<id>urn:sha1:987751719bd38a72dfd29f398dea1a7f3cd5b224</id>
<content type='text'>
</content>
</entry>
<entry>
<title>umem: fix up unplugging</title>
<updated>2012-06-13T19:17:21Z</updated>
<author>
<name>Tao Guo</name>
<email>glorioustao@gmail.com</email>
</author>
<published>2012-06-13T19:17:21Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=32587371ad3db2f9d335de10dbd8cffd4fff5669'/>
<id>urn:sha1:32587371ad3db2f9d335de10dbd8cffd4fff5669</id>
<content type='text'>
Fix a regression introduced by 7eaceaccab5f40 ("block: remove per-queue
plugging").  In that patch, Jens removed the whole mm_unplug_device()
function, which used to be the trigger to make umem start to work.

We need to implement unplugging to make umem start to work, or I/O will
never be triggered.

Signed-off-by: Tao Guo &lt;Tao.Guo@emc.com&gt;
Cc: Neil Brown &lt;neilb@suse.de&gt;
Cc: Jens Axboe &lt;axboe@kernel.dk&gt;
Cc: Shaohua Li &lt;shli@kernel.org&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Acked-by: NeilBrown &lt;neilb@suse.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>drbd: fix null pointer dereference with on-congestion policy when diskless</title>
<updated>2012-06-12T12:35:19Z</updated>
<author>
<name>Lars Ellenberg</name>
<email>lars.ellenberg@linbit.com</email>
</author>
<published>2012-06-08T12:17:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0d5934e3c258fc5decc4103600c597086fd95a52'/>
<id>urn:sha1:0d5934e3c258fc5decc4103600c597086fd95a52</id>
<content type='text'>
We must not look at mdev-&gt;actlog, unless we have a get_ldev() reference.
It also does not make much sense to try to disconnect or pull-ahead of
the peer, if we don't have good local data.

Only even consider congestion policies, if our local disk is D_UP_TO_DATE.

Signed-off-by: Philipp Reisner &lt;philipp.reisner@linbit.com&gt;
Signed-off-by: Lars Ellenberg &lt;lars.ellenberg@linbit.com&gt;
</content>
</entry>
<entry>
<title>drbd: fix list corruption by failing but already aborted reads</title>
<updated>2012-06-12T12:34:51Z</updated>
<author>
<name>Lars Ellenberg</name>
<email>lars.ellenberg@linbit.com</email>
</author>
<published>2012-06-08T12:09:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1ed25b269e3dd5ecc64f17beef9ea21745c39ca6'/>
<id>urn:sha1:1ed25b269e3dd5ecc64f17beef9ea21745c39ca6</id>
<content type='text'>
If a read is aborted due to force-detach of a supposedly unresponsive
local backing device, and retried on the peer, it can happen that the
local request later still completes (hopefully with an error).
As it may already have been completed to upper layers meanwhile,
it must not be retried again now.

Signed-off-by: Philipp Reisner &lt;philipp.reisner@linbit.com&gt;
Signed-off-by: Lars Ellenberg &lt;lars.ellenberg@linbit.com&gt;
</content>
</entry>
<entry>
<title>drbd: fix access of unallocated pages and kernel panic</title>
<updated>2012-06-12T12:32:48Z</updated>
<author>
<name>Lars Ellenberg</name>
<email>lars.ellenberg@linbit.com</email>
</author>
<published>2012-06-08T11:18:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4eccc579795290a58e2262fa4e9d083d7672e699'/>
<id>urn:sha1:4eccc579795290a58e2262fa4e9d083d7672e699</id>
<content type='text'>
BUG: unable to handle kernel NULL pointer dereference at (null)
...
 [&lt;d1e17561&gt;] ? _drbd_bm_set_bits+0x151/0x240 [drbd]
 [&lt;d1e236f8&gt;] ? receive_bitmap+0x4f8/0xbc0 [drbd]

This fixes an off-by-one error in the receive_bitmap() path,
if run-length encoded bitmap transfer is enabled.

If the bitmap is an exact multiple of PAGE_SIZE, which means the visible
capacity of the drbd device is an exact multiple of 128 MiB (for 4k page
size), and bitmap compression (use-rle) is enabled (which became default
with 8.4), and the very last bit is dirty and reported in an rle
comressed bitmap packet, we ended up trying to kmap_atomic a page pointer
that does not exist (bitmap-&gt;bm_pages[last index + 1]).

bug introduced by:
    Date:   Fri Jul 24 15:33:24 2009 +0200
    set bits: optimize for complete last word, fix off-by-one-word corner case

made effective by:
    Date:   Thu Dec 16 00:32:38 2010 +0100
    drbd: get rid of unused debug code

    Long time ago, we had paranoia code in the bitmap that allocated one
    extra word, assigned a magic value, and checked on every occasion that
    the magic value was still unchanged.

    That debug code is unused, the extra long word complicates code a bit.
    Get rid of it.

No-one triggered this bug in the last few years, because a large subset
of our userbase is unaffected:
 * typically the last few blocks of a device are not modified
   frequently, and remain unset
 * use-rle was disabled by default in drbd &lt; 8.4
 * those with slightly "odd" device sizes, or
 * drbd internal meta data (which will skew the device size slightly,
   thus makes it harder to have a bug relevant device size)

Signed-off-by: Philipp Reisner &lt;philipp.reisner@linbit.com&gt;
Signed-off-by: Lars Ellenberg &lt;lars.ellenberg@linbit.com&gt;
</content>
</entry>
</feed>
