aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/ocfs2_fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ocfs2/ocfs2_fs.h')
-rw-r--r--fs/ocfs2/ocfs2_fs.h25
1 files changed, 16 insertions, 9 deletions
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h
index f24ce3d3f956..5e0c0d0aef7d 100644
--- a/fs/ocfs2/ocfs2_fs.h
+++ b/fs/ocfs2/ocfs2_fs.h
@@ -86,7 +86,8 @@
86#define OCFS2_CLEAR_INCOMPAT_FEATURE(sb,mask) \ 86#define OCFS2_CLEAR_INCOMPAT_FEATURE(sb,mask) \
87 OCFS2_SB(sb)->s_feature_incompat &= ~(mask) 87 OCFS2_SB(sb)->s_feature_incompat &= ~(mask)
88 88
89#define OCFS2_FEATURE_COMPAT_SUPP OCFS2_FEATURE_COMPAT_BACKUP_SB 89#define OCFS2_FEATURE_COMPAT_SUPP (OCFS2_FEATURE_COMPAT_BACKUP_SB \
90 | OCFS2_FEATURE_COMPAT_JBD2_SB)
90#define OCFS2_FEATURE_INCOMPAT_SUPP (OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT \ 91#define OCFS2_FEATURE_INCOMPAT_SUPP (OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT \
91 | OCFS2_FEATURE_INCOMPAT_SPARSE_ALLOC \ 92 | OCFS2_FEATURE_INCOMPAT_SPARSE_ALLOC \
92 | OCFS2_FEATURE_INCOMPAT_INLINE_DATA \ 93 | OCFS2_FEATURE_INCOMPAT_INLINE_DATA \
@@ -153,6 +154,11 @@
153#define OCFS2_FEATURE_COMPAT_BACKUP_SB 0x0001 154#define OCFS2_FEATURE_COMPAT_BACKUP_SB 0x0001
154 155
155/* 156/*
157 * The filesystem will correctly handle journal feature bits.
158 */
159#define OCFS2_FEATURE_COMPAT_JBD2_SB 0x0002
160
161/*
156 * Unwritten extents support. 162 * Unwritten extents support.
157 */ 163 */
158#define OCFS2_FEATURE_RO_COMPAT_UNWRITTEN 0x0001 164#define OCFS2_FEATURE_RO_COMPAT_UNWRITTEN 0x0001
@@ -742,12 +748,12 @@ struct ocfs2_group_desc
742 */ 748 */
743struct ocfs2_xattr_entry { 749struct ocfs2_xattr_entry {
744 __le32 xe_name_hash; /* hash value of xattr prefix+suffix. */ 750 __le32 xe_name_hash; /* hash value of xattr prefix+suffix. */
745 __le16 xe_name_offset; /* byte offset from the 1st etnry in the local 751 __le16 xe_name_offset; /* byte offset from the 1st entry in the
746 local xattr storage(inode, xattr block or 752 local xattr storage(inode, xattr block or
747 xattr bucket). */ 753 xattr bucket). */
748 __u8 xe_name_len; /* xattr name len, does't include prefix. */ 754 __u8 xe_name_len; /* xattr name len, does't include prefix. */
749 __u8 xe_type; /* the low 7 bits indicates the name prefix's 755 __u8 xe_type; /* the low 7 bits indicate the name prefix
750 * type and the highest 1 bits indicate whether 756 * type and the highest bit indicates whether
751 * the EA is stored in the local storage. */ 757 * the EA is stored in the local storage. */
752 __le64 xe_value_size; /* real xattr value length. */ 758 __le64 xe_value_size; /* real xattr value length. */
753}; 759};
@@ -766,9 +772,10 @@ struct ocfs2_xattr_header {
766 xattr. */ 772 xattr. */
767 __le16 xh_name_value_len; /* total length of name/value 773 __le16 xh_name_value_len; /* total length of name/value
768 length in this bucket. */ 774 length in this bucket. */
769 __le16 xh_num_buckets; /* bucket nums in one extent 775 __le16 xh_num_buckets; /* Number of xattr buckets
770 record, only valid in the 776 in this extent record,
771 first bucket. */ 777 only valid in the first
778 bucket. */
772 __le64 xh_csum; 779 __le64 xh_csum;
773 struct ocfs2_xattr_entry xh_entries[0]; /* xattr entry list. */ 780 struct ocfs2_xattr_entry xh_entries[0]; /* xattr entry list. */
774}; 781};
@@ -776,8 +783,8 @@ struct ocfs2_xattr_header {
776/* 783/*
777 * On disk structure for xattr value root. 784 * On disk structure for xattr value root.
778 * 785 *
779 * It is used when one extended attribute's size is larger, and we will save it 786 * When an xattr's value is large enough, it is stored in an external
780 * in an outside cluster. It will stored in a b-tree like file content. 787 * b-tree like file data. The xattr value root points to this structure.
781 */ 788 */
782struct ocfs2_xattr_value_root { 789struct ocfs2_xattr_value_root {
783/*00*/ __le32 xr_clusters; /* clusters covered by xattr value. */ 790/*00*/ __le32 xr_clusters; /* clusters covered by xattr value. */