On 2021/02/17 18:58, Shin'ichiro Kawasaki wrote: > Per ZBC/ZAC/ZNS specifications, write pointers may not have valid values > when zones are in full condition. However, when zonefs mounts a zoned > block device, zonefs refers write pointers to set file size even when > the zones are in full condition. This results in wrong file size. To fix > this, refer maximum file size in place of write pointers for zones in > full condition. > > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> > Fixes: 8dcc1a9d90c1 ("fs: New zonefs file system") > Cc: <stable@xxxxxxxxxxxxxxx> # 5.6+ > --- > fs/zonefs/super.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c > index bec47f2d074b..3fe933b1010c 100644 > --- a/fs/zonefs/super.c > +++ b/fs/zonefs/super.c > @@ -250,6 +250,9 @@ static loff_t zonefs_check_zone_condition(struct inode *inode, > } > inode->i_mode &= ~0222; > return i_size_read(inode); > + case BLK_ZONE_COND_FULL: > + /* The write pointer of full zones is invalid. */ > + return zi->i_max_size; > default: > if (zi->i_ztype == ZONEFS_ZTYPE_CNV) > return zi->i_max_size; > Applied to for-5.12. Thanks ! -- Damien Le Moal Western Digital Research