Typedef a suitable jiffies_t rather than using typeof everywhere.
--- diff/drivers/md/dm-iostats.c	2002-12-16 10:45:56.000000000 +0000
+++ source/drivers/md/dm-iostats.c	2002-12-16 11:08:38.000000000 +0000
@@ -16,11 +16,13 @@
 static kmem_cache_t *_iostats_cache;
 mempool_t *_iostats_pool;
 
+typedef unsigned long jiffies_t;
+
 struct dm_iostats {
 	struct dm_target *ti;
 
 	int rw;
-	typeof(jiffies) jiffies_start_io;
+	jiffies_t jiffies_start_io;
 
 	void (*end_io) (struct buffer_head * bh, int uptodate);
 	void *context;
@@ -42,8 +44,8 @@
 	struct dm_dev *dev;
 	uint32_t reads;
 	uint32_t writes;
-	typeof(jiffies) jiffies_r;
-	typeof(jiffies) jiffies_w;
+	jiffies_t jiffies_r;
+	jiffies_t jiffies_w;
 	count_t count_r;
 	count_t count_w;
 };
@@ -158,7 +160,7 @@
 static void iostats_avg_end_io(struct buffer_head *bh, int uptodate)
 {
 	int flags;
-	typeof(jiffies) j;
+	jiffies_t j;
 	struct dm_iostats *io = bh->b_private;
 	struct iostats_avg_c *ic = io->ti->private;
 
@@ -243,9 +245,9 @@
 	return 0;
 }
 
-static inline uint _calc(typeof(jiffies) j, count_t c)
+static inline uint _calc(jiffies_t j, count_t c)
 {
-	typeof(jiffies) const m = 1000 / HZ;
+	const jiffies_t m = 1000 / HZ;
 
 	return (c ? (j * m / c) : (j * m));
 }