diff options
Diffstat (limited to 'fs/xfs/xfs_iomap.h')
| -rw-r--r-- | fs/xfs/xfs_iomap.h | 47 |
1 files changed, 1 insertions, 46 deletions
diff --git a/fs/xfs/xfs_iomap.h b/fs/xfs/xfs_iomap.h index 174f29990991..81ac4afd45b3 100644 --- a/fs/xfs/xfs_iomap.h +++ b/fs/xfs/xfs_iomap.h | |||
| @@ -18,19 +18,6 @@ | |||
| 18 | #ifndef __XFS_IOMAP_H__ | 18 | #ifndef __XFS_IOMAP_H__ |
| 19 | #define __XFS_IOMAP_H__ | 19 | #define __XFS_IOMAP_H__ |
| 20 | 20 | ||
| 21 | #define IOMAP_DADDR_NULL ((xfs_daddr_t) (-1LL)) | ||
| 22 | |||
| 23 | |||
| 24 | typedef enum { /* iomap_flags values */ | ||
| 25 | IOMAP_READ = 0, /* mapping for a read */ | ||
| 26 | IOMAP_HOLE = 0x02, /* mapping covers a hole */ | ||
| 27 | IOMAP_DELAY = 0x04, /* mapping covers delalloc region */ | ||
| 28 | IOMAP_REALTIME = 0x10, /* mapping on the realtime device */ | ||
| 29 | IOMAP_UNWRITTEN = 0x20, /* mapping covers allocated */ | ||
| 30 | /* but uninitialized file data */ | ||
| 31 | IOMAP_NEW = 0x40 /* just allocate */ | ||
| 32 | } iomap_flags_t; | ||
| 33 | |||
| 34 | typedef enum { | 21 | typedef enum { |
| 35 | /* base extent manipulation calls */ | 22 | /* base extent manipulation calls */ |
| 36 | BMAPI_READ = (1 << 0), /* read extents */ | 23 | BMAPI_READ = (1 << 0), /* read extents */ |
| @@ -52,43 +39,11 @@ typedef enum { | |||
| 52 | { BMAPI_MMAP, "MMAP" }, \ | 39 | { BMAPI_MMAP, "MMAP" }, \ |
| 53 | { BMAPI_TRYLOCK, "TRYLOCK" } | 40 | { BMAPI_TRYLOCK, "TRYLOCK" } |
| 54 | 41 | ||
| 55 | /* | ||
| 56 | * xfs_iomap_t: File system I/O map | ||
| 57 | * | ||
| 58 | * The iomap_bn field is expressed in 512-byte blocks, and is where the | ||
| 59 | * mapping starts on disk. | ||
| 60 | * | ||
| 61 | * The iomap_offset, iomap_bsize and iomap_delta fields are in bytes. | ||
| 62 | * iomap_offset is the offset of the mapping in the file itself. | ||
| 63 | * iomap_bsize is the size of the mapping, iomap_delta is the | ||
| 64 | * desired data's offset into the mapping, given the offset supplied | ||
| 65 | * to the file I/O map routine. | ||
| 66 | * | ||
| 67 | * When a request is made to read beyond the logical end of the object, | ||
| 68 | * iomap_size may be set to 0, but iomap_offset and iomap_length should be set | ||
| 69 | * to the actual amount of underlying storage that has been allocated, if any. | ||
| 70 | */ | ||
| 71 | |||
| 72 | typedef struct xfs_iomap { | ||
| 73 | xfs_daddr_t iomap_bn; /* first 512B blk of mapping */ | ||
| 74 | xfs_buftarg_t *iomap_target; | ||
| 75 | xfs_off_t iomap_offset; /* offset of mapping, bytes */ | ||
| 76 | xfs_off_t iomap_bsize; /* size of mapping, bytes */ | ||
| 77 | xfs_off_t iomap_delta; /* offset into mapping, bytes */ | ||
| 78 | iomap_flags_t iomap_flags; | ||
| 79 | } xfs_iomap_t; | ||
| 80 | |||
| 81 | struct xfs_inode; | 42 | struct xfs_inode; |
| 82 | struct xfs_bmbt_irec; | 43 | struct xfs_bmbt_irec; |
| 83 | 44 | ||
| 84 | extern int xfs_iomap(struct xfs_inode *, xfs_off_t, ssize_t, int, | 45 | extern int xfs_iomap(struct xfs_inode *, xfs_off_t, ssize_t, int, |
| 85 | struct xfs_iomap *, int *); | 46 | struct xfs_bmbt_irec *, int *, int *); |
| 86 | extern int xfs_iomap_write_direct(struct xfs_inode *, xfs_off_t, size_t, | ||
| 87 | int, struct xfs_bmbt_irec *, int *, int); | ||
| 88 | extern int xfs_iomap_write_delay(struct xfs_inode *, xfs_off_t, size_t, int, | ||
| 89 | struct xfs_bmbt_irec *, int *); | ||
| 90 | extern int xfs_iomap_write_allocate(struct xfs_inode *, xfs_off_t, size_t, | ||
| 91 | struct xfs_bmbt_irec *, int *); | ||
| 92 | extern int xfs_iomap_write_unwritten(struct xfs_inode *, xfs_off_t, size_t); | 47 | extern int xfs_iomap_write_unwritten(struct xfs_inode *, xfs_off_t, size_t); |
| 93 | 48 | ||
| 94 | #endif /* __XFS_IOMAP_H__*/ | 49 | #endif /* __XFS_IOMAP_H__*/ |
