]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
10 years agoClient: do not require successful remount when unmounting 3856/head
Greg Farnum [Tue, 3 Mar 2015 06:29:10 +0000 (22:29 -0800)]
Client: do not require successful remount when unmounting

Fixes: #10982
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agodoc/release-notes: add v0.92->0.93 upgrade note
Sage Weil [Tue, 3 Mar 2015 05:14:27 +0000 (21:14 -0800)]
doc/release-notes: add v0.92->0.93 upgrade note

Signed-off-by: Sage Weil <sage@redhat.com>
10 years agoMerge pull request #3831 from dachary/wip-qemu-iotests
Josh Durgin [Mon, 2 Mar 2015 23:34:39 +0000 (15:34 -0800)]
Merge pull request #3831 from dachary/wip-qemu-iotests

Maipo should also use the local qemu clone

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
10 years agoMerge pull request #3818 from rzarzynski/wip-10661
Yehuda Sadeh [Mon, 2 Mar 2015 18:55:34 +0000 (10:55 -0800)]
Merge pull request #3818 from rzarzynski/wip-10661

rgw: generate Content-Length in response for POST on Swift containter/object

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agoMerge pull request #3761 from rzarzynski/wip-10873
Yehuda Sadeh [Mon, 2 Mar 2015 18:50:42 +0000 (10:50 -0800)]
Merge pull request #3761 from rzarzynski/wip-10873

rgw: generate the "Date" HTTP header.

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agorgw: Swift API. Complement the response to "show container details"
Dmytro Iurchenko [Mon, 16 Feb 2015 16:47:59 +0000 (18:47 +0200)]
rgw: Swift API. Complement the response to "show container details"

OpenStack Object Storage API v1 states that X-Container-Object-Count, X-Container-Bytes-Used and user-defined metadata headers should be included in a response.

Fixes: #10666
Backport: hammer
Reported-by: Ahmad Faheem <ahmad.faheem@ril.com>
Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
Signed-off-by: Dmytro Iurchenko <diurchenko@mirantis.com>
10 years agoMerge remote-tracking branch 'gh/hammer'
Sage Weil [Mon, 2 Mar 2015 17:11:11 +0000 (09:11 -0800)]
Merge remote-tracking branch 'gh/hammer'

10 years agoMerge pull request #3844 from ceph/wip-10965
Josh Durgin [Mon, 2 Mar 2015 16:53:50 +0000 (08:53 -0800)]
Merge pull request #3844 from ceph/wip-10965

Wip 10965

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
10 years agoMerge pull request #3843 from ceph/wip-10978
Josh Durgin [Mon, 2 Mar 2015 16:51:54 +0000 (08:51 -0800)]
Merge pull request #3843 from ceph/wip-10978

rgw: don't overwrite bucket / object owner when setting acls

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
10 years agoMerge pull request #3812 from ceph/wip-10958
Josh Durgin [Mon, 2 Mar 2015 16:30:45 +0000 (08:30 -0800)]
Merge pull request #3812 from ceph/wip-10958

librbd: flush pending AIO before resize

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
10 years agorgw: don't overwrite bucket / object owner when setting acls 3843/head
Yehuda Sadeh [Fri, 27 Feb 2015 23:32:50 +0000 (15:32 -0800)]
rgw: don't overwrite bucket / object owner when setting acls

Fixes: #10978
Backport: hammer, firefly

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agolibrbd: flush pending AIO after acquiring lock 3812/head
Jason Dillaman [Fri, 27 Feb 2015 14:46:55 +0000 (09:46 -0500)]
librbd: flush pending AIO after acquiring lock

There was a potential race condition between a delayed AIO
operation waiting on acquiring a lock and a snap_create
flushing all pending IO.  Since snap_create owned md_lock, the
delayed AIO would not be allowed to complete -- deadlocking the
flush.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agolibrbd: hold snap_lock between clipping IO and registering AIO
Jason Dillaman [Fri, 27 Feb 2015 04:39:10 +0000 (23:39 -0500)]
librbd: hold snap_lock between clipping IO and registering AIO

In the case where concurrent IO is occurring when a trim resize
operation is initiated, hold the snap_lock between clipping the
IO operation and registering the pending op.  That allows the
resize state machine to properly flush all operations issued
before the clip region was updated.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agoMerge pull request #3839 from dachary/wip-documentation
Loic Dachary [Mon, 2 Mar 2015 12:03:59 +0000 (13:03 +0100)]
Merge pull request #3839 from dachary/wip-documentation

doc: ext4 has a journal

Reviewed-by: Simon Guinot <simon.guinot@sequanux.org>
10 years agodoc: ext4 has a journal 3839/head
Loic Dachary [Mon, 2 Mar 2015 11:09:13 +0000 (12:09 +0100)]
doc: ext4 has a journal

Signed-off-by: Loic Dachary <ldachary@redhat.com>
10 years agoMerge pull request #3834 from linuxbox2/xio-build
Loic Dachary [Sat, 28 Feb 2015 23:27:06 +0000 (00:27 +0100)]
Merge pull request #3834 from linuxbox2/xio-build

cmake:  build fixes

Reviewed-by: Loic Dachary <ldachary@redhat.com>
10 years agocmake: build fixes 3834/head
Matt Benjamin [Sat, 28 Feb 2015 18:58:11 +0000 (13:58 -0500)]
cmake:  build fixes

* librbd
* test/ceph_dencoder

Signed-off-by: Matt Benjamin <matt@cohortfs.com>
10 years agorgw: update makefile to enable civetweb config 3844/head
Yehuda Sadeh [Fri, 27 Feb 2015 16:14:41 +0000 (08:14 -0800)]
rgw: update makefile to enable civetweb config

Fixes: #10965
Backport: hammer, firefly

Civetweb compilation now includes conf header to enable ipv6.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agocivetweb: update submodule
Yehuda Sadeh [Fri, 27 Feb 2015 16:14:27 +0000 (08:14 -0800)]
civetweb: update submodule

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
10 years agoMerge pull request #3833 from yuyuyu101/temp
Haomai Wang [Sat, 28 Feb 2015 10:10:36 +0000 (18:10 +0800)]
Merge pull request #3833 from yuyuyu101/temp

TestAsyncDriver: Fix typo in ceph_test_async_driver

10 years agoTestAsyncDriver: Fix typo in ceph_test_async_driver 3833/head
Haomai Wang [Sat, 28 Feb 2015 09:42:52 +0000 (17:42 +0800)]
TestAsyncDriver: Fix typo in ceph_test_async_driver

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
10 years agoMerge pull request #3832 from tchaikov/fix-doc
Loic Dachary [Sat, 28 Feb 2015 09:35:18 +0000 (10:35 +0100)]
Merge pull request #3832 from tchaikov/fix-doc

doc/install/manual-deployment: fix osd install doc

Reviewed-by: Loic Dachary <ldachary@redhat.com>
10 years agodoc/install/manual-deployment: fix osd install doc 3832/head
Kefu Chai [Sat, 28 Feb 2015 02:55:04 +0000 (10:55 +0800)]
doc/install/manual-deployment: fix osd install doc

* should be using /var/lib/ceph/osd/{cluster-name}-{osd-num}/sysvinit
  instead of var/lib/ceph/osd/{cluster-name}-{hostname}/sysvinit, thanks
  to Kyle Hutson <kylehutson@ksu.edu>

Fixes: #10957
Signed-off-by: Kefu Chai <kchai@redhat.com>
10 years agoMaipo should also use the local qemu clone 3831/head
Loic Dachary [Sat, 28 Feb 2015 00:18:38 +0000 (01:18 +0100)]
Maipo should also use the local qemu clone

http://tracker.ceph.com/issues/10975 Fixes: #10975

Signed-off-by: Loic Dachary <loic@dachary.org>
10 years agodoc/release-notes: fix Takeshi's name
Sage Weil [Fri, 27 Feb 2015 22:19:06 +0000 (14:19 -0800)]
doc/release-notes: fix Takeshi's name

Signed-off-by: Sage Weil <sage@redhat.com>
10 years agoMerge branch 'hammer' of jenkins.front.sepia.ceph.com:ceph/ceph into hammer
Jenkins [Fri, 27 Feb 2015 21:21:03 +0000 (13:21 -0800)]
Merge branch 'hammer' of jenkins.front.sepia.ceph.com:ceph/ceph into hammer

10 years agodoc/release-notes: fix typo
Sage Weil [Fri, 27 Feb 2015 21:21:00 +0000 (13:21 -0800)]
doc/release-notes: fix typo

Signed-off-by: Sage Weil <sage@redhat.com>
10 years agodoc/release-notes: v0.80.9 firefly
Sage Weil [Fri, 27 Feb 2015 21:16:23 +0000 (13:16 -0800)]
doc/release-notes: v0.80.9 firefly

Signed-off-by: Sage Weil <sage@redhat.com>
10 years agodoc/release-notes: v0.93 release notes
Sage Weil [Fri, 27 Feb 2015 19:09:45 +0000 (11:09 -0800)]
doc/release-notes: v0.93 release notes

Signed-off-by: Sage Weil <sage@redhat.com>
10 years agolibrbd: moved flush / cache invalidate to resize state machine
Jason Dillaman [Fri, 27 Feb 2015 04:01:12 +0000 (23:01 -0500)]
librbd: moved flush / cache invalidate to resize state machine

Keep async_resize truly async by moving flush and invalidate cache
operations to individual states within the resize state machine.

Fixes: #10958
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agolibrbd: add AIO version of invalidate_cache
Jason Dillaman [Thu, 26 Feb 2015 22:52:39 +0000 (17:52 -0500)]
librbd: add AIO version of invalidate_cache

Break the existing synchronous behavior into pre- and post-
flush routines using the existing logic.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agoMerge pull request #3825 from ceph/wip-hammer-gplv2-text
Loic Dachary [Fri, 27 Feb 2015 18:09:06 +0000 (19:09 +0100)]
Merge pull request #3825 from ceph/wip-hammer-gplv2-text

Add GPLv2 text file

Reviewed-by: Loic Dachary <ldachary@redhat.com>
10 years ago0.93 v0.93
Jenkins [Fri, 27 Feb 2015 17:52:54 +0000 (09:52 -0800)]
0.93

10 years agoAdd GPLv2 text file 3825/head
Ken Dreyer [Fri, 27 Feb 2015 17:32:37 +0000 (10:32 -0700)]
Add GPLv2 text file

Most of the ceph tree is LGPLv2.1, but there are some files that are
under the full GPLv2.

Add a copy of the GNU General Public License (version 2) to the
distribution. This file was copied verbatim from
https://www.gnu.org/licenses/gpl-2.0.txt

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
10 years agorgw: enforce Content-Length in response for POST on Swift cont/obj. 3818/head
Radoslaw Zarzynski [Thu, 26 Feb 2015 18:21:03 +0000 (19:21 +0100)]
rgw: enforce Content-Length in response for POST on Swift cont/obj.

Fixes: #10661
Backport: hammer
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
10 years agorgw: generate the "Date" HTTP header for civetweb. 3761/head
Radoslaw Zarzynski [Wed, 18 Feb 2015 14:48:43 +0000 (15:48 +0100)]
rgw: generate the "Date" HTTP header for civetweb.

Fixes: #10873
Backport: hammer
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
10 years agolibrbd: C_SaferCond memory leak
Jason Dillaman [Thu, 26 Feb 2015 21:58:07 +0000 (16:58 -0500)]
librbd: C_SaferCond memory leak

Unlike the other Context derived classes, C_SaferCond is not
a suicidal object which deletes itself.  Swap heap allocations
of C_SaferCond to stack-based allocations as a result.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agoMerge pull request #3814 from tchaikov/fix-doc
Loic Dachary [Fri, 27 Feb 2015 12:54:54 +0000 (13:54 +0100)]
Merge pull request #3814 from tchaikov/fix-doc

doc/install/manual-deployment: s/mon/osd/ for osd install doc

Reviewed-by: Loic Dachary <ldachary@redhat.com>
10 years agoMerge pull request #3817 from tchaikov/misc-cosmetic-changes
Loic Dachary [Fri, 27 Feb 2015 12:50:48 +0000 (13:50 +0100)]
Merge pull request #3817 from tchaikov/misc-cosmetic-changes

Misc cosmetic changes

Reviewed-by: Loic Dachary <ldachary@redhat.com>
10 years agoMerge pull request #3816 from fghaas/master
Kefu Chai [Fri, 27 Feb 2015 10:50:43 +0000 (18:50 +0800)]
Merge pull request #3816 from fghaas/master

doc: trivial: fix missing newlines in rbd man page

Reviewed-by: Kefu Chai <kchai@redhat.com>
10 years agoadd more constness 3817/head
Kefu Chai [Fri, 27 Feb 2015 08:56:57 +0000 (16:56 +0800)]
add more constness

Signed-off-by: Kefu Chai <kchai@redhat.com>
10 years agoOSD: mark internal methods as `private`
Kefu Chai [Fri, 27 Feb 2015 08:53:21 +0000 (16:53 +0800)]
OSD: mark internal methods as `private`

Signed-off-by: Kefu Chai <kchai@redhat.com>
10 years agodoc: trivial: fix missing newlines in rbd man page 3816/head
Florian Haas [Fri, 27 Feb 2015 10:21:03 +0000 (11:21 +0100)]
doc: trivial: fix missing newlines in rbd man page

As it were, the order, stripe_unit and stripe_count options were
followed by descriptions rendered in the same monospace font as the
options themselves. Insert newlines so they are rendered as regular
text, as was the original intention.

Signed-off-by: Florian Haas <florian@hastexo.com>
10 years agofix unmatched struct versus class warnings
Kefu Chai [Fri, 27 Feb 2015 08:42:48 +0000 (16:42 +0800)]
fix unmatched struct versus class warnings

these warnings come from clang++

Signed-off-by: Kefu Chai <kchai@redhat.com>
10 years agocommon/config: move config_obs_t's dtor back
Kefu Chai [Fri, 27 Feb 2015 08:10:05 +0000 (16:10 +0800)]
common/config: move config_obs_t's dtor back

so one can find the impl of config_obs_t at the expected place.

Signed-off-by: Kefu Chai <kchai@redhat.com>
10 years agodoc/install/manual-deployment: s/mon/osd/ for osd install doc 3814/head
Kefu Chai [Fri, 27 Feb 2015 08:15:16 +0000 (16:15 +0800)]
doc/install/manual-deployment: s/mon/osd/ for osd install doc

Fixes: #10957
Signed-off-by: Kefu Chai <kchai@redhat.com>
10 years agoMerge pull request #3797 from yuyuyu101/wip-reset-check
Sage Weil [Fri, 27 Feb 2015 05:29:32 +0000 (21:29 -0800)]
Merge pull request #3797 from yuyuyu101/wip-reset-check

Messenger: Fix incorrect connect_seq increase when enabling reset_check

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
10 years agoMerge pull request #3813 from tchaikov/add-doc-on-memory-level
Sage Weil [Fri, 27 Feb 2015 05:06:00 +0000 (21:06 -0800)]
Merge pull request #3813 from tchaikov/add-doc-on-memory-level

doc: add docs about log's "memory level"

10 years agodoc: add docs about log's "memory level" 3813/head
Kefu Chai [Fri, 27 Feb 2015 04:57:31 +0000 (12:57 +0800)]
doc: add docs about log's "memory level"

Signed-off-by: Kefu Chai <kchai@redhat.com>
10 years agoMerge pull request #3803 from guangyy/wip-7737 3734/head
Sage Weil [Fri, 27 Feb 2015 01:17:32 +0000 (17:17 -0800)]
Merge pull request #3803 from guangyy/wip-7737

osd: fix negative degraded objects during backfilling

Backport: hammer, giant, firefly

10 years agoMerge pull request #3681 from ceph/wip-fusesystem-10710
Gregory Farnum [Thu, 26 Feb 2015 23:54:21 +0000 (15:54 -0800)]
Merge pull request #3681 from ceph/wip-fusesystem-10710

ceph-fuse: check for failures on system() invocation

Reviewed-by: John Spray <john.spray@redhat.com>
10 years agoceph-fuse: test dentry invalidation options and fail out if we fail 3681/head
Greg Farnum [Thu, 26 Feb 2015 23:20:11 +0000 (15:20 -0800)]
ceph-fuse: test dentry invalidation options and fail out if we fail

We identify the Linux kernel version and based on that either expect to
be able to invalidate dentries effectively, or expect to be able to remount
the ceph-fuse mountpoint. Test it using the Client functions and callbacks by
spinning off a thread to invoke the test that is separate from the main
FUSE loop.

Most unfortunately, there doesn't seem to be a good interface to tell
FUSE to shut down if we need to do that. See
http://fuse.996288.n3.nabble.com/libfuse-exiting-fuse-session-loop-td10686.html
I tried changing our signal invocation or attempting a simple action on
the mount point but those were ineffectual at terminating the remaining
processes; fusermount actually gets rid of them all.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agoClient: support using dentry invalidation callbacks on older kernels
Greg Farnum [Thu, 26 Feb 2015 23:12:47 +0000 (15:12 -0800)]
Client: support using dentry invalidation callbacks on older kernels

This brings back a few small code chunks that were removed in
0827bb79ea5127e6763f6e904dfa1a3266046ffb. We check the kernel version,
and if it is less than 3.18 we use these dentry invalidation callbacks
instead of the remount callback. This should resolve a number of
issues with racing against remount, including #10916, and lets older
unprivileged users on older kernels run even if they can't apply
options on mount (#10542).

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agoClient: add functions to test remount functionality
Greg Farnum [Thu, 26 Feb 2015 23:18:31 +0000 (15:18 -0800)]
Client: add functions to test remount functionality

Unprivileged users can't use options when remounting; see
http://tracker.ceph.com/issues/10542. We're about to use this
in ceph-fuse when starting up.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agoClient: check for failures on system() invocation
Greg Farnum [Tue, 10 Feb 2015 19:11:06 +0000 (11:11 -0800)]
Client: check for failures on system() invocation

Fixes: #10710
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
10 years agoMerge pull request #3806 from ceph/wip-10961
Josh Durgin [Thu, 26 Feb 2015 20:01:01 +0000 (12:01 -0800)]
Merge pull request #3806 from ceph/wip-10961

qa/workunits/rbd/copy.sh: explicitly choose the image format

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
10 years agoMerge pull request #3802 from ceph/hammer-10912
Gregory Farnum [Thu, 26 Feb 2015 18:14:09 +0000 (10:14 -0800)]
Merge pull request #3802 from ceph/hammer-10912

client: re-send requsets before composing the cap reconnect message

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
10 years agoMerge pull request #3792 from ceph/wip-10912
Gregory Farnum [Thu, 26 Feb 2015 18:14:05 +0000 (10:14 -0800)]
Merge pull request #3792 from ceph/wip-10912

client: re-send requests before composing the cap reconnect message

Reviewed-by: John Spray <john.spray@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
10 years agoqa/workunits/rbd/copy.sh: explicitly choose the image format 3806/head
Jason Dillaman [Thu, 26 Feb 2015 17:00:41 +0000 (12:00 -0500)]
qa/workunits/rbd/copy.sh: explicitly choose the image format

The rbd CLI now utilizes the rbd_default_format configuration
setting, therefore the copy test now needs to tell rbd which image
format it is expecting to create.

Fixes: #10961
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agoMerge pull request #3805 from gaurav36/master
Kefu Chai [Thu, 26 Feb 2015 13:22:39 +0000 (21:22 +0800)]
Merge pull request #3805 from gaurav36/master

osd: coverity fix: removing logically dead code

Reviewed-by: Kefu Chai <kchai@redhat.com>
10 years agocoverity fix: removing logically dead code 3805/head
Gaurav Kumar Garg [Wed, 25 Feb 2015 19:15:31 +0000 (00:45 +0530)]
coverity fix: removing logically dead code

coverity CID: 1260393

Signed-off-by: Gaurav Kumar Garg <garg.gaurav52@gmail.com>
10 years agoMerge pull request #3751 from ceph/wip-mds-misc
John Spray [Thu, 26 Feb 2015 11:45:43 +0000 (11:45 +0000)]
Merge pull request #3751 from ceph/wip-mds-misc

mds: misc small patches

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
10 years agoosd: fix negative degraded objects during backfilling 3803/head
Guang Yang [Thu, 26 Feb 2015 08:13:12 +0000 (08:13 +0000)]
osd: fix negative degraded objects during backfilling

When there is deleting requests during backfilling, the reported number of degraded
objects could be negative, as the primary's num_objects is the latest (locally) but
the number for replicas might not reflect the deletings. A simple fix is to ignore
the negative subtracted value.

Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
10 years agoTestMsgr: Don't bind addr if not standby 3797/head
Haomai Wang [Wed, 25 Feb 2015 17:33:58 +0000 (01:33 +0800)]
TestMsgr: Don't bind addr if not standby

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
10 years agoAsyncConnection: Drop connect_seq increase line
Haomai Wang [Wed, 25 Feb 2015 15:44:10 +0000 (23:44 +0800)]
AsyncConnection: Drop connect_seq increase line

Learn commit 249acf62e764f9d08104c1a070e382a2fdab8824

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
10 years agoMerge pull request #3800 from ceph/wip-10864-hammer-packaging-rbd-udev
Sage Weil [Thu, 26 Feb 2015 05:05:09 +0000 (21:05 -0800)]
Merge pull request #3800 from ceph/wip-10864-hammer-packaging-rbd-udev

packaging: move rbd udev rules to ceph-common

Reviewed-by: Sage Weil <sage@redhat.com>
10 years agoPipe: Drop connect_seq increase line
Haomai Wang [Wed, 25 Feb 2015 15:38:54 +0000 (23:38 +0800)]
Pipe: Drop connect_seq increase line

Revert commit 0fc47e267b6f8dcd4511d887d5ad37d460374c25.

When accepting and "connect.connect_seq == existing->connect_seq",
existing->state maybe STATE_OPEN, STATE_STANDBY or STANDY_CONNECTING.
This commit only fix partial problem and want to assert
"(existing->state == STATE_CONNECTING)".

So later we added codes to catch
"(existing->state == STATE_OPEN || existing->state == STATE_STANDBY)"
before asserting.

Backport: dumpling, firefly, giant

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
10 years agoclient: re-send requsets before composing the cap reconnect message 3802/head
Yan, Zheng [Wed, 25 Feb 2015 07:27:59 +0000 (15:27 +0800)]
client: re-send requsets before composing the cap reconnect message

After commit 419800fe (client: re-send request when MDS enters reconnecting
stage), cephfs client can send both unsafe requests and normal requests when
MDS is in reconnecting stage. Normal requests can have embedded cap releases,
the client code encodes these embedded cap releases after composing the cap
reconnect message. This causes the client sliently drop some caps. The fix
is re-send requsets (which add embedded cap releases) before composing the
cap reconnect message

Fixes: #10912
Signed-off-by: Yan, Zheng <zyan@redhat.com>
(cherry picked from commit 8ea5a811b3b32b99b65e6170976af3d42e6c9ba0)

10 years agoclient: re-send requsets before composing the cap reconnect message 3792/head
Yan, Zheng [Wed, 25 Feb 2015 07:27:59 +0000 (15:27 +0800)]
client: re-send requsets before composing the cap reconnect message

After commit 419800fe (client: re-send request when MDS enters reconnecting
stage), cephfs client can send both unsafe requests and normal requests when
MDS is in reconnecting stage. Normal requests can have embedded cap releases,
the client code encodes these embedded cap releases after composing the cap
reconnect message. This causes the client sliently drop some caps. The fix
is re-send requsets (which add embedded cap releases) before composing the
cap reconnect message

Fixes: #10912
Signed-off-by: Yan, Zheng <zyan@redhat.com>
10 years agoMerge remote-tracking branch 'origin/hammer'
Josh Durgin [Thu, 26 Feb 2015 02:52:36 +0000 (18:52 -0800)]
Merge remote-tracking branch 'origin/hammer'

10 years agoMerge pull request #3796 from ceph/wip-librbd-async-operations
Josh Durgin [Thu, 26 Feb 2015 02:52:19 +0000 (18:52 -0800)]
Merge pull request #3796 from ceph/wip-librbd-async-operations

librbd: better handling for async maintenance requests

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
10 years agoMerge pull request #3791 from ceph/wip-librbd-mdlock
Jason Dillaman [Thu, 26 Feb 2015 02:37:48 +0000 (21:37 -0500)]
Merge pull request #3791 from ceph/wip-librbd-mdlock

librbd: fix object map locking

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
10 years agoMerge pull request #3801 from ceph/wip-fix-typo-troubleshooting
Loic Dachary [Thu, 26 Feb 2015 01:43:53 +0000 (02:43 +0100)]
Merge pull request #3801 from ceph/wip-fix-typo-troubleshooting

doc: fix typo deebug

Reviewed-by: Loic Dachary <ldachary@redhat.com>
10 years agopackaging: move rbd udev rules to ceph-common 3800/head
Ken Dreyer [Wed, 25 Feb 2015 22:27:32 +0000 (15:27 -0700)]
packaging: move rbd udev rules to ceph-common

We should ship the RBD udev rules in the same package that ships
/usr/bin/rbd.  This package happens to be ceph-common, so move the udev
rules there.

The udev rules rely on the ceph-rbdnamer utility, so move that utility
and its man page as well.

http://tracker.ceph.com/issues/10864 Refs: #10864

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
10 years agolibrbd: remove unnecessary md_lock usage 3791/head
Josh Durgin [Thu, 26 Feb 2015 01:41:52 +0000 (17:41 -0800)]
librbd: remove unnecessary md_lock usage

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: move object_map_lock acquisition into refresh()
Josh Durgin [Thu, 26 Feb 2015 01:02:42 +0000 (17:02 -0800)]
librbd: move object_map_lock acquisition into refresh()

Every caller was acquiring this just for these calls.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agodoc: fix typo deebug 3801/head
Gregory Meno [Thu, 26 Feb 2015 01:30:33 +0000 (17:30 -0800)]
doc: fix typo deebug

Signed-off-by: Gregory Meno <gmeno@redhat.com>
10 years agolibrbd: don't check if object map is enabled before refreshing
Josh Durgin [Wed, 25 Feb 2015 23:54:00 +0000 (15:54 -0800)]
librbd: don't check if object map is enabled before refreshing

This check is now done internally by the object map.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: remove object map on rollback if needed
Josh Durgin [Wed, 25 Feb 2015 22:34:15 +0000 (14:34 -0800)]
librbd: remove object map on rollback if needed

When rolling back to a snapshot that did not have object map enabled,
delete the head object map.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: clarify md_lock usage
Josh Durgin [Wed, 25 Feb 2015 02:49:26 +0000 (18:49 -0800)]
librbd: clarify md_lock usage

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agotest_librbd: add simple test for object map snapshot consistency
Josh Durgin [Wed, 25 Feb 2015 02:31:15 +0000 (18:31 -0800)]
test_librbd: add simple test for object map snapshot consistency

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: use snap_lock to protect ImageCtx->size
Josh Durgin [Wed, 25 Feb 2015 01:19:59 +0000 (17:19 -0800)]
librbd: use snap_lock to protect ImageCtx->size

Since this is often looked up by snap_id anyway, snap_lock
is easy to use for this.

This lets us avoid taking md_lock in many places.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: hold snap_lock while reading parent info in diff_iterate
Josh Durgin [Tue, 24 Feb 2015 22:43:10 +0000 (14:43 -0800)]
librbd: hold snap_lock while reading parent info in diff_iterate

Caught be the re-added assertions in ImageCtx::get_parent_info()

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agotest_librbd: close ioctx after imagectx
Josh Durgin [Tue, 24 Feb 2015 22:31:27 +0000 (14:31 -0800)]
test_librbd: close ioctx after imagectx

There's no need to explicitly close the ioctx. Doing so may cause
problems when the Images using it are destroyed afterwards.  Just let
normal cleanup at the end of the block take care of it in the correct
order.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agorbd: fix --image-feature parsing
Josh Durgin [Tue, 24 Feb 2015 05:36:13 +0000 (21:36 -0800)]
rbd: fix --image-feature parsing

Need to use _witharg(), not _flag()

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: apply flag read failure to all snaps
Josh Durgin [Tue, 24 Feb 2015 04:51:23 +0000 (20:51 -0800)]
librbd: apply flag read failure to all snaps

Don't check just the features of head, since it may be possible to
disable object map in the future.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: make ImageCtx->object_map always present
Josh Durgin [Tue, 24 Feb 2015 04:28:38 +0000 (20:28 -0800)]
librbd: make ImageCtx->object_map always present

This simplifies locking by obviating the NULL checks.  We no longer
need md_lock to protect these acceses. We can use object_map_lock
instead, to make sure no one reads an object map while its being
updated.

Keep track of whether the object map is enabled for a given snapshot
internally. In each public method, check this state, and automatically
set it correctly when refreshing the object map. During snapshot
removal, unconditionally try to remove the object map object, to
protect against bugs leaking objects, and to be consistent with image
removal.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agotests: add unit test to verify async requests time out 3796/head
Jason Dillaman [Wed, 25 Feb 2015 17:02:00 +0000 (12:02 -0500)]
tests: add unit test to verify async requests time out

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agolibrbd: restart async requests if lock owner doesn't report progress
Jason Dillaman [Wed, 25 Feb 2015 17:00:26 +0000 (12:00 -0500)]
librbd: restart async requests if lock owner doesn't report progress

Detect the case of a crashed lock owner by waiting for up to 30 seconds
for a async request progress message from the leader.  If a progress
message isn't received, restart the request (and possibly take ownership
of the lock).

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agolibrbd: replace Finisher/SafeTimer use with facade
Jason Dillaman [Wed, 25 Feb 2015 04:35:31 +0000 (23:35 -0500)]
librbd: replace Finisher/SafeTimer use with facade

Replace the two Context threading classes used within
ImageWatcher with a facade to orchestrate the scheduling
and canceling of Context task callbacks.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agolibrbd: cancel in-progress maint operations before releasing lock
Jason Dillaman [Tue, 24 Feb 2015 19:33:44 +0000 (14:33 -0500)]
librbd: cancel in-progress maint operations before releasing lock

Ensure that all in-flight maintenance operations (resize, flatten) are
not running when the exclusive lock is released.  The lock will be
released when transitioning to a snapshot, closing the image, or
cooperatively when another client requests the lock.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agolibrbd: flush context potentially completing too early
Jason Dillaman [Tue, 24 Feb 2015 17:53:45 +0000 (12:53 -0500)]
librbd: flush context potentially completing too early

If the async operation associated with a flush request completes,
only complete the flush contexts if no previous operations are
still in flight. Otherwise, move the flush contexts to an older
in-flight async operation.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
10 years agoMerge pull request #3799 from ceph/wip-librbd-image-watcher-tests
Josh Durgin [Thu, 26 Feb 2015 00:42:46 +0000 (16:42 -0800)]
Merge pull request #3799 from ceph/wip-librbd-image-watcher-tests

tests: add additional test coverage for ImageWatcher RPC

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: take ImageCtx->snap_lock for write in add_snap()
Josh Durgin [Tue, 24 Feb 2015 03:50:55 +0000 (19:50 -0800)]
librbd: take ImageCtx->snap_lock for write in add_snap()

add_snap() updates the ImageCtx snapshot metadata in memory, as well
as reading the flags as part of the object map snapshot. Both of these
require holding snap_lock.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: use snap_lock to protect ImageCtx->flags
Josh Durgin [Tue, 24 Feb 2015 03:49:12 +0000 (19:49 -0800)]
librbd: use snap_lock to protect ImageCtx->flags

This is another step towards eliminating md_lock from the writeback
path. Almost all the places that use ImageCtx->flags already use
snap_lock, so there's no need to create a new lock. For the others,
add a helper, test_flags() that acquires the lock, similar to
test_features().

This also makes sure we look up flags of the snapshot we're operating
on, instead of those for head.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: add locking asserts to ImageCtx
Josh Durgin [Tue, 24 Feb 2015 03:03:32 +0000 (19:03 -0800)]
librbd: add locking asserts to ImageCtx

A bunch of these used to be here, but were removed when converting to
RWLocks, before RWLocks had is_[w]locked() methods.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: fix ImageWatcher::is_lock_supported() locking
Josh Durgin [Tue, 24 Feb 2015 02:49:34 +0000 (18:49 -0800)]
librbd: fix ImageWatcher::is_lock_supported() locking

Take snap_lock while reading ImageCtx->snap_id, and
look up the features by snap_id as well.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: add and use a test_features() helper
Josh Durgin [Tue, 24 Feb 2015 02:46:26 +0000 (18:46 -0800)]
librbd: add and use a test_features() helper

This gets the appropriate locks, and checks the currently open
snapshot instead of head.  Looking up features by snap_id prepares us
for future addition or removal of e.g. an object map throughout the
life of an image.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agolibrbd: use ImageCtx->snap_lock for ImageCtx->features
Josh Durgin [Tue, 24 Feb 2015 02:44:05 +0000 (18:44 -0800)]
librbd: use ImageCtx->snap_lock for ImageCtx->features

This was being protected by md_lock, but that has become too coarse
since it is used to prevent writes from proceeding while flushing
caches for a snapshot. With the addition of ObjectMap and
ImageWatcher, writeback could try to acquire md_lock again, leading to
a deadlock.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
10 years agotests: add additional test coverage for ImageWatcher RPC 3799/head
Jason Dillaman [Wed, 25 Feb 2015 19:59:38 +0000 (14:59 -0500)]
tests: add additional test coverage for ImageWatcher RPC

Test flatten, resize, and snap create RPC messages along with
basic error code return paths.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>