diff options
author | Christoph Hellwig <hch@infradead.org> | 2010-04-28 08:28:55 -0400 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2010-05-19 10:58:17 -0400 |
commit | e513182d4d7ec8f1870ae368c549ef2838e2c105 (patch) | |
tree | 1dc543b7f798c4826684bf2a0a5d83bd363f246f /fs/xfs/xfs_iomap.c | |
parent | 8699bb0a480193e62d5ccb9c86e2c26b407090a8 (diff) |
xfs: report iomap_bn in block base
Report the iomap_bn field of struct xfs_iomap in terms of filesystem
blocks instead of in terms of bytes. Shift the byte conversions
into the caller, and replace the IOMAP_DELAY and IOMAP_HOLE flag
checks with checks for HOLESTARTBLOCK and DELAYSTARTBLOCK.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_iomap.c')
-rw-r--r-- | fs/xfs/xfs_iomap.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index 49b5ad22a9d8..fbe5d32f9ef5 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c | |||
@@ -64,24 +64,15 @@ xfs_imap_to_bmap( | |||
64 | int imaps, /* Number of imap entries */ | 64 | int imaps, /* Number of imap entries */ |
65 | int flags) | 65 | int flags) |
66 | { | 66 | { |
67 | xfs_fsblock_t start_block; | ||
68 | |||
69 | iomapp->iomap_offset = imap->br_startoff; | 67 | iomapp->iomap_offset = imap->br_startoff; |
70 | iomapp->iomap_bsize = imap->br_blockcount; | 68 | iomapp->iomap_bsize = imap->br_blockcount; |
71 | iomapp->iomap_flags = flags; | 69 | iomapp->iomap_flags = flags; |
70 | iomapp->iomap_bn = imap->br_startblock; | ||
72 | 71 | ||
73 | start_block = imap->br_startblock; | 72 | if (imap->br_startblock != HOLESTARTBLOCK && |
74 | if (start_block == HOLESTARTBLOCK) { | 73 | imap->br_startblock != DELAYSTARTBLOCK && |
75 | iomapp->iomap_bn = IOMAP_DADDR_NULL; | 74 | ISUNWRITTEN(imap)) |
76 | iomapp->iomap_flags |= IOMAP_HOLE; | 75 | iomapp->iomap_flags |= IOMAP_UNWRITTEN; |
77 | } else if (start_block == DELAYSTARTBLOCK) { | ||
78 | iomapp->iomap_bn = IOMAP_DADDR_NULL; | ||
79 | iomapp->iomap_flags |= IOMAP_DELAY; | ||
80 | } else { | ||
81 | iomapp->iomap_bn = xfs_fsb_to_db(ip, start_block); | ||
82 | if (ISUNWRITTEN(imap)) | ||
83 | iomapp->iomap_flags |= IOMAP_UNWRITTEN; | ||
84 | } | ||
85 | } | 76 | } |
86 | 77 | ||
87 | int | 78 | int |