On 11/11/24 14:41, Zhu Jun wrote: > The format specifier of "signed int" in snprintf() should be "%d", not > "%u". My apologies for the late reply. A better fix is to make f "unsigned int" as that is consistent with g_nr_zones and the fact that up to "unsigned int" total number of zones are allowed for a zoned device. Can you send a v2 ? Also please add a Fixes tag. > > Signed-off-by: Zhu Jun <zhujun2@xxxxxxxxxxxxxxxxxxxx> > --- > fs/zonefs/super.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c > index faf1eb87895d..43c2f4a59b50 100644 > --- a/fs/zonefs/super.c > +++ b/fs/zonefs/super.c > @@ -811,7 +811,7 @@ static int zonefs_readdir_zgroup(struct file *file, > for (f = ctx->pos - 2; f < zgroup->g_nr_zones; f++) { > z = &zgroup->g_zones[f]; > ino = z->z_sector >> sbi->s_zone_sectors_shift; > - fname_len = snprintf(fname, ZONEFS_NAME_MAX - 1, "%u", f); > + fname_len = snprintf(fname, ZONEFS_NAME_MAX - 1, "%d", f); > if (!dir_emit(ctx, fname, fname_len, ino, DT_REG)) > break; > ctx->pos++; -- Damien Le Moal Western Digital Research