diff options
author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2023-01-02 04:17:23 +0300 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2023-01-02 04:17:26 +0300 |
commit | 5e9a7b9c2ea18551759833146a181b14835bfe39 (patch) | |
tree | 00ed386ff79242b1d12a22636dfe72217736cf2b /fs/nfs/dir.c | |
parent | 029085b8949f5d269ae2bbd14915407dd0c7f902 (diff) | |
download | linux-5e9a7b9c2ea18551759833146a181b14835bfe39.tar.xz |
NFS: Fix up a sparse warning
sparse is warning about an incorrect RCU dereference.
fs/nfs/dir.c:2965:56: warning: incorrect type in argument 1 (different address spaces)
fs/nfs/dir.c:2965:56: expected struct cred const *
fs/nfs/dir.c:2965:56: got struct cred const [noderef] __rcu *const cred
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'fs/nfs/dir.c')
-rw-r--r-- | fs/nfs/dir.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index d490d64a9ebd..f7e4a88d5d92 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -2957,12 +2957,14 @@ static u64 nfs_access_login_time(const struct task_struct *task, const struct cred *cred) { const struct task_struct *parent; + const struct cred *pcred; u64 ret; rcu_read_lock(); for (;;) { parent = rcu_dereference(task->real_parent); - if (parent == task || cred_fscmp(parent->cred, cred) != 0) + pcred = rcu_dereference(parent->cred); + if (parent == task || cred_fscmp(pcred, cred) != 0) break; task = parent; } |