I don't think that's the right fix. The linux code should just use the timespec returned by the vnodeop, which includes the data version in the nsec field. Otherwise the file could change but still have the same mtime. I'm pretty sure that's what most of the other clients do.