• Damien Le Moal's avatar
    zonefs: Simplify IO error handling · 46a9c526
    Damien Le Moal authored
    Simplify zonefs_check_zone_condition() by moving the code that changes
    an inode access rights to the new function zonefs_inode_update_mode().
    Furthermore, since on mount an inode wpoffset is always zero when
    zonefs_check_zone_condition() is called during an inode initialization,
    the "mount" boolean argument is not necessary for the readonly zone
    case. This argument is thus removed.
    
    zonefs_io_error_cb() is also modified to use the inode offline and
    zone state flags instead of checking the device zone condition. The
    multiple calls to zonefs_check_zone_condition() are reduced to the first
    call on entry, which allows removing the "warn" argument.
    zonefs_inode_update_mode() is also used to update an inode access rights
    as zonefs_io_error_cb() modifies the inode flags depending on the volume
    error handling mode (defined with a mount option). Since an inode mode
    change differs for read-only zones between mount time and IO error time,
    the flag ZONEFS_ZONE_INIT_MODE is used to differentiate both cases.
    Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
    Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
    46a9c526
super.c 29.8 KB