diff options
author | Sunil Mushran <sunil.mushran@oracle.com> | 2011-07-25 14:58:15 -0700 |
---|---|---|
committer | Sunil Mushran <sunil.mushran@oracle.com> | 2011-07-25 14:58:15 -0700 |
commit | 93862d5e1ab875664c6cc95254fc365028a48bb1 (patch) | |
tree | 3299a37486b2265e051a4c641aa7cfbb309a69d6 /fs/ocfs2/extent_map.h | |
parent | 5cffff9e29866a3de98c2c25135b3199491f93b0 (diff) |
ocfs2: Implement llseek()
ocfs2 implements its own llseek() to provide the SEEK_HOLE/SEEK_DATA
functionality.
SEEK_HOLE sets the file pointer to the start of either a hole or an unwritten
(preallocated) extent, that is greater than or equal to the supplied offset.
SEEK_DATA sets the file pointer to the start of an allocated extent (not
unwritten) that is greater than or equal to the supplied offset.
If the supplied offset is on a desired region, then the file pointer is set
to it. Offsets greater than or equal to the file size return -ENXIO.
Unwritten (preallocated) extents are considered holes because the file system
treats reads to such regions in the same way as it does to holes.
Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
Diffstat (limited to 'fs/ocfs2/extent_map.h')
-rw-r--r-- | fs/ocfs2/extent_map.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ocfs2/extent_map.h b/fs/ocfs2/extent_map.h index e79d41c2c909..67ea57d2fd59 100644 --- a/fs/ocfs2/extent_map.h +++ b/fs/ocfs2/extent_map.h @@ -53,6 +53,8 @@ int ocfs2_extent_map_get_blocks(struct inode *inode, u64 v_blkno, u64 *p_blkno, int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, u64 map_start, u64 map_len); +int ocfs2_seek_data_hole_offset(struct file *file, loff_t *offset, int origin); + int ocfs2_xattr_get_clusters(struct inode *inode, u32 v_cluster, u32 *p_cluster, u32 *num_clusters, struct ocfs2_extent_list *el, |