<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/block, branch v3.4.26</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/block?h=v3.4.26</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/block?h=v3.4.26'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-01-17T16:51:21Z</updated>
<entry>
<title>rbd: do not allow remove of mounted-on image</title>
<updated>2013-01-17T16:51:21Z</updated>
<author>
<name>Alex Elder</name>
<email>elder@inktank.com</email>
</author>
<published>2012-11-16T15:29:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3317122449a2ce5c0bba77e1f05b1df2ff716447'/>
<id>urn:sha1:3317122449a2ce5c0bba77e1f05b1df2ff716447</id>
<content type='text'>
There is no check in rbd_remove() to see if anybody holds open the
image being removed.  That's not cool.

Add a simple open count that goes up and down with opens and closes
(releases) of the device, and don't allow an rbd image to be removed
if the count is non-zero.

Protect the updates of the open count value with ctl_mutex to ensure
the underlying rbd device doesn't get removed while concurrently
being opened.

Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
(based on commit 42382b709bd1d143b9f0fa93e0a3a1f2f4210707)
</content>
</entry>
<entry>
<title>rbd: fix bug in rbd_dev_id_put()</title>
<updated>2013-01-17T16:51:20Z</updated>
<author>
<name>Alex Elder</name>
<email>elder@inktank.com</email>
</author>
<published>2012-10-11T04:19:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1e411c66732294f5fb983323dafa7559796481f5'/>
<id>urn:sha1:1e411c66732294f5fb983323dafa7559796481f5</id>
<content type='text'>
In rbd_dev_id_put(), there's a loop that's intended to determine
the maximum device id in use.  But it isn't doing that at all,
the effect of how it's written is to simply use the just-put id
number, which ignores whole purpose of this function.

Fix the bug.

Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Josh Durgin &lt;josh.durgin@inktank.com&gt;
(cherry picked from commit b213e0b1a62637b2a9395a34349b13d73ca2b90a)
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>rbd: BUG on invalid layout</title>
<updated>2013-01-17T16:51:20Z</updated>
<author>
<name>Sage Weil</name>
<email>sage@inktank.com</email>
</author>
<published>2012-09-25T04:02:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f2ac87daff2e4a8c9fb8119a8e4badaac684a284'/>
<id>urn:sha1:f2ac87daff2e4a8c9fb8119a8e4badaac684a284</id>
<content type='text'>
This shouldn't actually be possible because the layout struct is
constructed from the RBD header and validated then.

[elder@inktank.com: converted BUG() call to equivalent rbd_assert()]

Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
Reviewed-by: Alex Elder &lt;elder@inktank.com&gt;
(based on commit 6cae3717cddaf8e5e96e304733dca66e40d56f89)
</content>
</entry>
<entry>
<title>rbd: kill notify_timeout option</title>
<updated>2013-01-17T16:51:20Z</updated>
<author>
<name>Alex Elder</name>
<email>elder@inktank.com</email>
</author>
<published>2012-08-10T20:12:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=87c7f759d1546a27d46d8cc2778ffecaa5f542c6'/>
<id>urn:sha1:87c7f759d1546a27d46d8cc2778ffecaa5f542c6</id>
<content type='text'>
The "notify_timeout" rbd device option is never used, so get rid of
it.

Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Yehuda Sadeh &lt;yehuda@inktank.com&gt;
(cherry picked from commit 84d34dcc116e117a41c6fc8be13430529fc2d9e7)
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>rbd: add read_only rbd map option</title>
<updated>2013-01-17T16:51:20Z</updated>
<author>
<name>Alex Elder</name>
<email>elder@inktank.com</email>
</author>
<published>2012-08-10T20:12:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5833a9132795681510a7dbd952696960763dc736'/>
<id>urn:sha1:5833a9132795681510a7dbd952696960763dc736</id>
<content type='text'>
Add the ability to map an rbd image read-only, by specifying either
"read_only" or "ro" as an option on the rbd "command line."  Also
allow the inverse to be explicitly specified using "read_write" or
"rw".

Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Yehuda Sadeh &lt;yehuda@inktank.com&gt;
(based on commit cc0538b62c839c2df7b9f8378bb37e3b35faa608)
</content>
</entry>
<entry>
<title>rbd: kill create_snap sysfs entry</title>
<updated>2013-01-17T16:51:20Z</updated>
<author>
<name>Alex Elder</name>
<email>elder@inktank.com</email>
</author>
<published>2012-08-10T20:12:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e4a4a559d2ba0d50059a85967b4c4c707863a65b'/>
<id>urn:sha1:e4a4a559d2ba0d50059a85967b4c4c707863a65b</id>
<content type='text'>
Josh proposed the following change, and I don't think I could
explain it any better than he did:

    From: Josh Durgin &lt;josh.durgin@inktank.com&gt;
    Date: Tue, 24 Jul 2012 14:22:11 -0700
    To: ceph-devel &lt;ceph-devel@vger.kernel.org&gt;
    Message-ID: &lt;500F1203.9050605@inktank.com&gt;
    From: Josh Durgin &lt;josh.durgin@inktank.com&gt;


    Right now the kernel still has one piece of rbd management
    duplicated from the rbd command line tool: snapshot creation.
    There's nothing special about snapshot creation that makes it
    advantageous to do from the kernel, so I'd like to remove the
    create_snap sysfs interface.  That is,
	/sys/bus/rbd/devices/&lt;id&gt;/create_snap
    would be removed.

    Does anyone rely on the sysfs interface for creating rbd
    snapshots?  If so, how hard would it be to replace with:

	rbd snap create pool/image@snap

    Is there any benefit to the sysfs interface that I'm missing?

    Josh

This patch implements this proposal, removing the code that
implements the "snap_create" sysfs interface for rbd images.
As a result, quite a lot of other supporting code goes away.

[elder@inktank.com: commented out rbd_req_sync_exec() to avoid warning]

Suggested-by: Josh Durgin &lt;josh.durgin@inktank.com&gt;
Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Josh Durgin &lt;josh.durgin@inktank.com&gt;
(based on commit 02cdb02ceab1f3dd9ac2bc899fc51f0e0e744782)
</content>
</entry>
<entry>
<title>rbd: drop dev reference on error in rbd_open()</title>
<updated>2013-01-17T16:51:18Z</updated>
<author>
<name>Alex Elder</name>
<email>elder@inktank.com</email>
</author>
<published>2012-08-10T20:12:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a871375b5548cbcd28c9b97040da7f6470a96a72'/>
<id>urn:sha1:a871375b5548cbcd28c9b97040da7f6470a96a72</id>
<content type='text'>
If a read-only rbd device is opened for writing in rbd_open(), it
returns without dropping the just-acquired device reference.

Fix this by moving the read-only check before getting the reference.

Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Yehuda Sadeh &lt;yehuda@inktank.com&gt;
Reviewed-by: Josh Durgin &lt;josh.durgin@inktank.com&gt;
(cherry picked from commit 340c7a2b2c9a2da640af28a8c196356484ac8b50)
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>rbd: send header version when notifying</title>
<updated>2013-01-17T16:51:18Z</updated>
<author>
<name>Josh Durgin</name>
<email>josh.durgin@dreamhost.com</email>
</author>
<published>2011-12-06T02:10:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ca9a5e33a97a965378a2a0387fd8acf3a0144950'/>
<id>urn:sha1:ca9a5e33a97a965378a2a0387fd8acf3a0144950</id>
<content type='text'>
Previously the original header version was sent. Now, we update it
when the header changes.

Signed-off-by: Josh Durgin &lt;josh.durgin@dreamhost.com&gt;
Reviewed-by: Alex Elder &lt;elder@inktank.com&gt;
(cherry picked from commit a71b891bc7d77a070e723c8c53d1dd73cf931555)
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>rbd: use reference counting for the snap context</title>
<updated>2013-01-17T16:51:18Z</updated>
<author>
<name>Josh Durgin</name>
<email>josh.durgin@dreamhost.com</email>
</author>
<published>2011-12-05T22:03:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fc5eb627a897ac41581692abf60ffea874df2e55'/>
<id>urn:sha1:fc5eb627a897ac41581692abf60ffea874df2e55</id>
<content type='text'>
This prevents a race between requests with a given snap context and
header updates that free it. The osd client was already expecting the
snap context to be reference counted, since it get()s it in
ceph_osdc_build_request and put()s it when the request completes.

Also remove the second down_read()/up_read() on header_rwsem in
rbd_do_request, which wasn't actually preventing this race or
protecting any other data.

Signed-off-by: Josh Durgin &lt;josh.durgin@dreamhost.com&gt;
Reviewed-by: Alex Elder &lt;elder@inktank.com&gt;
(cherry picked from commit d1d25646543134d756a02ffe4e02073faa761f2c)
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>rbd: set image size when header is updated</title>
<updated>2013-01-17T16:51:18Z</updated>
<author>
<name>Josh Durgin</name>
<email>josh.durgin@dreamhost.com</email>
</author>
<published>2011-12-05T18:41:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=894910deddfe36e66079bea42ae9d728b3f4b5cc'/>
<id>urn:sha1:894910deddfe36e66079bea42ae9d728b3f4b5cc</id>
<content type='text'>
The image may have been resized.

Signed-off-by: Josh Durgin &lt;josh.durgin@dreamhost.com&gt;
Reviewed-by: Alex Elder &lt;elder@inktank.com&gt;
(cherry picked from commit 93a24e084d67ba2fcb9a4c289135825b623ec864)
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
