Browse Source

drbd: restore compatibility with 32bit kernels

With commit
drbd: further converge progress display of resync and online-verify
accidentally an u64/u64 div was introduced, causing an unresolvable
symbol __udivdi3 to be reference. Actually for that division, 32bit are
still suficient for now, so we can revert to unsigned long instead.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Lars Ellenberg 14 years ago
parent
commit
4896e8c1b8
1 changed files with 4 additions and 4 deletions
  1. 4 4
      drivers/block/drbd/drbd_proc.c

+ 4 - 4
drivers/block/drbd/drbd_proc.c

@@ -164,8 +164,8 @@ static void drbd_syncer_progress(struct drbd_conf *mdev, struct seq_file *seq)
 	if (proc_details >= 1) {
 		/* 64 bit:
 		 * we convert to sectors in the display below. */
-		u64 bm_bits = drbd_bm_bits(mdev);
-		u64 bit_pos;
+		unsigned long bm_bits = drbd_bm_bits(mdev);
+		unsigned long bit_pos;
 		if (mdev->state.conn == C_VERIFY_S ||
 		    mdev->state.conn == C_VERIFY_T)
 			bit_pos = bm_bits - mdev->ov_left;
@@ -176,8 +176,8 @@ static void drbd_syncer_progress(struct drbd_conf *mdev, struct seq_file *seq)
 		seq_printf(seq,
 			"\t%3d%% sector pos: %llu/%llu\n",
 			(int)(bit_pos / (bm_bits/100+1)),
-			(unsigned long long) BM_BIT_TO_SECT(bit_pos),
-			(unsigned long long) BM_BIT_TO_SECT(bm_bits));
+			(unsigned long long)bit_pos * BM_SECT_PER_BIT,
+			(unsigned long long)bm_bits * BM_SECT_PER_BIT);
 	}
 }