Thanks - I can reproduce this and have tracked down the problem. We're missing an eCryptfs metadata read, in the ecryptfs_getattr() path, after a metadata read in the lookup() path fails. This results in a stat() call returning an incorrect inode size and then subsequent read()'s not adding up to the correct file size.
I've started on a fix, but will need a bit more time, as this code is fragile and needs improvements outside of this bug.
Thanks - I can reproduce this and have tracked down the problem. We're missing an eCryptfs metadata read, in the ecryptfs_getattr() path, after a metadata read in the lookup() path fails. This results in a stat() call returning an incorrect inode size and then subsequent read()'s not adding up to the correct file size.
I've started on a fix, but will need a bit more time, as this code is fragile and needs improvements outside of this bug.