summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/extent_map.h
diff options
context:
space:
mode:
authorSunil Mushran <sunil.mushran@oracle.com>2011-07-25 14:58:15 -0700
committerSunil Mushran <sunil.mushran@oracle.com>2011-07-25 14:58:15 -0700
commit93862d5e1ab875664c6cc95254fc365028a48bb1 (patch)
tree3299a37486b2265e051a4c641aa7cfbb309a69d6 /fs/ocfs2/extent_map.h
parent5cffff9e29866a3de98c2c25135b3199491f93b0 (diff)
downloadblackbird-op-linux-93862d5e1ab875664c6cc95254fc365028a48bb1.tar.gz
blackbird-op-linux-93862d5e1ab875664c6cc95254fc365028a48bb1.zip
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.h2
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,
OpenPOWER on IntegriCloud