diff --git a/lustre/include/lustre_mds.h b/lustre/include/lustre_mds.h
index c2ace3e639f438b539a3edd271bd45c1a4c27d0a..d3913679eb90692e0a1496e5bb3146b894fc33e6 100644
--- a/lustre/include/lustre_mds.h
+++ b/lustre/include/lustre_mds.h
@@ -243,7 +243,7 @@ struct md_enqueue_info {
         struct lustre_handle    mi_lockh;
         struct dentry          *mi_dentry;
         md_enqueue_cb_t         mi_cb;
-        int                     mi_cbdata;
+        void                   *mi_cbdata;
 };
 
 struct mdc_enqueue_args {
diff --git a/lustre/llite/statahead.c b/lustre/llite/statahead.c
index ad7ebdb5603ebf68b9183bea6c3cbb5a9e12dadb..6c23dd1eadcf3e6fe405105c0416e724a55097b2 100644
--- a/lustre/llite/statahead.c
+++ b/lustre/llite/statahead.c
@@ -256,7 +256,7 @@ out:
         sai = lli->lli_sai;
         if (sai) {
                 lli->lli_sai->sai_replied++;
-                ll_sai_entry_set(lli->lli_sai, minfo->mi_cbdata,
+                ll_sai_entry_set(lli->lli_sai, (long)minfo->mi_cbdata,
                                  SA_ENTRY_STATED);
                 cfs_waitq_signal(&lli->lli_sai->sai_thread.t_ctl_waitq);
         }
@@ -298,7 +298,7 @@ static int sa_args_prep(struct inode *dir, struct dentry *dentry,
         minfo->mi_it.it_op = IT_GETATTR;
         minfo->mi_dentry = dentry;
         minfo->mi_cb = ll_statahead_interpret;
-        minfo->mi_cbdata = lli->lli_sai->sai_sent;
+        minfo->mi_cbdata = (void *)(long)lli->lli_sai->sai_sent;
 
         einfo->ei_type   = LDLM_IBITS;
         einfo->ei_mode   = it_to_lock_mode(&minfo->mi_it);