mirror of
https://github.com/ceph/ceph
synced 2025-01-30 23:13:44 +00:00
v0.78
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJTLLeZAAoJEH6/3V0X7TFtOTMP/Ru4Y8raF/yKFIKeqCu98l51 CHYEQYHhLviDy6l0JJTZHVjkzYyfD1gf015ggIXGgQ45yp0dY2+Rv5kNJlRn9t+c HUyNO2Qaxe+9wmApkIIoNMrkmAcp2FVSNN0Vuri+LmlQkGJdRFwH1qfBnmqEMI22 /4Zfca68LTFe2RzhE6sF1kqaHJAXx6YpApSyDJ5tzYNIk6JQ5sX4aObIBzPYYSZZ +VYbiQgV/UutiO0j2+V4Cg+Bm0tu0d4aoQam5rIYVDdzm17phzox4Y2r4XlTNe21 5hz1MFGLbvi+gcwOiChQbOerGWa9MWhSstcAKuUmf8la1NHgG13rYVjbWnpiGNrH nOblSypZarCLkypOg8Ogv5wS8Q5d4j8MrU2lqciJTmMOVMtIonGg33qpS6WSelAa MetDgWqMCqnSeVj0kILE7rSRSZ0hnU4YRPu6mhHaahttdleb4jxQALT8YESp9Yep yH5BZHrfaUbqnSek/Pe+rNk+D4fsXMzsRI4YrqpLl/EWTmbtFWS5FXxCzfwQThA9 SuhZtOCiKMykt/fyIkW9CxQyanGM1uZdRV5driu+2YbAtHQO7zT4sBV8RicEdX3M 3HHDuuSWzjEN3ASkXUuJYncnXDLxYSiKvXCpTZ5+n5c/MtK7isQnmdt3PJRN5pKJ aQp3CL1bTrOue/yhNd/o =3q4f -----END PGP SIGNATURE----- Merge tag 'v0.78' v0.78
This commit is contained in:
commit
361b251e15
@ -8,7 +8,7 @@ AC_PREREQ(2.59)
|
||||
# VERSION define is not used by the code. It gets a version string
|
||||
# from 'git describe'; see src/ceph_ver.[ch]
|
||||
|
||||
AC_INIT([ceph], [0.77], [ceph-devel@vger.kernel.org])
|
||||
AC_INIT([ceph], [0.78], [ceph-devel@vger.kernel.org])
|
||||
|
||||
# Create release string. Used with VERSION for RPMs.
|
||||
RPM_RELEASE=0
|
||||
|
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
||||
ceph (0.78-1) stable; urgency=low
|
||||
|
||||
* New upsream release
|
||||
|
||||
-- Alfredo Deza <alfredo.deza@inktank.com> Fri, 21 Mar 2014 22:05:12 +0000
|
||||
|
||||
ceph (0.77-1) stable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
|
@ -1421,6 +1421,10 @@ void ReplicatedPG::do_op(OpRequestRef op)
|
||||
this);
|
||||
ctx->op_t = pgbackend->get_transaction();
|
||||
ctx->obc = obc;
|
||||
|
||||
if (!obc->obs.exists)
|
||||
ctx->snapset_obc = get_object_context(obc->obs.oi.soid.get_snapdir(), false);
|
||||
|
||||
if (m->get_flags() & CEPH_OSD_FLAG_SKIPRWLOCKS) {
|
||||
dout(20) << __func__ << ": skipping rw locks" << dendl;
|
||||
} else if (m->get_flags() & CEPH_OSD_FLAG_FLUSH) {
|
||||
@ -4981,15 +4985,8 @@ void ReplicatedPG::finish_ctx(OpContext *ctx, int log_op_type)
|
||||
|
||||
if (ctx->new_obs.exists) {
|
||||
if (!ctx->obs->exists) {
|
||||
// if we logically recreated the head, remove old _snapdir object
|
||||
hobject_t snapoid(soid.oid, soid.get_key(), CEPH_SNAPDIR, soid.hash,
|
||||
info.pgid.pool(), soid.get_namespace());
|
||||
|
||||
ctx->snapset_obc = get_object_context(snapoid, false);
|
||||
if (ctx->snapset_obc && ctx->snapset_obc->obs.exists) {
|
||||
bool got = ctx->snapset_obc->get_write(ctx->op);
|
||||
assert(got);
|
||||
ctx->release_snapset_obc = true;
|
||||
hobject_t snapoid = soid.get_snapdir();
|
||||
ctx->log.push_back(pg_log_entry_t(pg_log_entry_t::DELETE, snapoid,
|
||||
ctx->at_version,
|
||||
ctx->snapset_obc->obs.oi.version,
|
||||
|
@ -643,11 +643,30 @@ protected:
|
||||
*/
|
||||
bool get_rw_locks(OpContext *ctx) {
|
||||
if (ctx->op->may_write() || ctx->op->may_cache()) {
|
||||
if (ctx->obc->get_write(ctx->op)) {
|
||||
ctx->lock_to_release = OpContext::W_LOCK;
|
||||
/* If snapset_obc, !obc->obs->exists and we need to
|
||||
* get a write lock on the snapdir as well as the
|
||||
* head. Fortunately, we are guarranteed to get a
|
||||
* write lock on the head if !obc->obs->exists
|
||||
*/
|
||||
if (ctx->snapset_obc) {
|
||||
assert(!ctx->obc->obs.exists);
|
||||
if (ctx->snapset_obc->get_write(ctx->op)) {
|
||||
ctx->release_snapset_obc = true;
|
||||
ctx->lock_to_release = OpContext::W_LOCK;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
// we are creating it and have the only ref
|
||||
bool got = ctx->obc->get_write(ctx->op);
|
||||
assert(got);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
if (ctx->obc->get_write(ctx->op)) {
|
||||
ctx->lock_to_release = OpContext::W_LOCK;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
assert(ctx->op->may_read());
|
||||
|
Loading…
Reference in New Issue
Block a user