summaryrefslogtreecommitdiffstats
path: root/include/linux/iomap.h
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2017-10-01 17:55:54 -0400
committerTheodore Ts'o <tytso@mit.edu>2017-10-01 17:55:54 -0400
commit19fe5f643f89f29c1a16bc474d91506b0e9a6232 (patch)
treea6fce3b138de34c1058b807cff32bbd375172b04 /include/linux/iomap.h
parent9e66317d3c92ddaab330c125dfe9d06eee268aff (diff)
iomap: Switch from blkno to disk offset
Replace iomap->blkno, the sector number, with iomap->addr, the disk offset in bytes. For invalid disk offsets, use the special value IOMAP_NULL_ADDR instead of IOMAP_NULL_BLOCK. This allows to use iomap for mappings which are not block aligned, such as inline data on ext4. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> # iomap, xfs Reviewed-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'include/linux/iomap.h')
-rw-r--r--include/linux/iomap.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/include/linux/iomap.h b/include/linux/iomap.h
index f64dc6ce5161..7b8a615fa021 100644
--- a/include/linux/iomap.h
+++ b/include/linux/iomap.h
@@ -15,8 +15,8 @@ struct vm_fault;
15 */ 15 */
16#define IOMAP_HOLE 0x01 /* no blocks allocated, need allocation */ 16#define IOMAP_HOLE 0x01 /* no blocks allocated, need allocation */
17#define IOMAP_DELALLOC 0x02 /* delayed allocation blocks */ 17#define IOMAP_DELALLOC 0x02 /* delayed allocation blocks */
18#define IOMAP_MAPPED 0x03 /* blocks allocated @blkno */ 18#define IOMAP_MAPPED 0x03 /* blocks allocated at @addr */
19#define IOMAP_UNWRITTEN 0x04 /* blocks allocated @blkno in unwritten state */ 19#define IOMAP_UNWRITTEN 0x04 /* blocks allocated at @addr in unwritten state */
20 20
21/* 21/*
22 * Flags for all iomap mappings: 22 * Flags for all iomap mappings:
@@ -30,12 +30,12 @@ struct vm_fault;
30#define IOMAP_F_SHARED 0x20 /* block shared with another file */ 30#define IOMAP_F_SHARED 0x20 /* block shared with another file */
31 31
32/* 32/*
33 * Magic value for blkno: 33 * Magic value for addr:
34 */ 34 */
35#define IOMAP_NULL_BLOCK -1LL /* blkno is not valid */ 35#define IOMAP_NULL_ADDR -1ULL /* addr is not valid */
36 36
37struct iomap { 37struct iomap {
38 sector_t blkno; /* 1st sector of mapping, 512b units */ 38 u64 addr; /* disk offset of mapping, bytes */
39 loff_t offset; /* file offset of mapping, bytes */ 39 loff_t offset; /* file offset of mapping, bytes */
40 u64 length; /* length of mapping, bytes */ 40 u64 length; /* length of mapping, bytes */
41 u16 type; /* type of mapping */ 41 u16 type; /* type of mapping */