[XFS] Fix a bug in xfs_iomap for extent handling of write cases
authorRussell Cattelan <cattelan@sgi.com>
Fri, 6 May 2005 13:42:22 +0000 (06:42 -0700)
committerChristoph Hellwig <hch@melbourne.sgi.com>
Fri, 6 May 2005 13:42:22 +0000 (06:42 -0700)
This may be the cause of several open PV's of incorrect
delay flags being set and then tripping asserts.
Do not return a delay alloc extent when the caller is asking to do a write.

SGI Modid: xfs-linux:xfs-kern:189616a

Signed-off-by: Russell Cattelan <cattelan@sgi.com>
Signed-off-by: Christoph Hellwig <hch@sgi.com>
fs/xfs/xfs_iomap.c

index 991f8a61f7c4fa4d91b187e0ee5507e9fc3db3c0..469e1a7939d44fbbe4dfbdbe8c9b2e90f0d4f7f2 100644 (file)
@@ -278,7 +278,9 @@ phase2:
        switch (flags & (BMAPI_WRITE|BMAPI_ALLOCATE|BMAPI_UNWRITTEN)) {
        case BMAPI_WRITE:
                /* If we found an extent, return it */
-               if (nimaps && (imap.br_startblock != HOLESTARTBLOCK)) {
+               if (nimaps &&
+                   (imap.br_startblock != HOLESTARTBLOCK) && 
+                   (imap.br_startblock != DELAYSTARTBLOCK)) {
                        xfs_iomap_map_trace(XFS_IOMAP_WRITE_MAP, io,
                                        offset, count, iomapp, &imap, flags);
                        break;