diff options
author | Mark Fasheh <mark.fasheh@oracle.com> | 2007-07-03 16:34:11 -0400 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2007-07-10 20:32:08 -0400 |
commit | 063c4561f52a74de686fe0ff2f96f4f54c9fecd2 (patch) | |
tree | 73a202c316df70bdfafa489d70e2863c5c5ea33a /fs/ocfs2/alloc.h | |
parent | 35edec1d52c075975991471d624b33b9336226f2 (diff) |
ocfs2: support for removing file regions
Provide an internal interface for the removal of arbitrary file regions.
ocfs2_remove_inode_range() takes a byte range within a file and will remove
existing extents within that range. Partial clusters will be zeroed so that
any read from within the region will return zeros.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/alloc.h')
-rw-r--r-- | fs/ocfs2/alloc.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/ocfs2/alloc.h b/fs/ocfs2/alloc.h index 752ef860873d..990df48ae8d3 100644 --- a/fs/ocfs2/alloc.h +++ b/fs/ocfs2/alloc.h | |||
@@ -41,6 +41,10 @@ int ocfs2_mark_extent_written(struct inode *inode, struct buffer_head *di_bh, | |||
41 | handle_t *handle, u32 cpos, u32 len, u32 phys, | 41 | handle_t *handle, u32 cpos, u32 len, u32 phys, |
42 | struct ocfs2_alloc_context *meta_ac, | 42 | struct ocfs2_alloc_context *meta_ac, |
43 | struct ocfs2_cached_dealloc_ctxt *dealloc); | 43 | struct ocfs2_cached_dealloc_ctxt *dealloc); |
44 | int ocfs2_remove_extent(struct inode *inode, struct buffer_head *di_bh, | ||
45 | u32 cpos, u32 len, handle_t *handle, | ||
46 | struct ocfs2_alloc_context *meta_ac, | ||
47 | struct ocfs2_cached_dealloc_ctxt *dealloc); | ||
44 | int ocfs2_num_free_extents(struct ocfs2_super *osb, | 48 | int ocfs2_num_free_extents(struct ocfs2_super *osb, |
45 | struct inode *inode, | 49 | struct inode *inode, |
46 | struct ocfs2_dinode *fe); | 50 | struct ocfs2_dinode *fe); |
@@ -68,6 +72,12 @@ int ocfs2_begin_truncate_log_recovery(struct ocfs2_super *osb, | |||
68 | struct ocfs2_dinode **tl_copy); | 72 | struct ocfs2_dinode **tl_copy); |
69 | int ocfs2_complete_truncate_log_recovery(struct ocfs2_super *osb, | 73 | int ocfs2_complete_truncate_log_recovery(struct ocfs2_super *osb, |
70 | struct ocfs2_dinode *tl_copy); | 74 | struct ocfs2_dinode *tl_copy); |
75 | int ocfs2_truncate_log_needs_flush(struct ocfs2_super *osb); | ||
76 | int ocfs2_truncate_log_append(struct ocfs2_super *osb, | ||
77 | handle_t *handle, | ||
78 | u64 start_blk, | ||
79 | unsigned int num_clusters); | ||
80 | int __ocfs2_flush_truncate_log(struct ocfs2_super *osb); | ||
71 | 81 | ||
72 | /* | 82 | /* |
73 | * Process local structure which describes the block unlinks done | 83 | * Process local structure which describes the block unlinks done |