Fix RPM building instructions: this has been broken since
libs3 was included inline in the ceph repo as a submodule.
"rpmbuild -tb" was concatenating the ceph.spec and
libs3.spec files, resulting in something that didn't work.
Also, the instructions suggested downloading a .tar.gz file
whereas the specfile requires a .tar.bz2 file.
Also, add a convenient yum command line for getting the compile
dependencies on Fedora 20.
Signed-off-by: John Spray <john.spray@inktank.com>
Don't check for 'fd' but for the return value of the ::unlinkat() call.
Fix for:
[src/os/BtrfsFileStoreBackend.cc:72] -> [src/os/BtrfsFileStoreBackend.cc:74]:
(warning) Opposite conditions in nested 'if' blocks lead to a dead code block.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Fix for:
[src/rgw/rgw_user.cc:778]: (style) Variable 'subuser' is
assigned a value that is never used.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Remove dead assignment and unsued variable 'secret_key'. Check
op_state.get_access_key() directly for emptiness without extra
variable. Fix comment above check for access key.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Fix for:
[src/rgw/rgw_main.cc:1086]: (style) Variable 'frontend_frameworks'
is assigned a value that is never used.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Fix for:
[src/rgw/rgw_main.cc:1086]: (style) Variable 'frontend_frameworks' is
assigned a value that is never used.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Remove some since long time unused code and variables (commented out
since 2009).
Fix for:
[src/mds/MDBalancer.cc:757]: (style) Variable 'total_sent' is
assigned a value that is never used.
[src/mds/MDBalancer.cc:665]: (style) Variable 'total_goal' is
assigned a value that is never used.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Fix for:
[src/client/SyntheticClient.cc:1143]: (style) Expression is always
false because 'else if' condition matches previous condition at line 1139.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Fix for:
[src/test/cls_rbd/test_cls_rbd.cc:82]: (error) Mismatching allocation
and deallocation: b
[src/test/cls_rbd/test_cls_rbd.cc:95]: (error) Mismatching allocation
and deallocation: b
[src/test/cls_rbd/test_cls_rbd.cc:97]: (error) Mismatching allocation
and deallocation: b
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Use empty() instead of 'size() == 0' to fix:
[src/test/ObjectMap/KeyValueDBMemory.cc:83]: (performance)
Possible inefficient checking for 'db' emptiness.
[src/test/ObjectMap/KeyValueDBMemory.cc:97]: (performance)
Possible inefficient checking for 'db' emptiness.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
There is no need to reset 'r' to '0'.
Fix for:
3759 r = 0;
Value stored to 'r' is never read
4093 r = 0;
Value stored to 'r' is never read
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Fix for:
[src/key_value_store/cls_kvs.cc:383] -> [src/key_value_store/cls_kvs.cc:386]:
(performance) Variable 'r' is reassigned a value before the old one has been used.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Remove bool variable 'same_email' compare emails directly in
if check.
Fix for:
[src/rgw/rgw_user.cc:1926] -> [src/rgw/rgw_user.cc:1927]: (performance)
Variable 'same_email' is reassigned a value before the old one has been used.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Fix possible NULL pointer dereference of 'inode' in ceph_ll_lookup_inode().
It's not enough to check for 'inode' without assert or error handling before
assert for '*inode != NULL' since this doesn't handle the 'inode == NULL'
case for the later calls.
Fix for:
1192 r = (cmount->get_client())->lookup_parent(*inode, &parent);
5 Dereference of null pointer (loaded from variable 'inode')
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Otherwise, redirected ops will suddenly have a different tid
and will become uncancelable.
Fixes: #7588
Signed-off-by: Samuel Just <sam.just@inktank.com>
We call start_flush() with a NULL op in a couple different places. Do not
put a NULL pointer on the dup_ops list or we will crash later.
Fixes: #8328
Signed-off-by: Sage Weil <sage@inktank.com>
Fix for:
213 uint64_t new_lock_end = new_lock.start + new_lock.length - 1;
Value stored to 'new_lock_end' during its initialization is never read
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Fix for:
212 uint64_t new_lock_start = new_lock.start;
Value stored to 'new_lock_start' during its initialization is
never read
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Remove initialization of 'destdnl' since the assigned value was
never used and the same call is used some lines later again before
first usage. Fix for:
6579 CDentry::linkage_t *destdnl = destdn->get_linkage();
Value stored to 'destdnl' during its initialization is never read
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
If a client is sending a sequence of ops (say, a, b, c, d) and partway
through that sequence it receives an OSDMap update that changes the
overlay, the ops will get send to different pools, and the replies will
come back completely out of order.
To fix this, force a resend of all outstanding ops any time the overlay
changes.
Fixes: #8305
Signed-off-by: Sage Weil <sage@inktank.com>
If an op is sent before last_force_op_resend, and the client's feature is
present, drop the op because we know they will resend.
Signed-off-by: Sage Weil <sage@inktank.com>
If we are a client, and process a map that sets last_force_op_resend to
the current epoch, force a resend of this op.
If the OSD expects us to do this, it will discard our previous op. If the
OSD is old, it will process the old one, this will appear as a dup, and we
are no worse off than before.
Signed-off-by: Sage Weil <sage@inktank.com>