From: Trond Myklebust Date: Wed, 12 Feb 2014 14:36:59 +0000 (-0500) Subject: NFSv4.1: Fix wraparound issues in pnfs_seqid_is_newer() X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=2c64c57dfc4b7946f7abd8af653f55af581bc2c3;p=deliverable%2Flinux.git NFSv4.1: Fix wraparound issues in pnfs_seqid_is_newer() Subtraction of signed integers does not have well defined wraparound semantics in the C99 standard. In order to be wraparound-safe, we have to use unsigned subtraction, and then cast the result. Signed-off-by: Trond Myklebust --- diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index 4755858e37a0..6e67ada6c22c 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c @@ -662,7 +662,7 @@ pnfs_destroy_all_layouts(struct nfs_client *clp) */ static bool pnfs_seqid_is_newer(u32 s1, u32 s2) { - return (s32)s1 - (s32)s2 > 0; + return (s32)(s1 - s2) > 0; } /* update lo->plh_stateid with new if is more recent */