• D
    xfs: don't release bios on completion immediately · 37992c18
    Dave Chinner 提交于
    Completion of an ioend requires us to walk the bufferhead list to
    end writback on all the bufferheads. This, in turn, is needed so
    that we can end writeback on all the pages we just did IO on.
    
    To remove our dependency on bufferheads in writeback, we need to
    turn this around the other way - we need to walk the pages we've
    just completed IO on, and then walk the buffers attached to the
    pages and complete their IO. In doing this, we remove the
    requirement for the ioend to track bufferheads directly.
    
    To enable IO completion to walk all the pages we've submitted IO on,
    we need to keep the bios that we used for IO around until the ioend
    has been completed. We can do this simply by chaining the bios to
    the ioend at completion time, and then walking their pages directly
    just before destroying the ioend.
    Signed-off-by: NDave Chinner <dchinner@redhat.com>
    [hch: changed the xfs_finish_page_writeback calling convention]
    Signed-off-by: NChristoph Hellwig <hch@lst.de>
    Reviewed-by: NBrian Foster <bfoster@redhat.com>
    Signed-off-by: NDave Chinner <david@fromorbit.com>
    
    37992c18
xfs_aops.h 2.6 KB