Re: question about ReplicatedPG::do_op

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



the RWState structure was used to reserve the waited ops

2016-12-05 17:07 GMT+08:00 xxhdx1985126 <xxhdx1985126@xxxxxxx>:
> Hi, everyone.
>
> I'm trying to read the source code of ceph's read/write operation processing. In ReplicatedPG::do_op, I found that when the call to "get_rw_locks(write_ordered, ctx)" fail, as showed in the following, the method ReplicatedPG::do_op will return. However, when ReplicatedPG::do_op is called, the op is dequeued from the osd_op_wq, wouldn't the op be lost if do_op return without requeueing the op?  If it is lost, wouldn't this lead to an error?  Thanks.
>
>          else if (!get_rw_locks(write_ordered, ctx)) {
>                 dout(20)
>                                         << __func__ << " waiting for rw locks " << dendl;
>                 op->mark_delayed("waiting for rw locks");
>                 close_op_ctx(ctx, -EBUSY);
>                 return;
>         }



-- 
Thank you!
HuangJun
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux