On Tue, 2022-04-12 at 13:27 +0200, Pankaj Raghav wrote:
> From: Luis Chamberlain <[email protected]>
>
> This moves the code which fetches the chunk_sectors into a helper.
> Yes, this could in theory be used by non-zoned devices but that's
> not the case yet, so no need to make this a generic routine.
>
> This makes it clear what this is doing, and helps us make the
> subsequent changes easier to read.
>
> Signed-off-by: Luis Chamberlain <[email protected]>
Pankaj, since you are sending the patch, add your Signed-ff-by please.
> ---
> lib/libf2fs_zoned.c | 27 +++++++++++++++++++--------
> 1 file changed, 19 insertions(+), 8 deletions(-)
>
> diff --git a/lib/libf2fs_zoned.c b/lib/libf2fs_zoned.c
> index ce73b9a..1447181 100644
> --- a/lib/libf2fs_zoned.c
> +++ b/lib/libf2fs_zoned.c
> @@ -146,35 +146,46 @@ int f2fs_get_zoned_model(int i)
> return 0;
> }
>
> -int f2fs_get_zone_blocks(int i)
> +uint64_t f2fs_get_zone_chunk_sectors(struct device_info *dev)
chunk_sectors is an unsigned int. Why the change to uint64_t ?
> {
> - struct device_info *dev = c.devices + i;
> uint64_t sectors;
> char str[PATH_MAX];
> FILE *file;
> int res;
>
> - /* Get zone size */
> - dev->zone_blocks = 0;
> -
> res = get_sysfs_path(dev, "queue/chunk_sectors", str, sizeof(str));
> if (res != 0) {
> MSG(0, "\tError: Failed to get device sysfs attribute path\n");
> - return -1;
> + return 0;
> }
>
> file = fopen(str, "r");
> if (!file)
> - return -1;
> + return 0;
>
> memset(str, 0, sizeof(str));
> res = fscanf(file, "%s", str);
> fclose(file);
>
> if (res != 1)
> - return -1;
> + return 0;
>
> sectors = atol(str);
> + if (!sectors)
> + return 0;
> +
> + return sectors;
> +}
> +
> +int f2fs_get_zone_blocks(int i)
> +{
> + struct device_info *dev = c.devices + i;
> + uint64_t sectors;
> +
> + /* Get zone size */
> + dev->zone_blocks = 0;
> +
> + sectors = f2fs_get_zone_chunk_sectors(dev);
> if (!sectors)
> return -1;
>
--
Damien Le Moal
Western Digital Research
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel