mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-29 21:05:13 +00:00
md: fix sync_completed reporting for very large drives (>2TB)
The values exported in the sync_completed file are unsigned long, which overflows with very large drives, resulting in wrong values reported. Since sync_completed uses sectors as unit, we'll start getting wrong values with components larger than 2TB. This patch simply replaces the use of unsigned long by unsigned long long. Signed-off-by: Rémi Rérolle <rrerolle@lacie.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
23ddff3792
commit
13ae864bc8
@ -3918,7 +3918,7 @@ static struct md_sysfs_entry md_sync_speed = __ATTR_RO(sync_speed);
|
|||||||
static ssize_t
|
static ssize_t
|
||||||
sync_completed_show(mddev_t *mddev, char *page)
|
sync_completed_show(mddev_t *mddev, char *page)
|
||||||
{
|
{
|
||||||
unsigned long max_sectors, resync;
|
unsigned long long max_sectors, resync;
|
||||||
|
|
||||||
if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery))
|
if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery))
|
||||||
return sprintf(page, "none\n");
|
return sprintf(page, "none\n");
|
||||||
@ -3929,7 +3929,7 @@ sync_completed_show(mddev_t *mddev, char *page)
|
|||||||
max_sectors = mddev->dev_sectors;
|
max_sectors = mddev->dev_sectors;
|
||||||
|
|
||||||
resync = mddev->curr_resync_completed;
|
resync = mddev->curr_resync_completed;
|
||||||
return sprintf(page, "%lu / %lu\n", resync, max_sectors);
|
return sprintf(page, "%llu / %llu\n", resync, max_sectors);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct md_sysfs_entry md_sync_completed = __ATTR_RO(sync_completed);
|
static struct md_sysfs_entry md_sync_completed = __ATTR_RO(sync_completed);
|
||||||
|
Loading…
Reference in New Issue
Block a user