Messages in this thread | | | Date | Wed, 16 Sep 2009 20:29:32 +0200 | From | Jens Axboe <> | Subject | Re: [PATCH 10/16] writeback: splice dirty inode entries to default bdi on bdi_destroy() |
| |
On Wed, Sep 16 2009, Jan Kara wrote: > On Wed 16-09-09 15:24:48, Jens Axboe wrote: > > We cannot safely ensure that the inodes are all gone at this point > > in time, and we must not destroy this bdi with inodes having off it. > > So just splice our entries to the default bdi since that one will > > always persist. > I'd at least add a comment like > "XXX: This is probably a bug but let's workaround it for now." > And either remove the code or update the comment when this gets resolved.
Thinking more about it - what if inodes happen to get requeued on the final flush? bdi_destroy() likely can't wait for flushing to happen, since (depending on the tear down cycle), part of the device may be gone already.
And I did mean __sync_filesystem() -> __sync_blockdev(), since this is what happen on last close. So it could also be that we need something stronger to guarantee that things are really gone.
-- Jens Axboe
| |