diff options
author | Tao Ma <tao.ma@oracle.com> | 2009-08-11 02:33:14 -0400 |
---|---|---|
committer | Joel Becker <joel.becker@oracle.com> | 2009-09-22 23:09:33 -0400 |
commit | e73a819db9c2d6c4065b7cab7374709b6939e8f1 (patch) | |
tree | 40968bc5b37d3b55e382267683c9612d4697f036 /fs/ocfs2/ocfs2_fs.h | |
parent | e2e9f6082b5ff099978774d5c0148e062344c2f9 (diff) |
ocfs2: Add support for incrementing refcount in the tree.
Given a physical cpos and length, increment the refcount
in the tree. If the extent has not been seen before, a refcount
record is created for it. Refcount records may be merged or
split by this operation.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Diffstat (limited to 'fs/ocfs2/ocfs2_fs.h')
-rw-r--r-- | fs/ocfs2/ocfs2_fs.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h index e4288b446ec0..40072cdef7b6 100644 --- a/fs/ocfs2/ocfs2_fs.h +++ b/fs/ocfs2/ocfs2_fs.h | |||
@@ -916,6 +916,7 @@ struct ocfs2_refcount_rec { | |||
916 | __le32 r_refcount; /* Reference count of this extent */ | 916 | __le32 r_refcount; /* Reference count of this extent */ |
917 | /*10*/ | 917 | /*10*/ |
918 | }; | 918 | }; |
919 | #define OCFS2_32BIT_POS_MASK (0xffffffffULL) | ||
919 | 920 | ||
920 | #define OCFS2_REFCOUNT_LEAF_FL (0x00000001) | 921 | #define OCFS2_REFCOUNT_LEAF_FL (0x00000001) |
921 | #define OCFS2_REFCOUNT_TREE_FL (0x00000002) | 922 | #define OCFS2_REFCOUNT_TREE_FL (0x00000002) |
@@ -1394,6 +1395,12 @@ static inline u16 ocfs2_refcount_recs_per_rb(struct super_block *sb) | |||
1394 | 1395 | ||
1395 | return size / sizeof(struct ocfs2_refcount_rec); | 1396 | return size / sizeof(struct ocfs2_refcount_rec); |
1396 | } | 1397 | } |
1398 | |||
1399 | static inline u32 | ||
1400 | ocfs2_get_ref_rec_low_cpos(const struct ocfs2_refcount_rec *rec) | ||
1401 | { | ||
1402 | return le64_to_cpu(rec->r_cpos) & OCFS2_32BIT_POS_MASK; | ||
1403 | } | ||
1397 | #else | 1404 | #else |
1398 | static inline int ocfs2_fast_symlink_chars(int blocksize) | 1405 | static inline int ocfs2_fast_symlink_chars(int blocksize) |
1399 | { | 1406 | { |