Commit Graph

33639 Commits

Author SHA1 Message Date
Yehuda Sadeh
ddc2e1a8e3 rgw: calculate user manifest
Fixes: #8169
Backport: firefly
We didn't calculate the user manifest's object etag at all. The etag
needs to be the md5 of the contantenation of all the parts' etags.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-05-08 14:29:12 -07:00
Sage Weil
589b639af7 osd/ReplicatedPG: carry CopyOpRef in copy_from completion
There is a race with copy_from cancellation.  The internal Objecter
completion decodes a bunch of data and copies it into pointers provided
when the op is queued.  When we cancel, we need to ensure that we can cope
until control passes back to our provided completion.

Once we *do* get into the (ReplicatedPG) callbacks, we will bail out
because the tid in the CopyOp or FlushOp no longer matches.

Fix this by carrying a ref to keep the copy-from targets alive, and
clearing out the tids that we cancel.

Note that previously, the trigger for this was that the tid changes when
we handle a redirect, which made the op_cancel() call fail.  With the
coming Objecter changes, this will no longer be the case.  However, there
are also locking and threading changes that will make cancellation racy,
so we will not be able to rely on it always preventing the callback.
Either way, this will avoid the problem.

Fixes: #7588
Signed-off-by: Sage Weil <sage@inktank.com>
2014-05-08 14:19:22 -07:00
Samuel Just
aff119ace6 Merge pull request #1791 from ceph/wip-8011
ReplicatedPG: block scrub on blocked object contexts

Reviewed-by: Sage Weil <sage@inktank.com>
2014-05-08 13:50:19 -07:00
Samuel Just
db4ccb0481 ReplicatedPG: block scrub on blocked object contexts
Fixes: #8011
Backport: firefly
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-05-08 12:41:28 -07:00
Sage Weil
3152faf79f osd/osd_types: add last_force_op_resend to pg_pool_t
Signed-off-by: Sage Weil <sage@inktank.com>
2014-05-08 10:52:33 -07:00
Alfredo Deza
fc263c3fc2 Merge pull request #1778 from ceph/wip-7157
ceph-disk: fix list for encrypted or corrupt volume

Reviewed-by: Alfredo Deza <alfredo.deza@inktank.com>
2014-05-08 12:13:58 -04:00
Sage Weil
c3e3a13238 Merge pull request #1789 from ceph/wip-jcsp-clang
misc. cleanups from clang warnings

Reviewed-by: Sage Weil <sage@inktank.com>
2014-05-08 09:07:28 -07:00
Alfredo Deza
fbeb298de2 Merge pull request #1777 from ceph/wip-6966
ceph-disk: partprobe before settle when preparing dev

Reviewed-by: Alfredo Deza <alfredo.deza@inktank.com>
2014-05-08 12:00:28 -04:00
Sage Weil
0f196265f0 ceph-disk: partprobe before settle when preparing dev
Two users have reported this fixes a problem with using --dmcrypt.

Fixes: #6966
Tested-by: Eric Eastman <eric0e@aol.com>
Signed-off-by: Sage Weil <sage@inktank.com>
2014-05-08 08:52:51 -07:00
Sage Weil
2e530771a8 Merge pull request #1788 from ceph/wip-da-sca-20140507
Fix some issues from SCA
2014-05-08 08:47:05 -07:00
Sage Weil
df94b8de57 Merge pull request #1790 from ceph/wip-krbd-fixes
Two minor krbd fixes

Reviewed-by: Sage Weil <sage@inktank.com>
2014-05-08 08:33:54 -07:00
Danny Al-Gaaf
569023202b rbd-fuse.c: remove ridiculous linebreak
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-08 17:08:32 +02:00
Danny Al-Gaaf
7a3724b037 rbd-fuse.c: fix indentation
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-08 17:05:48 +02:00
Danny Al-Gaaf
8101f980da rbd-fuse.c: fix -Wmissing-field-initializers
Init image_name with NULL to fix:

rbd_fuse/rbd-fuse.c:57:63: warning: missing field 'image_name' initializer
 [-Wmissing-field-initializers]
 struct rbd_options rbd_options = {"/etc/ceph/ceph.conf", "rbd"};

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-08 16:59:45 +02:00
Ilya Dryomov
65ca867e4f krbd: fix sysfs path in the comment
It's "/sys/bus/rbd/devices/<id>", but libudev works with devices and
not busses, so it's really "/sys/devices/rbd/<id>/".

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-05-08 18:17:48 +04:00
Ilya Dryomov
f1d953e08f krbd: match new with delete, not free()
struct krbd_ctx is allocated with new, use delete to get rid of it.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
2014-05-08 18:17:48 +04:00
Danny Al-Gaaf
082367e8b2 rbd.cc: init 'snap_protected' to fix -Wconditional-uninitialized
Init 'snap_protected' with false to fix:

rbd.cc:544:35: warning: variable 'snap_protected' may be uninitialized
 when used here [-Wconditional-uninitialized]
      f->dump_string("protected", snap_protected ? "true" : "false");
                                  ^~~~~~~~~~~~~~
rbd.cc:482:22: note: initialize the variable 'snap_protected' to silence
 this warning
  bool snap_protected;
                     ^
                      = false

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-08 16:09:07 +02:00
Danny Al-Gaaf
0d01563f8b rbd-fuse.c: init 'rbd' in open_rbd_image()
Init 'rbd' in open_rbd_image() with NULL and add a check for
'rbd' before dereference it to fix:

rbd_fuse/rbd-fuse.c:182:29: warning: variable 'rbd' may be uninitialized
 when used here [-Wconditional-uninitialized]
        int ret = rbd_open(ioctx, rbd->image_name, &(rbd->image), NULL);
                                  ^~~
rbd_fuse/rbd-fuse.c:151:27: note: initialize the variable 'rbd' to silence
 this warning
        struct rbd_openimage *rbd;
                                 ^
                                  = NULL

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-08 16:04:18 +02:00
Danny Al-Gaaf
cfc885fa56 ObjectCacher::_wait_for_write(): init 'bool done'
Init 'bool done' with 'false' to fix:

osdc/Objecter.h:915:27: warning: implicit conversion los: variable 'done'
 may be uninitialized when used here [-Wconditional-uninitialized]
      while (!done)
              ^~~~
osdc/ObjectCacher.cc:1399:14: note: initialize the variable 'done' to
 silence this warning
    bool done;
             ^
              = false

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-08 15:54:24 +02:00
Danny Al-Gaaf
8322878c22 Objecter::calc_target(): init best_locality with 0
Init best_locality to fix:

osdc/Objecter.cc:1519:26: warning: variable 'best_locality' may be
 uninitialized when used here [-Wconditional-uninitialized]
              (locality >= 0 && best_locality >= 0 &&
                                ^~~~~~~~~~~~~
osdc/Objecter.cc:1511:19: note: initialize the variable 'best_locality'
 to silence this warning
        int best_locality;
                         ^
                          = 0

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-08 15:47:08 +02:00
John Spray
13750a1d03 rgw: Remove trailing ; from fn definitions
Clang:
warning: extra ';' after member function
definition [-Wextra-semi]

Signed-off-by: John Spray <john.spray@inktank.com>
2014-05-08 13:28:56 +01:00
John Spray
447335aa08 os/FileJournal: remove unused attribute
Clang:
os/FileJournal.h:224:8: warning: private field 'is_bdev' is not used
[-Wunused-private-field]

Signed-off-by: John Spray <john.spray@inktank.com>
2014-05-08 13:28:56 +01:00
John Spray
f0231ef364 mon: Fix % escaping (\% should be %%)
Clang's -Wpedantic points this out.

Signed-off-by: John Spray <john.spray@inktank.com>
2014-05-08 13:28:56 +01:00
John Spray
d85b8faf11 mds: Remove redundant 'using namespace std'
This simply was not being used, and triggered
a clang warning.

Signed-off-by: John Spray <john.spray@inktank.com>
2014-05-08 13:28:55 +01:00
John Spray
3fd871270b encoding: make .size() to __u32 cast explicit
Caught by clang warning that this is a conversion
from "unsigned long" to "unsigned int" which can
lose precision.  However, this is the conversion
we want because our serialization format defines
sizes as 4 bytes.

Signed-off-by: John Spray <john.spray@inktank.com>
2014-05-08 13:28:55 +01:00
John Spray
6b15ce1cc6 fragtree: remove unused and broken verify()
This fn had a while(1) with no break: if anyone
had called it it would block forever.

Caught by clang's "function 'verify' could be declared
with attribute 'noreturn'" warning.

Signed-off-by: John Spray <john.spray@inktank.com>
2014-05-08 13:28:55 +01:00
John Spray
8584b40686 fragtree: remove dead code
Signed-off-by: John Spray <john.spray@inktank.com>
2014-05-08 13:28:55 +01:00
Danny Al-Gaaf
b4b79ebbec remove superfluous second semicolons at end of lines
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-08 10:09:25 +02:00
Danny Al-Gaaf
1214257af8 msg: fix some -Wextra-semi warnings
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-08 09:38:28 +02:00
Danny Al-Gaaf
9ad60428dc crush/builder.c: remove some unreachable return statements
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-08 09:34:21 +02:00
Yan, Zheng
3f837254dd Merge pull request #1742 from ceph/wip-multimds
Wip multimds
2014-05-08 11:36:23 +08:00
Yan, Zheng
34e27e46a5 mds: remove unused MMDSCacheRejoin::{MISSING,FULL}
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-05-08 11:29:18 +08:00
Yan, Zheng
1f60060258 mds: properly wake up dentry waiters after fragmenting dirfrag
When active MDS wants to fragment a replica dirfrag, it should set
the 'replay' parameter of MDCache::adjust_dir_fragments() to false.
It makes sure that CDir::merge/split wake up any dentry waiter.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-05-08 11:29:18 +08:00
Yan, Zheng
5fa2bae3a5 mds: choose MIX state if replica of scatterlock is in MIX state
After ScatterLock::infer_state_from_strong_rejoin() set scatterlock
to LOCK_MIX state, don't change the scatterlock to other state.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-05-08 11:29:17 +08:00
Yan, Zheng
3ca0d01801 mds: switch flushing ScatterLock to dirty ScatterLock after cache rejoin
Otherwise the flushing flag may confuse Locker::eval_gather() if MDS later
imports lock's parent inode.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-05-08 11:29:17 +08:00
Sage Weil
8f3409d1d2 client: unlink dentry on traceless rmdir, unlink reply
This used to be handled in _unlink() and _rmdir() even when a trace was
present in the reply, but this is cleaner.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-05-08 10:58:55 +08:00
Sage Weil
627e644c35 client: do not manually clean up on unlink/rmdir
The reply handler will do this in a safe, ordered fashion.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-05-08 10:58:55 +08:00
Sage Weil
727ad64871 client: refactor _lookup; fix NULL dentry case
Return ENOENT for a valid NULL dentry in our cache.  Restructure _lookup
to avoid duplicating some code.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-05-08 10:58:55 +08:00
Sage Weil
635607ffad client: skip insert_trace on safe requests
Only do this for the first reply.

Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2014-05-08 10:58:46 +08:00
Josh Durgin
ff3987d476 Merge pull request #1766 from ceph/wip-fsx-krbd
krbd mode for librbd_fsx

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-05-07 18:13:04 -07:00
Kevin Dalley
f1d412c303 doc: Common graph used in 2 quick start files
The graph in quick-ceph-deploy.rst applies to
quick-start-preflight.rst.
The graph in deploy seems more complete, so I put the common
documentation in quick-common.rst and had it included.
doc/conf.py has 'start/quick-common.rst' in exclude patterns so that
sphinx does not complain about this file not being in toc.

Signed-off-by: Kevin Dalley <kevin@kelphead.org>
2014-05-07 18:01:52 -07:00
Sage Weil
b1805e74b7 Merge pull request #1780 from ceph/wip-8299
rgw: fix stripe_size calculation

Reviewed-by: Sage Weil <sage@inktank.com>
2014-05-07 15:14:47 -07:00
Sage Weil
6a06f320c1 Merge pull request #1776 from ceph/wip-8289
rgw: cut short object read if a chunk returns error

Reviewed-by: Sage Weil <sage@inktank.com>
2014-05-07 15:03:31 -07:00
Sage Weil
7f5de5d00f Merge pull request #1773 from ceph/wip-8170
rgw: send user manifest header field

Reviewed-by: Sage Weil <sage@inktank.com>
2014-05-07 14:53:04 -07:00
Sage Weil
d1307631c9 vstart.sh: fix client admin socket path
Signed-off-by: Sage Weil <sage@inktank.com>
2014-05-07 14:46:53 -07:00
David Zafman
0ee409b609 osd: Remove classic scrub code since Argonaut osd can't join
Fixes: #7553

Signed-off-by: David Zafman <david.zafman@inktank.com>
2014-05-07 12:45:12 -07:00
Danny Al-Gaaf
81c74182aa ECUtil.h: clarify calculation with braces
Fix for cppcheck issue:
 [src/osd/ECUtil.h:61]: (style) Clarify calculation
  precedence for '%' and '?'.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2014-05-07 21:18:44 +02:00
Samuel Just
499b29a323 Merge pull request #1783 from guangyy/folder-merge-doc
Update doc to reflect the bahavior change for filestore_merge_threshold setting.

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-05-07 11:05:59 -07:00
Samuel Just
7b1b553de0 Merge pull request #1784 from ceph/wip-da-cleanup-includes
Cleanup some included headers

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-05-07 11:05:07 -07:00
Samuel Just
13f54b7dba PG::start_peering_interval: use check_new_interval for same_interval_since
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-05-07 11:01:49 -07:00