aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/cluster
diff options
context:
space:
mode:
authorMathieu Avila <mathieu.avila@seanodes.com>2006-09-13 14:11:27 -0400
committerMark Fasheh <mark.fasheh@oracle.com>2006-09-20 18:50:53 -0400
commit471e3f57286da7ce8820ad42c77d5f5f49d56a41 (patch)
tree763078566e354815f0c48684c48b618506be73d3 /fs/ocfs2/cluster
parent2d5625181fac18f572cbbd18878d28f5eebf4733 (diff)
ocfs2: Fix heartbeat sector calculation
This fixes things for devices which set max_sectors to 8. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/cluster')
-rw-r--r--fs/ocfs2/cluster/heartbeat.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c
index 504595d6cf65..305cba3681fe 100644
--- a/fs/ocfs2/cluster/heartbeat.c
+++ b/fs/ocfs2/cluster/heartbeat.c
@@ -320,8 +320,12 @@ static int compute_max_sectors(struct block_device *bdev)
320 max_pages = q->max_hw_segments; 320 max_pages = q->max_hw_segments;
321 max_pages--; /* Handle I/Os that straddle a page */ 321 max_pages--; /* Handle I/Os that straddle a page */
322 322
323 max_sectors = max_pages << (PAGE_SHIFT - 9); 323 if (max_pages) {
324 324 max_sectors = max_pages << (PAGE_SHIFT - 9);
325 } else {
326 /* If BIO contains 1 or less than 1 page. */
327 max_sectors = q->max_sectors;
328 }
325 /* Why is fls() 1-based???? */ 329 /* Why is fls() 1-based???? */
326 pow_two_sectors = 1 << (fls(max_sectors) - 1); 330 pow_two_sectors = 1 << (fls(max_sectors) - 1);
327 331