diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 0554b0b..e45cec4 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -4790,6 +4790,10 @@ int ext4_getattr(struct vfsmount *mnt, struct dentry *dentry, inode = d_inode(dentry); generic_fillattr(inode, stat); + /* Tweak inode size for encrypted inodes */ + if (unlikely(ext4_encrypted_inode(inode) && ext4_get_encryption_info(inode) == -ENOKEY)) + stat->size = (stat->size + stat->blksize - 1 ) & ~(stat->blksize - 1); + /* * If there is inline data in the inode, the inode will normally not * have data blocks allocated (it may have an external xattr block).