>  #define ST_IS_SPARSE(st)                                  \
>    (ST_NBLOCKS (st)                                        \
> -    < ((st).st_size / ST_NBLOCKSIZE + ((st).st_size % ST_NBLOCKSIZE != 0)))
> +   < ((st).st_size / ST_NBLOCKSIZE                     \
> +      + ((st).st_size % ST_NBLOCKSIZE != 0             \
> +      && (st).st_size / ST_NBLOCKSIZE != 0)))

May the st.st_size / ST_NBLOCKSIZE be greater than 1 and data still stored
in inode directly?  Seems like on ext4 filesystem it is not possible [1]
but does anybody know about exception?

[1] https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Inline_Data

Pavel


Reply via email to