Re: Distributed storage.
From: Jens Axboe <hidden>
Date: 2007-08-13 09:13:51
Also in:
linux-fsdevel, lkml
On Mon, Aug 13 2007, Daniel Phillips wrote:
On Monday 13 August 2007 00:45, Jens Axboe wrote:quoted
On Mon, Aug 13 2007, Jens Axboe wrote:quoted
quoted
You did not comment on the one about putting the bio destructor in the ->endio handler, which looks dead simple. The majority of cases just use the default endio handler and the default destructor. Of the remaining cases, where a specialized destructor is needed, typically a specialized endio handler is too, so combining is free. There are few if any cases where a new specialized endio handler would need to be written.We could do that without too much work, I agree.But that idea fails as well, since reference counts and IO completion are two completely seperate entities. So unless end IO just happens to be the last user holding a reference to the bio, you cannot free it.That is not a problem. When bio_put hits zero it calls ->endio instead of the destructor. The ->endio sees that the count is zero and destroys the bio.
You can't be serious? You'd stall end io completion notification because someone holds a reference to a bio. Surely you jest. Needless to say, that will never go in. -- Jens Axboe