On Fre, 2013-05-17 at 17:33 -0400, Jim Rees wrote: > In C, signed integer overflow results in undefined behavior, but unsigned > overflow wraps around. So do the subtraction first, then cast to signed. > > Suggested-by: Joakim Tjernlund <joakim.tjernlund@xxxxxxxxxxxx> > Signed-off-by: Jim Rees <rees@xxxxxxxxx> > --- > fs/nfsd/nfs4state.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c > index 316ec84..9850329 100644 > --- a/fs/nfsd/nfs4state.c > +++ b/fs/nfsd/nfs4state.c > @@ -3427,7 +3427,7 @@ grace_disallows_io(struct net *net, struct inode *inode) > /* Returns true iff a is later than b: */ > static bool stateid_generation_after(stateid_t *a, stateid_t *b) > { > - return (s32)a->si_generation - (s32)b->si_generation > 0; > + return (s32)(a->si_generation - b->si_generation) > 0; > } Hmm, what is actually wrong with plain-old ---- snip ---- static bool stateid_generation_after(stateid_t *a, stateid_t *b) { return a->si_generation > b->si_generation; } ---- snip ---- ? Kind regards, Bernd -- Bernd Petrovitsch Email : bernd@xxxxxxxxxxxxxxxxxxx LUGA : http://www.luga.at -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html