struct gfs2_holder gh;
        int error;
 
-       gfs2_holder_init(gl, LM_ST_SHARED, flags, &gh);
+       __gfs2_holder_init(gl, LM_ST_SHARED, flags, &gh, _RET_IP_);
        error = gfs2_glock_nq(&gh);
        if (!error)
                gfs2_glock_dq(&gh);
  *
  */
 
-void gfs2_holder_init(struct gfs2_glock *gl, unsigned int state, u16 flags,
-                     struct gfs2_holder *gh)
+void __gfs2_holder_init(struct gfs2_glock *gl, unsigned int state, u16 flags,
+                       struct gfs2_holder *gh, unsigned long ip)
 {
        INIT_LIST_HEAD(&gh->gh_list);
        gh->gh_gl = gl;
-       gh->gh_ip = _RET_IP_;
+       gh->gh_ip = ip;
        gh->gh_owner_pid = get_pid(task_pid(current));
        gh->gh_state = state;
        gh->gh_flags = flags;
 
 extern void gfs2_glock_hold(struct gfs2_glock *gl);
 extern void gfs2_glock_put(struct gfs2_glock *gl);
 extern void gfs2_glock_queue_put(struct gfs2_glock *gl);
-extern void gfs2_holder_init(struct gfs2_glock *gl, unsigned int state,
-                            u16 flags, struct gfs2_holder *gh);
+
+extern void __gfs2_holder_init(struct gfs2_glock *gl, unsigned int state,
+                              u16 flags, struct gfs2_holder *gh,
+                              unsigned long ip);
+static inline void gfs2_holder_init(struct gfs2_glock *gl, unsigned int state,
+                                   u16 flags, struct gfs2_holder *gh) {
+       __gfs2_holder_init(gl, state, flags, gh, _RET_IP_);
+}
+
 extern void gfs2_holder_reinit(unsigned int state, u16 flags,
                               struct gfs2_holder *gh);
 extern void gfs2_holder_uninit(struct gfs2_holder *gh);
 {
        int error;
 
-       gfs2_holder_init(gl, state, flags, gh);
+       __gfs2_holder_init(gl, state, flags, gh, _RET_IP_);
 
        error = gfs2_glock_nq(gh);
        if (error)