* Daniel P. Berrangé: >> For emulating 32-bit targets, we have a broken readdir/telldir/seekdir >> implementation in glibc on 64 bit host kernels because we try to use >> d_ino directly, which is 64 bit and does not fit into the long value recte: d_off >> that POSIX requires. A kernel patch with a new interface has been >> posted which would work around this has been proposed, but it is not >> going anywhere. > >> The second issue also affects full-system virtualization if p9fs (not >> sure what the right name is, it's the older pass-through file system) is >> used. But it's specific to 32 bit, so maybe not that important after >> all. > > Yep, 9p, its generally not great POSIX emulation no matter what. > > The more modern virtio-fs is a more promising solution for the > future, based on FUSE. The second problem is not a matter of old vs modern interfaces, it's that POSIX requires us to fit the 64-bit d_off value we get from the kernel into a 32-bit long, because that's what telldir returns. This is true even for builds with 64-bit off_t values. The kernel cannot really fix this on our behalf because it would have to perform a side-translation for every directory entry. That's problematic for large directories. But in glibc, we know when we need the translation (when the application calls telldir), and we can defer the translation until then. It's just a little bit awkward to implement because telldir must not fail, so we need to preallocate space for the translation during the readdir call. But it's not impossible. Thanks, Florian _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx