Map unwritten extents correctly for I/o completion processing
If we have multiple unwritten extents within a single page, we fail
to tell the I/o completion construction handlers we need a new handle
for the second and subsequent blocks in teh page. While we still issue
the I/O correctly, we do not have the correct ranges recorded in the
ioend structures and hence when we go to convert the unwritten extents
we screw it up.
Make sure we start a new ioend every time the mapping changes
so that we convert the correct ranges on I/O completion.
Date: Tue Jun 5 17:51:26 AEST 2007
Workarea: chook.melbourne.sgi.com:/build/dgc/isms/2.6.x-xfs
Inspected by: hch@xxxxxxxxxxxxx
The following file(s) were checked into:
longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb
Modid: xfs-linux-melb:xfs-kern:28797a
fs/xfs/linux-2.6/xfs_aops.c - 1.146 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_aops.c.diff?r1=text&tr1=1.146&r2=text&tr2=1.145&f=h
- If the mapping changes between blocks in xfs_page_state_convert, make
sure that we also start a new ioend for the new mapping.
|