Linus Torvalds writes: (Summary) They test the
sign in 64 bits and return that boolean single-bit value. The _intent_ is to allow
numbers up to 2**63 apart, but if somebody does that
numbers up to 2**63 apart, but if somebody does that
int cmp = inode_cmp_iversion(inode, old);
int cmp = inode_cmp_iversion(inode, old);
int cmp = inode_cmp_iversion(inode, old);
if (cmp < And what used to be a sign bit (in 64 bits) no longer exists, and the above tests the *new* sign bit that is bit #31, not #63. Because if you return the 64-bit difference, it will be trivially lost, and the code will _look_ right, but not work right.