ocfs2: Implement llseek()
authorSunil Mushran <sunil.mushran@oracle.com>
Mon, 25 Jul 2011 21:58:15 +0000 (14:58 -0700)
committerSunil Mushran <sunil.mushran@oracle.com>
Mon, 25 Jul 2011 21:58:15 +0000 (14:58 -0700)
commit93862d5e1ab875664c6cc95254fc365028a48bb1
tree3299a37486b2265e051a4c641aa7cfbb309a69d6
parent5cffff9e29866a3de98c2c25135b3199491f93b0
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>
fs/ocfs2/extent_map.c
fs/ocfs2/extent_map.h
fs/ocfs2/file.c