On Fri, Jul 06, 2018 at 11:12:28AM +0800, Shan Hai wrote: > Return non-zero blocks for inline data even though the inode has > no external blocks, otherwise the "ls -ls" would show zero blocks > occupied by the file. > Is there any issue you ran into while leaving inodes with zero blocks allocated? Inodes should actually report the real amount of allocated blocks, not fake it. Inodes with inlined data should actually report 0 blocks, otherwise, many applications which actually relies on the amount of allocated blocks for each file will misbehave. > Signed-off-by: Shan Hai <shan.hai@xxxxxxxxxx> > --- > fs/xfs/xfs_iops.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c > index 0fa29f39d658..63be1355a473 100644 > --- a/fs/xfs/xfs_iops.c > +++ b/fs/xfs/xfs_iops.c > @@ -500,8 +500,14 @@ xfs_vn_getattr( > stat->atime = inode->i_atime; > stat->mtime = inode->i_mtime; > stat->ctime = inode->i_ctime; > - stat->blocks = > + > + if (xfs_sb_version_hasinlinedata(&mp->m_sb) && > + XFS_IFORK_FORMAT(ip, XFS_DATA_FORK) == XFS_DINODE_FMT_LOCAL) { > + stat->blocks = BTOBB(XFS_ISIZE(ip)); > + } else { > + stat->blocks = > XFS_FSB_TO_BB(mp, ip->i_d.di_nblocks + ip->i_delayed_blks); > + } > > if (ip->i_d.di_version == 3) { > if (request_mask & STATX_BTIME) { > -- > 2.11.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Carlos -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html