|
|
| version 1.55, 2007/09/13 06:10:29 | version 1.56, 2007/09/13 06:11:17 |
|---|---|
| Line 199 xfs_iomap( | Line 199 xfs_iomap( |
| if (XFS_FORCED_SHUTDOWN(mp)) | if (XFS_FORCED_SHUTDOWN(mp)) |
| return XFS_ERROR(EIO); | return XFS_ERROR(EIO); |
| switch (flags & | switch (flags & (BMAPI_READ | BMAPI_WRITE | BMAPI_ALLOCATE)) { |
| (BMAPI_READ | BMAPI_WRITE | BMAPI_ALLOCATE | | |
| BMAPI_UNWRITTEN)) { | |
| case BMAPI_READ: | case BMAPI_READ: |
| xfs_iomap_enter_trace(XFS_IOMAP_READ_ENTER, io, offset, count); | xfs_iomap_enter_trace(XFS_IOMAP_READ_ENTER, io, offset, count); |
| lockmode = XFS_LCK_MAP_SHARED(mp, io); | lockmode = XFS_LCK_MAP_SHARED(mp, io); |
| Line 226 xfs_iomap( | Line 224 xfs_iomap( |
| XFS_ILOCK(mp, io, lockmode); | XFS_ILOCK(mp, io, lockmode); |
| } | } |
| break; | break; |
| case BMAPI_UNWRITTEN: | |
| goto phase2; | |
| default: | default: |
| BUG(); | BUG(); |
| } | } |
| Line 246 xfs_iomap( | Line 242 xfs_iomap( |
| if (error) | if (error) |
| goto out; | goto out; |
| phase2: | switch (flags & (BMAPI_WRITE|BMAPI_ALLOCATE)) { |
| switch (flags & (BMAPI_WRITE|BMAPI_ALLOCATE|BMAPI_UNWRITTEN)) { | |
| case BMAPI_WRITE: | case BMAPI_WRITE: |
| /* If we found an extent, return it */ | /* If we found an extent, return it */ |
| if (nimaps && | if (nimaps && |
| Line 285 phase2: | Line 280 phase2: |
| error = XFS_IOMAP_WRITE_ALLOCATE(mp, io, offset, count, | error = XFS_IOMAP_WRITE_ALLOCATE(mp, io, offset, count, |
| &imap, &nimaps); | &imap, &nimaps); |
| break; | break; |
| case BMAPI_UNWRITTEN: | |
| lockmode = 0; | |
| error = XFS_IOMAP_WRITE_UNWRITTEN(mp, io, offset, count); | |
| nimaps = 0; | |
| break; | |
| } | } |
| if (nimaps) { | if (nimaps) { |