Pull video into release branch
[firefly-linux-kernel-4.4.55.git] / fs / gfs2 / lops.h
index 5839c05ae6be29cfc7fe692c2c8f1028aaead2dd..41a00df755879dea4018ae332f40a45155bc9fb6 100644 (file)
 #include <linux/list.h>
 #include "incore.h"
 
+#define BUF_OFFSET \
+       ((sizeof(struct gfs2_log_descriptor) + sizeof(__be64) - 1) & \
+        ~(sizeof(__be64) - 1))
+#define DATABUF_OFFSET \
+       ((sizeof(struct gfs2_log_descriptor) + (2 * sizeof(__be64) - 1)) & \
+        ~(2 * sizeof(__be64) - 1))
+
 extern const struct gfs2_log_operations gfs2_glock_lops;
 extern const struct gfs2_log_operations gfs2_buf_lops;
 extern const struct gfs2_log_operations gfs2_revoke_lops;
@@ -21,6 +28,22 @@ extern const struct gfs2_log_operations gfs2_databuf_lops;
 
 extern const struct gfs2_log_operations *gfs2_log_ops[];
 
+static inline unsigned int buf_limit(struct gfs2_sbd *sdp)
+{
+       unsigned int limit;
+
+       limit = (sdp->sd_sb.sb_bsize - BUF_OFFSET) / sizeof(__be64);
+       return limit;
+}
+
+static inline unsigned int databuf_limit(struct gfs2_sbd *sdp)
+{
+       unsigned int limit;
+
+       limit = (sdp->sd_sb.sb_bsize - DATABUF_OFFSET) / (2 * sizeof(__be64));
+       return limit;
+}
+
 static inline void lops_init_le(struct gfs2_log_element *le,
                                const struct gfs2_log_operations *lops)
 {
@@ -60,7 +83,7 @@ static inline void lops_after_commit(struct gfs2_sbd *sdp, struct gfs2_ail *ai)
 }
 
 static inline void lops_before_scan(struct gfs2_jdesc *jd,
-                                   struct gfs2_log_header *head,
+                                   struct gfs2_log_header_host *head,
                                    unsigned int pass)
 {
        int x;