| From 387122478775be5d9816c34aa29de53d0b926835 Mon Sep 17 00:00:00 2001 |
| From: Trond Myklebust <trondmy@gmail.com> |
| Date: Sun, 26 Jan 2020 17:31:13 -0500 |
| Subject: NFSv4: pnfs_roc() must use cred_fscmp() to compare creds |
| |
| From: Trond Myklebust <trondmy@gmail.com> |
| |
| commit 387122478775be5d9816c34aa29de53d0b926835 upstream. |
| |
| When comparing two 'struct cred' for equality w.r.t. behaviour under |
| filesystem access, we need to use cred_fscmp(). |
| |
| Fixes: a52458b48af1 ("NFS/NFSD/SUNRPC: replace generic creds with 'struct cred'.") |
| Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> |
| Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/nfs/pnfs.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/fs/nfs/pnfs.c |
| +++ b/fs/nfs/pnfs.c |
| @@ -1425,7 +1425,7 @@ retry: |
| /* lo ref dropped in pnfs_roc_release() */ |
| layoutreturn = pnfs_prepare_layoutreturn(lo, &stateid, &iomode); |
| /* If the creds don't match, we can't compound the layoutreturn */ |
| - if (!layoutreturn || cred != lo->plh_lc_cred) |
| + if (!layoutreturn || cred_fscmp(cred, lo->plh_lc_cred) != 0) |
| goto out_noroc; |
| |
| roc = layoutreturn; |