Previously we were not doing so, and that resulted in unpredictable loss
of xattrs from the client's perspective.
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Add xattr synthetic test to test ObjectStore xattr related interfaces.
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
If we are starting many daemons and hit an error, we normally note it and
move on. Do the same when doing the pre-mount step.
Fixes: #8554
Signed-off-by: Sage Weil <sage@inktank.com>
This includes tests for standard io and asynchronous io, similar to what is tested in the rados tests.
In addition, it includes in depth tests of the striping itself.
Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
The user facing API is implemented in libradosstriper.cc and the backend in RadosStriperImpl.cc.
Details on how the code works are given in a comment at the top of RadosStriperImple.cc
Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
No need to call ioctl(XFS_IOC_FSSETXATTR) if extsize is already set to
the value we want or if any extents are allocated - XFS will refuse to
change extsize in that's the case.
Fixes: #8241
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Latest version of librados uses write_full when writing entire object.
Should the documentation mention that the method "write" used to serve
this function.
Signed-off-by: Kevin Dalley <kevin@kelphead.org>
This fixes
In file included from test/perf_counters.cc:19:0:
./common/perf_counters.h: In member function ‘std::pair PerfCounters::perf_counter_data_any_d::read_avg() const’:
warning: ./common/perf_counters.h:156:36: comparison between signed and unsigned integer expressions [-Wsign-compare]
} while (avgcount2.read() != count);
^
Signed-off-by: Sage Weil <sage@inktank.com>
In file included from test/objectstore/store_test.cc:33:0:
../src/gtest/include/gtest/gtest.h: In function ‘testing::AssertionResult testing::internal::CmpHelperNE(const char*, const char*, const T1&, const T2&) [with T1 = long unsigned int, T2 = int]’:
test/objectstore/store_test.cc:82:5: instantiated from here
warning: ../src/gtest/include/gtest/gtest.h:1379:1: comparison between signed and unsigned integer expressions [-Wsign-compare]
Signed-off-by: Sage Weil <sage@inktank.com>
This interface allows to manipulate striped objects stored in a rados cluster with a standard open/read/write/stat/close/remove API.
Asynchronous APIs are also provided for data transfers and both C and C++ APIs are present.
Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
These methods have side-effects: they move the decode iterator *and*
return a value. Rename them to avoid confusion with typical get_*
accessors.
Signed-off-by: Sage Weil <sage@inktank.com>
Don't assign return value of i.get_length() to a variable until
they are really used. Added comment on what is the intention of
the variables.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Don't assign return value of i.get_length() to a variable until
they are really used. Added comment on what is the intention of
the variables.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>