]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: consume iodone callback items on buffers as they are processed
authorDave Chinner <dchinner@redhat.com>
Fri, 3 Dec 2010 06:00:52 +0000 (17:00 +1100)
committerDave Chinner <david@fromorbit.com>
Fri, 3 Dec 2010 06:00:52 +0000 (17:00 +1100)
commitd9aa01b5d4f7b4c44ab647d3aac7984cf3d04632
tree1970fa2af39b277e375c059d0e5654e890c44511
parentb71e959c61f623311cb6408f5bb563df97d0c783
xfs: consume iodone callback items on buffers as they are processed

To allow buffer iodone callbacks to consume multiple items off the
callback list, first we need to convert the xfs_buf_do_callbacks()
to consume items and always pull the next item from the head of the
list.

The means the item list walk is never dependent on knowing the
next item on the list and hence allows callbacks to remove items
from the list as well. This allows callbacks to do bulk operations
by scanning the list for identical callbacks, consuming them all
and then processing them in bulk, negating the need for multiple
callbacks of that type.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/xfs_buf_item.c