xfs: Sort delayed write buffers before dispatch
authorDave Chinner <david@fromorbit.com>
Tue, 26 Jan 2010 04:13:25 +0000 (15:13 +1100)
committerDave Chinner <david@fromorbit.com>
Tue, 26 Jan 2010 04:13:25 +0000 (15:13 +1100)
commit089716aa1480b7197bcd678b8477774c379a2768
tree63d38d2a210dc103ac106ebf88eecf94005c31b2
parentd808f617ad00a413585b806de340feda5ad9a2da
xfs: Sort delayed write buffers before dispatch

Currently when the xfsbufd writes delayed write buffers, it pushes
them to disk in the order they come off the delayed write list. If
there are lots of buffers Ń•pread widely over the disk, this results
in overwhelming the elevator sort queues in the block layer and we
end up losing the posibility of merging adjacent buffers to minimise
the number of IOs.

Use the new generic list_sort function to sort the delwri dispatch
queue before issue to ensure that the buffers are pushed in the most
friendly order possible to the lower layers.

Signed-off-by: Dave Chinner <david@fromorbit.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/linux-2.6/xfs_buf.c