|
@@ -1302,6 +1302,14 @@ int ocfs2_getattr(struct vfsmount *mnt,
|
|
}
|
|
}
|
|
|
|
|
|
generic_fillattr(inode, stat);
|
|
generic_fillattr(inode, stat);
|
|
|
|
+ /*
|
|
|
|
+ * If there is inline data in the inode, the inode will normally not
|
|
|
|
+ * have data blocks allocated (it may have an external xattr block).
|
|
|
|
+ * Report at least one sector for such files, so tools like tar, rsync,
|
|
|
|
+ * others don't incorrectly think the file is completely sparse.
|
|
|
|
+ */
|
|
|
|
+ if (unlikely(OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL))
|
|
|
|
+ stat->blocks += (stat->size + 511)>>9;
|
|
|
|
|
|
/* We set the blksize from the cluster size for performance */
|
|
/* We set the blksize from the cluster size for performance */
|
|
stat->blksize = osb->s_clustersize;
|
|
stat->blksize = osb->s_clustersize;
|