zonfs: Fix handling of read-only zones
authorDamien Le Moal <damien.lemoal@wdc.com>
Fri, 20 Mar 2020 12:36:54 +0000 (21:36 +0900)
committerDamien Le Moal <damien.lemoal@wdc.com>
Wed, 25 Mar 2020 02:28:26 +0000 (11:28 +0900)
commitccf4ad7da0d9c30a962a116cb55bcd7d8c44b0fe
tree7dd69481e52106a8dceeaad3ee2157d34e640ce7
parent0dda2ddb7ded1395189e95d43106469687c07795
zonfs: Fix handling of read-only zones

The write pointer of zones in the read-only consition is defined as
invalid by the SCSI ZBC and ATA ZAC specifications. It is thus not
possible to determine the correct size of a read-only zone file on
mount. Fix this by handling read-only zones in the same manner as
offline zones by disabling all accesses to the zone (read and write)
and initializing the inode size of the read-only zone to 0).

For zones found to be in the read-only condition at runtime, only
disable write access to the zone and keep the size of the zone file to
its last updated value to allow the user to recover previously written
data.

Also fix zonefs documentation file to reflect this change.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Documentation/filesystems/zonefs.txt
fs/zonefs/super.c