GFS2: Reinstate withdraw ack system
[platform/adaptation/renesas_rcar/renesas_kernel.git] / fs / gfs2 / incore.h
index 3d469d3..e2601ba 100644 (file)
@@ -52,7 +52,6 @@ struct gfs2_log_header_host {
  */
 
 struct gfs2_log_operations {
-       void (*lo_add) (struct gfs2_sbd *sdp, struct gfs2_bufdata *bd);
        void (*lo_before_commit) (struct gfs2_sbd *sdp);
        void (*lo_after_commit) (struct gfs2_sbd *sdp, struct gfs2_ail *ai);
        void (*lo_before_scan) (struct gfs2_jdesc *jd,
@@ -205,7 +204,7 @@ struct lm_lockname {
 
 
 struct gfs2_glock_operations {
-       void (*go_xmote_th) (struct gfs2_glock *gl);
+       void (*go_sync) (struct gfs2_glock *gl);
        int (*go_xmote_bh) (struct gfs2_glock *gl, struct gfs2_holder *gh);
        void (*go_inval) (struct gfs2_glock *gl, int flags);
        int (*go_demote_ok) (const struct gfs2_glock *gl);
@@ -216,6 +215,7 @@ struct gfs2_glock_operations {
        const int go_type;
        const unsigned long go_flags;
 #define GLOF_ASPACE 1
+#define GLOF_LVB    2
 };
 
 enum {
@@ -321,7 +321,6 @@ struct gfs2_glock {
        ktime_t gl_dstamp;
        struct gfs2_lkstats gl_stats;
        struct dlm_lksb gl_lksb;
-       char gl_lvb[32];
        unsigned long gl_tchange;
        void *gl_object;
 
@@ -341,6 +340,7 @@ enum {
        GIF_QD_LOCKED           = 1,
        GIF_ALLOC_FAILED        = 2,
        GIF_SW_PAGED            = 3,
+       GIF_ORDERED             = 4,
 };
 
 struct gfs2_inode {
@@ -357,6 +357,7 @@ struct gfs2_inode {
        struct gfs2_rgrpd *i_rgd;
        u64 i_goal;     /* goal block for allocations */
        struct rw_semaphore i_rw_mutex;
+       struct list_head i_ordered;
        struct list_head i_trunc_list;
        __be64 *i_hash_cache;
        u32 i_entries;
@@ -539,6 +540,7 @@ enum {
        SDF_DEMOTE              = 5,
        SDF_NOJOURNALID         = 6,
        SDF_RORECOVERY          = 7, /* read only recovery */
+       SDF_SKIP_DLM_UNLOCK     = 8,
 };
 
 #define GFS2_FSNAME_LEN                256
@@ -621,6 +623,7 @@ struct gfs2_sbd {
        u32 sd_hash_bsize_shift;
        u32 sd_hash_ptrs;       /* Number of pointers in a hash block */
        u32 sd_qc_per_block;
+       u32 sd_blocks_per_bitmap;
        u32 sd_max_dirres;      /* Max blocks needed to add a directory entry */
        u32 sd_max_height;      /* Max height of a file's metadata tree */
        u64 sd_heightsize[GFS2_MAX_META_HEIGHT + 1];
@@ -639,6 +642,7 @@ struct gfs2_sbd {
        wait_queue_head_t sd_glock_wait;
        atomic_t sd_glock_disposal;
        struct completion sd_locking_init;
+       struct completion sd_wdack;
        struct delayed_work sd_control_work;
 
        /* Inode Stuff */
@@ -721,6 +725,7 @@ struct gfs2_sbd {
        struct list_head sd_log_le_revoke;
        struct list_head sd_log_le_databuf;
        struct list_head sd_log_le_ordered;
+       spinlock_t sd_ordered_lock;
 
        atomic_t sd_log_thresh1;
        atomic_t sd_log_thresh2;
@@ -756,10 +761,7 @@ struct gfs2_sbd {
        unsigned int sd_replayed_blocks;
 
        /* For quiescing the filesystem */
-
        struct gfs2_holder sd_freeze_gh;
-       struct mutex sd_freeze_lock;
-       unsigned int sd_freeze_count;
 
        char sd_fsname[GFS2_FSNAME_LEN];
        char sd_table_name[GFS2_FSNAME_LEN];