• Chao Yu's avatar
    f2fs: don't reserve additional space in xattr block · 22588f87
    Chao Yu authored
    In this patch, we change xattr block disk layout as below:
    
    Before:
    			xattr node block layout
    +---------------------------------------------+---------------+-------------+
    |           node block xattr entries          |   reserved    | node footer |
    |                  4068 Bytes                 |    4 Bytes    |  24 Bytes   |
    
    			In memory layout
    +--------------------+---------------------------------+--------------------+
    |    inline xattr    |     node block xattr entries    |      reserved      |
    |     200 Bytes      |         4068 Bytes              |      4 Bytes       |
    
    After:
    			xattr node block layout
    +-------------------------------------------------------------+-------------+
    |                  node block xattr entries                   | node footer |
    |                         4072 Bytes                          |  24 Bytes   |
    
    			In memory layout
    +--------------------+---------------------------------+--------------------+
    |    inline xattr    |     node block xattr entries    |      reserved      |
    |     200 Bytes      |         4072 Bytes              |      4 Bytes       |
    
    With this change, we don't need to reserve additional space in node block,
    just keep reserved space in logical in-memory layout. So that it would help
    to enlarge valid free space of xattr node block.
    
    As tested, generic/026 shows max stored xattr entires number increases from
    531 to 532 when inline_xattr option is enabled.
    Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    22588f87
xattr.c 16.6 KB