> #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