{
get();
aio_write_list_lock.Lock();
- assert(!c->io);
- c->io = this;
+ assert(c->io == this);
c->aio_write_seq = ++aio_write_seq;
aio_write_list.push_back(&c->aio_write_list_item);
aio_write_list_lock.Unlock();
{
aio_write_list_lock.Lock();
assert(c->io == this);
- c->io = NULL;
c->aio_write_list_item.remove_myself();
aio_write_cond.Signal();
aio_write_list_lock.Unlock();
{
Context *onack = new C_aio_Ack(c);
+ c->io = this;
c->pbl = pbl;
Mutex::Locker l(*lock);
Context *onack = new C_aio_Ack(c);
Context *oncommit = new C_aio_Safe(c);
+ c->io = this;
queue_aio_write(c);
Mutex::Locker l(*lock);
Context *onack = new C_aio_Ack(c);
eversion_t ver;
+ c->io = this;
c->pbl = pbl;
Mutex::Locker l(*lock);
{
Context *onack = new C_aio_Ack(c);
+ c->io = this;
c->buf = buf;
c->maxlen = len;
onack->data_bl = data_bl;
eversion_t ver;
+ c->io = this;
c->pbl = NULL;
Mutex::Locker l(*lock);
if (snap_seq != CEPH_NOSNAP)
return -EROFS;
+ c->io = this;
queue_aio_write(c);
Context *onack = new C_aio_Ack(c);
if (snap_seq != CEPH_NOSNAP)
return -EROFS;
+ c->io = this;
queue_aio_write(c);
Context *onack = new C_aio_Ack(c);
if (snap_seq != CEPH_NOSNAP)
return -EROFS;
+ c->io = this;
queue_aio_write(c);
Context *onack = new C_aio_Ack(c);
{
Context *onack = new C_aio_Ack(c);
+ c->io = this;
+
Mutex::Locker l(*lock);
::ObjectOperation rd;
prepare_assert_ops(&rd);