diff options
author | Mathieu Avila <mathieu.avila@seanodes.com> | 2006-09-13 11:11:27 -0700 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2006-09-20 15:50:53 -0700 |
commit | 471e3f57286da7ce8820ad42c77d5f5f49d56a41 (patch) | |
tree | 763078566e354815f0c48684c48b618506be73d3 /fs/ocfs2/cluster/heartbeat.c | |
parent | 2d5625181fac18f572cbbd18878d28f5eebf4733 (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/heartbeat.c')
-rw-r--r-- | fs/ocfs2/cluster/heartbeat.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c index 504595d6cf6..305cba3681f 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) max_pages = q->max_hw_segments; max_pages--; /* Handle I/Os that straddle a page */ - max_sectors = max_pages << (PAGE_SHIFT - 9); - + if (max_pages) { + max_sectors = max_pages << (PAGE_SHIFT - 9); + } else { + /* If BIO contains 1 or less than 1 page. */ + max_sectors = q->max_sectors; + } /* Why is fls() 1-based???? */ pow_two_sectors = 1 << (fls(max_sectors) - 1); |