ocfs2: Add ocfs2_gd_is_discontig.
authorTao Ma <tao.ma@oracle.com>
Mon, 17 May 2010 07:14:17 +0000 (15:14 +0800)
committerTao Ma <tao.ma@oracle.com>
Mon, 17 May 2010 07:14:17 +0000 (15:14 +0800)
Add ocfs2_gd_is_discontig so that we can test whether
a group descriptor is discontiguous or not.

Signed-off-by: Tao Ma <tao.ma@oracle.com>
fs/ocfs2/ocfs2_fs.h

index 67bb8a7..b01d0dd 100644 (file)
@@ -1574,5 +1574,19 @@ static inline void ocfs2_set_de_type(struct ocfs2_dir_entry *de,
        de->file_type = ocfs2_type_by_mode[(mode & S_IFMT)>>S_SHIFT];
 }
 
+static inline int ocfs2_gd_is_discontig(struct ocfs2_group_desc *gd)
+{
+       if ((offsetof(struct ocfs2_group_desc, bg_bitmap) +
+            le16_to_cpu(gd->bg_size)) !=
+           offsetof(struct ocfs2_group_desc, bg_list))
+               return 0;
+       /*
+        * Only valid to check l_next_free_rec if
+        * bg_bitmap + bg_size == bg_list.
+        */
+       if (!gd->bg_list.l_next_free_rec)
+               return 0;
+       return 1;
+}
 #endif  /* _OCFS2_FS_H */