ENBD とか stat とか statfs とか

色々確認中です。
とりあえず確認要件としては_df と ls の結果なサイズの数値が異なる_という事なんですが、statfs とか stat なシステムコールを確認する必要あり、な結論に至ってます。

結論から言えば

enbd ってブロックデバイスなソレしか提供してない、というかレイヤとしては低水準なんで、そこが確認要件な要因ではなさげ、というのが現時点での結論です。
結局そのブロックデバイスにどんなファイルシステムが mount されてるか、というのがある意味一つのポイントな状態。
と、いうのも statfs なカーネル i/f と見られる以下l (fs/open.c) を見ても

int vfs_statfs(struct dentry *dentry, struct kstatfs *buf)
{
	int retval = -ENODEV;

	if (dentry) {
		retval = -ENOSYS;
		if (dentry->d_sb->s_op->statfs) {
			memset(buf, 0, sizeof(*buf));
			retval = security_sb_statfs(dentry);
			if (retval)
				return retval;
			retval = dentry->d_sb->s_op->statfs(dentry, buf);
			if (retval == 0 && buf->f_frsize == 0)
				buf->f_frsize = buf->f_bsize;
		}
	}
	return retval;
}

元が dentry なんだよな、と。
結局そのブロックデバイスにどのファイルシステムが mount されてるか、が問題なんじゃね、という結論に至ってる今日この頃。