Commit 2c64c57d authored by Trond Myklebust's avatar Trond Myklebust

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: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
parent 311324ad
...@@ -662,7 +662,7 @@ pnfs_destroy_all_layouts(struct nfs_client *clp) ...@@ -662,7 +662,7 @@ pnfs_destroy_all_layouts(struct nfs_client *clp)
*/ */
static bool pnfs_seqid_is_newer(u32 s1, u32 s2) 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 */ /* update lo->plh_stateid with new if is more recent */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment