aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/ocfs2_fs.h
diff options
context:
space:
mode:
authorTao Ma <tao.ma@oracle.com>2009-08-11 02:33:14 -0400
committerJoel Becker <joel.becker@oracle.com>2009-09-22 23:09:33 -0400
commite73a819db9c2d6c4065b7cab7374709b6939e8f1 (patch)
tree40968bc5b37d3b55e382267683c9612d4697f036 /fs/ocfs2/ocfs2_fs.h
parente2e9f6082b5ff099978774d5c0148e062344c2f9 (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.h7
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
1399static inline u32
1400ocfs2_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
1398static inline int ocfs2_fast_symlink_chars(int blocksize) 1405static inline int ocfs2_fast_symlink_chars(int blocksize)
1399{ 1406{