[PATCH v2 1/2] NFS: Fix inode fileid checks in attribute revalidation code

2019-09-10 Thread Trond Myklebust
) Signed-off-by: Trond Myklebust Signed-off-by: Christophe Leroy --- fs/nfs/inode.c | 18 ++ 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index c764cfe456e5..2a03bfeec10a 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c @@ -1403,11 +14

Re: [RFC PATCH] lib: Introduce generic __cmpxchg_u64() and use it where needed

2018-11-01 Thread Trond Myklebust
fe C standards assumptions for signed integers. See, for instance commit 5a581b367b5d "jiffies: Avoid undefined behavior from signed overflow" from Paul McKenney. Anyhow, if the atomic maintainers are willing to stand up and state for the record that the atomic counters are guaranteed to wrap modulo 2^n just like unsigned integers, then I'm happy to take Paul's patch. -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.mykleb...@hammerspace.com

Re: [RFC PATCH] lib: Introduce generic __cmpxchg_u64() and use it where needed

2018-10-31 Thread Trond Myklebust
> > + 8)) > > @@ -205,7 +181,7 @@ gss_get_mic_v2(struct krb5_ctx *ctx, struct > > xdr_buf *text, > > > > /* Set up the sequence number. Now 64-bits in clear > > * text and w/o direction indicator */ > > - seq_send_be64 = cpu_to_be64(gss_seq_send64_fetch_and_inc(ctx)); > > + seq_send_be64 = cpu_to_be64(atomic64_fetch_inc(&ctx- > > >seq_send64)); > > memcpy(krb5_hdr + 8, (char *) &seq_send_be64, 8); > > > > if (ctx->initiate) { > > diff --git a/net/sunrpc/auth_gss/gss_krb5_wrap.c > > b/net/sunrpc/auth_gss/gss_krb5_wrap.c > > index 962fa84e6db1..5cdde6cb703a 100644 > > --- a/net/sunrpc/auth_gss/gss_krb5_wrap.c > > +++ b/net/sunrpc/auth_gss/gss_krb5_wrap.c > > @@ -228,7 +228,7 @@ gss_wrap_kerberos_v1(struct krb5_ctx *kctx, int > > offset, > > > > memcpy(ptr + GSS_KRB5_TOK_HDR_LEN, md5cksum.data, > > md5cksum.len); > > > > - seq_send = gss_seq_send_fetch_and_inc(kctx); > > + seq_send = atomic_fetch_inc(&kctx->seq_send); > > > > /* XXX would probably be more efficient to compute checksum > > * and encrypt at the same time: */ > > @@ -475,7 +475,7 @@ gss_wrap_kerberos_v2(struct krb5_ctx *kctx, u32 > > offset, > > *be16ptr++ = 0; > > > > be64ptr = (__be64 *)be16ptr; > > - *be64ptr = cpu_to_be64(gss_seq_send64_fetch_and_inc(kctx)); > > + *be64ptr = cpu_to_be64(atomic64_fetch_inc(&kctx->seq_send64)); > > > > err = (*kctx->gk5e->encrypt_v2)(kctx, offset, buf, pages); > > if (err) > > -- Trond Myklebust CTO, Hammerspace Inc 4300 El Camino Real, Suite 105 Los Altos, CA 94022 www.hammer.space

Re: [RFC PATCH] lib: Introduce generic __cmpxchg_u64() and use it where needed

2018-10-31 Thread Trond Myklebust
pc/auth_gss/gss_krb5_wrap.c > index 962fa84e6db1..5cdde6cb703a 100644 > --- a/net/sunrpc/auth_gss/gss_krb5_wrap.c > +++ b/net/sunrpc/auth_gss/gss_krb5_wrap.c > @@ -228,7 +228,7 @@ gss_wrap_kerberos_v1(struct krb5_ctx *kctx, int > offset, > > memcpy(ptr + GSS_KRB5_TOK_HDR_LEN, md5cksum.data, > md5cksum.len); > > - seq_send = gss_seq_send_fetch_and_inc(kctx); > + seq_send = atomic_fetch_inc(&kctx->seq_send); > > /* XXX would probably be more efficient to compute checksum >* and encrypt at the same time: */ > @@ -475,7 +475,7 @@ gss_wrap_kerberos_v2(struct krb5_ctx *kctx, u32 > offset, > *be16ptr++ = 0; > > be64ptr = (__be64 *)be16ptr; > - *be64ptr = cpu_to_be64(gss_seq_send64_fetch_and_inc(kctx)); > + *be64ptr = cpu_to_be64(atomic64_fetch_inc(&kctx->seq_send64)); > > err = (*kctx->gk5e->encrypt_v2)(kctx, offset, buf, pages); > if (err) -- Trond Myklebust CTO, Hammerspace Inc 4300 El Camino Real, Suite 105 Los Altos, CA 94022 www.hammer.space

Re: [BUG] 2.6.24-rc2-mm1 - kernel bug on nfs v4

2007-11-18 Thread Trond Myklebust
/ > nfs_sb_deactive for the NFSv4 case, I can't offer a patch to fix this. > > Torsten I had already fixed that one in my own stack. Attached are the 3 patches that I've got. 1 from SteveD, 2 fixes. Andrew, could you please unapply the sillyrename patches you&#x

Re: [BUG] 2.6.24-rc2-mm1 - kernel bug on nfs v4

2007-11-17 Thread Trond Myklebust
other situations. Fix is to move the call to nfs_sb_deactive() into nfs_async_unlink_release(). Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]> --- fs/nfs/unlink.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c index b97d3bb.