diff --git a/lustre/lvfs/fsfilt_ext3.c b/lustre/lvfs/fsfilt_ext3.c
index 6737ed4aaa58c53445ed4ba4e79dddf364b539ac..7f54e23650687a7456ad36cdce758d9ae6a192f5 100644
--- a/lustre/lvfs/fsfilt_ext3.c
+++ b/lustre/lvfs/fsfilt_ext3.c
@@ -972,7 +972,9 @@ static unsigned long new_blocks(handle_t *handle, struct ext3_ext_base *base,
 static int ext3_ext_new_extent_cb(struct ext3_ext_base *base,
                                   struct ext3_ext_path *path,
                                   struct ext3_ext_cache *cex,
+#ifdef HAVE_EXT_PREPARE_CB_EXTENT
                                   struct ext3_extent *ex,
+#endif
                                   void *cbdata)
 {
         struct bpointers *bp = cbdata;
@@ -980,7 +982,10 @@ static int ext3_ext_new_extent_cb(struct ext3_ext_base *base,
 static int ext3_ext_new_extent_cb(struct ext3_ext_base *base,
                                   struct ext3_ext_path *path,
                                   struct ext3_ext_cache *cex,
-                                  struct ext3_extent *ex)
+#ifdef HAVE_EXT_PREPARE_CB_EXTENT
+                                  struct ext3_extent *ex
+#endif
+                                 )
 {
         struct bpointers *bp = base->private;
 #endif