if (prev_state != LM_ST_UNLOCKED && !(ret & LM_OUT_CACHEABLE)) {
                if (glops->go_inval)
-                       glops->go_inval(gl, DIO_METADATA | DIO_DATA);
+                       glops->go_inval(gl, DIO_METADATA);
        } else if (gl->gl_state == LM_ST_DEFERRED) {
                /* We might not want to do this here.
                   Look at moving to the inode glops. */
                if (glops->go_inval)
-                       glops->go_inval(gl, DIO_DATA);
+                       glops->go_inval(gl, 0);
        }
 
        /*  Deal with each possible exit condition  */
        gfs2_assert_warn(sdp, state != gl->gl_state);
 
        if (gl->gl_state == LM_ST_EXCLUSIVE && glops->go_sync)
-               glops->go_sync(gl, DIO_METADATA | DIO_DATA | DIO_RELEASE);
+               glops->go_sync(gl);
 
        gfs2_glock_hold(gl);
        gl->gl_req_bh = xmote_bh;
        state_change(gl, LM_ST_UNLOCKED);
 
        if (glops->go_inval)
-               glops->go_inval(gl, DIO_METADATA | DIO_DATA);
+               glops->go_inval(gl, DIO_METADATA);
 
        if (gh) {
                spin_lock(&gl->gl_spin);
        gfs2_assert_warn(sdp, gl->gl_state != LM_ST_UNLOCKED);
 
        if (gl->gl_state == LM_ST_EXCLUSIVE && glops->go_sync)
-               glops->go_sync(gl, DIO_METADATA | DIO_DATA | DIO_RELEASE);
+               glops->go_sync(gl);
 
        gfs2_glock_hold(gl);
        gl->gl_req_bh = drop_bh;
 
 /**
  * meta_go_sync - sync out the metadata for this glock
  * @gl: the glock
- * @flags: DIO_*
  *
  * Called when demoting or unlocking an EX glock.  We must flush
  * to disk all dirty buffers/pages relating to this glock, and must not
  * not return to caller to demote/unlock the glock until I/O is complete.
  */
 
-static void meta_go_sync(struct gfs2_glock *gl, int flags)
+static void meta_go_sync(struct gfs2_glock *gl)
 {
-       if (!(flags & DIO_METADATA))
-               return;
-
        if (test_and_clear_bit(GLF_DIRTY, &gl->gl_flags)) {
                gfs2_log_flush(gl->gl_sbd, gl);
                gfs2_meta_sync(gl);
-               if (flags & DIO_RELEASE)
-                       gfs2_ail_empty_gl(gl);
+               gfs2_ail_empty_gl(gl);
        }
 
 }
 /**
  * inode_go_sync - Sync the dirty data and/or metadata for an inode glock
  * @gl: the glock protecting the inode
- * @flags:
  *
  */
 
-static void inode_go_sync(struct gfs2_glock *gl, int flags)
+static void inode_go_sync(struct gfs2_glock *gl)
 {
-       int meta = (flags & DIO_METADATA);
-       int data = (flags & DIO_DATA);
-
        if (test_bit(GLF_DIRTY, &gl->gl_flags)) {
-               if (meta && data) {
-                       gfs2_page_writeback(gl);
-                       gfs2_log_flush(gl->gl_sbd, gl);
-                       gfs2_meta_sync(gl);
-                       gfs2_page_wait(gl);
-                       clear_bit(GLF_DIRTY, &gl->gl_flags);
-               } else if (meta) {
-                       gfs2_log_flush(gl->gl_sbd, gl);
-                       gfs2_meta_sync(gl);
-               } else if (data) {
-                       gfs2_page_writeback(gl);
-                       gfs2_page_wait(gl);
-               }
-               if (flags & DIO_RELEASE)
-                       gfs2_ail_empty_gl(gl);
+               gfs2_page_writeback(gl);
+               gfs2_log_flush(gl->gl_sbd, gl);
+               gfs2_meta_sync(gl);
+               gfs2_page_wait(gl);
+               clear_bit(GLF_DIRTY, &gl->gl_flags);
+               gfs2_ail_empty_gl(gl);
        }
 }
 
 static void inode_go_inval(struct gfs2_glock *gl, int flags)
 {
        int meta = (flags & DIO_METADATA);
-       int data = (flags & DIO_DATA);
 
        if (meta) {
                struct gfs2_inode *ip = gl->gl_object;
                gfs2_meta_inval(gl);
                set_bit(GIF_INVALID, &ip->i_flags);
        }
-       if (data)
-               gfs2_page_inval(gl);
+       gfs2_page_inval(gl);
 }
 
 /**
        if (gl->gl_state != LM_ST_UNLOCKED &&
            test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags)) {
                gfs2_meta_cache_flush(GFS2_I(sdp->sd_jdesc->jd_inode));
-               j_gl->gl_ops->go_inval(j_gl, DIO_METADATA | DIO_DATA);
+               j_gl->gl_ops->go_inval(j_gl, DIO_METADATA);
 
                error = gfs2_find_jhead(sdp->sd_jdesc, &head);
                if (error)
 
 
 #define DIO_WAIT       0x00000010
 #define DIO_METADATA   0x00000020
-#define DIO_DATA       0x00000040
-#define DIO_RELEASE    0x00000080
 #define DIO_ALL                0x00000100
 
 struct gfs2_log_operations;
 };
 
 struct gfs2_glock_operations {
-       void (*go_xmote_th) (struct gfs2_glock * gl, unsigned int state,
-                            int flags);
-       void (*go_xmote_bh) (struct gfs2_glock * gl);
-       void (*go_drop_th) (struct gfs2_glock * gl);
-       void (*go_drop_bh) (struct gfs2_glock * gl);
-       void (*go_sync) (struct gfs2_glock * gl, int flags);
-       void (*go_inval) (struct gfs2_glock * gl, int flags);
-       int (*go_demote_ok) (struct gfs2_glock * gl);
-       int (*go_lock) (struct gfs2_holder * gh);
-       void (*go_unlock) (struct gfs2_holder * gh);
-       void (*go_callback) (struct gfs2_glock * gl, unsigned int state);
-       void (*go_greedy) (struct gfs2_glock * gl);
+       void (*go_xmote_th) (struct gfs2_glock *gl, unsigned int state, int flags);
+       void (*go_xmote_bh) (struct gfs2_glock *gl);
+       void (*go_drop_th) (struct gfs2_glock *gl);
+       void (*go_drop_bh) (struct gfs2_glock *gl);
+       void (*go_sync) (struct gfs2_glock *gl);
+       void (*go_inval) (struct gfs2_glock *gl, int flags);
+       int (*go_demote_ok) (struct gfs2_glock *gl);
+       int (*go_lock) (struct gfs2_holder *gh);
+       void (*go_unlock) (struct gfs2_holder *gh);
+       void (*go_callback) (struct gfs2_glock *gl, unsigned int state);
+       void (*go_greedy) (struct gfs2_glock *gl);
        const int go_type;
 };
 
 
                return error;
 
        gfs2_meta_cache_flush(ip);
-       j_gl->gl_ops->go_inval(j_gl, DIO_METADATA | DIO_DATA);
+       j_gl->gl_ops->go_inval(j_gl, DIO_METADATA);
 
        error = gfs2_find_jhead(sdp->sd_jdesc, &head);
        if (error)