f3probe: fix allocation error of safe device

probe_device_max_blocks() was returning an int that once multiplied
by block_size was out range.
This patch just enforces probe_device_max_blocks() to return
an uint64_t, and does the needed adjustments in the code.
This commit is contained in:
Michel Machado 2015-11-13 14:40:43 -05:00
parent 591ad8a7bf
commit e3fe7a006d
4 changed files with 4 additions and 4 deletions

View File

@ -1209,7 +1209,7 @@ static const char *sdev_get_filename(struct device *dev)
return dev_get_filename(dev_sdev(dev)->shadow_dev);
}
struct device *create_safe_device(struct device *dev, int max_blocks,
struct device *create_safe_device(struct device *dev, uint64_t max_blocks,
int min_memory)
{
struct safe_device *sdev;

View File

@ -100,7 +100,7 @@ void perf_device_sample(struct device *dev,
*/
struct device *pdev_detach_and_free(struct device *dev);
struct device *create_safe_device(struct device *dev, int max_blocks,
struct device *create_safe_device(struct device *dev, uint64_t max_blocks,
int min_memory);
#endif /* HEADER_LIBDEVS_H */

View File

@ -666,7 +666,7 @@ static int find_wrap(struct device *dev,
return false;
}
int probe_device_max_blocks(struct device *dev)
uint64_t probe_device_max_blocks(struct device *dev)
{
const int block_order = dev_get_block_order(dev);
uint64_t num_blocks = dev_get_size_byte(dev) >> block_order;

View File

@ -5,7 +5,7 @@
#include "libdevs.h"
int probe_device_max_blocks(struct device *dev);
uint64_t probe_device_max_blocks(struct device *dev);
int probe_device(struct device *dev, uint64_t *preal_size_byte,
uint64_t *pannounced_size_byte, int *pwrap,