In ext4_find_inline_entry(), there is the following:
if (ext4_get_inline_size(dir) == EXT4_MIN_INLINE_DATA_SIZE)
goto out;
Am I missing something, or shouldn't this be:
if (ext4_get_inline_size(dir) <= EXT4_MIN_INLINE_DATA_SIZE)
goto out;
?
Thanks,
- Ted
On Thu, Aug 21, 2014 at 06:01:26PM -0400, Theodore Ts'o wrote:
> In ext4_find_inline_entry(), there is the following:
>
> if (ext4_get_inline_size(dir) == EXT4_MIN_INLINE_DATA_SIZE)
> goto out;
>
> Am I missing something, or shouldn't this be:
>
> if (ext4_get_inline_size(dir) <= EXT4_MIN_INLINE_DATA_SIZE)
> goto out;
>
> ?
I'm not sure it matters, since I see:
EXT4_I(inode)->i_inline_size = len + EXT4_MIN_INLINE_DATA_SIZE
scattered all over the code. I'm not sure I like the idea that both ext4 and
e2fsprogs think that the inline data size is never <= 60, but afaict it doesn't
cause any problems.
--D
>
> Thanks,
>
> - Ted
>
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Aug 21, 2014 at 06:01:26PM -0400, Theodore Ts'o wrote:
> In ext4_find_inline_entry(), there is the following:
>
> if (ext4_get_inline_size(dir) == EXT4_MIN_INLINE_DATA_SIZE)
> goto out;
>
> Am I missing something, or shouldn't this be:
>
> if (ext4_get_inline_size(dir) <= EXT4_MIN_INLINE_DATA_SIZE)
> goto out;
Hi Ted,
The original design idea is that the size of inline data shouldn't be
less than EXT4_MIN_INLINE_DATA_SIZE (60 bytes). That means that the
inline data will occupy the whole i_block[] space.
If we create a new dir with inline data feature, the disk layout will
looks like below (ext4_try_create_inline_dir()):
i_block[0]: parent ino (4 bytes)
i_block+4: dir entry (ino 0, rec_len 56 bytes)
Regards,
- Zheng