Re: [PATCH 09/14] libceph: introduce ceph_osdc_cancel_request()

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

 



On Mon, Jun 30, 2014 at 5:39 PM, Alex Elder <elder@xxxxxxxx> wrote:
> On 06/25/2014 12:16 PM, Ilya Dryomov wrote:
>> Introduce ceph_osdc_cancel_request() intended for canceling requests
>> from the higher layers (rbd and cephfs).  Because higher layers are in
>> charge and are supposed to know what and when they are canceling, the
>> request is not completed, only unref'ed and removed from the libceph
>> data structures.
>
> This seems reasonable.
>
> But you make two changes here that I'd like to see a little
> more explanation on.  They seem significant enough to warrant
> a little more attention in the commit description.
>
> - __cancel_request() is no longer called when
>   ceph_osdc_wait_request() fails due to an
>   an interrupt.  This is my main concern, and I
>   plan to work through it but I'm in a small hurry
>   right now.

Perhaps it should have been a separate commit.  __unregister_request()
revokes r_request, so I opted for not trying to do it twice.  As for
the r_sent condition and assignment, it doesn't seem to make much of
a difference, given that the request is about to be unregistered
anyway.

> - __unregister_linger_request() is now called when
>   a request is canceled, but it wasn't before.  (Since
>   we're consistent about setting the r_linger flag
>   this should be fine, but it *is* a behavior change.)

The general goal here is to make ceph_osdc_cancel_request() cancel
*any* request correctly, so if r_linger is set, which means that the
request in question *could* be lingering, __unregister_linger_request()
is called.

Thanks,

                Ilya
--
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