Fixing the error caused by the conflict between DIO Write's conversion and
concurrent truncate operations. Use vn_iowait to wait for the completion of any
pending DIOs. Since the truncate requires exclusive IOLOCK, so this blocks any
further DIO operations since DIO write also needs exclusive IOBLOCK. This
serves as a barrier and prevent any potential starvation.
Date: Mon Mar 20 13:31:13 PST 2006
Workarea: attica.americas.sgi.com:/data/lwork/attica3/yingping/xfs_kern_947420
Inspected by: dgc,nathans
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/xfs-kern/xfs-linux
Modid: xfs-linux:xfs-kern:208088a
xfs_vnodeops.c - 1.668 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.668&r2=text&tr2=1.667&f=h
- Add vn_iowait to wait for the completion of any pending DIO write for
truncate operation
xfs_inode.c - 1.433 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.433&r2=text&tr2=1.432&f=h
- Add vn_iowait to wait for the completion of any pending DIO write for
truncate operation
|