diff options
| author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2025-11-28 18:56:46 -0500 |
|---|---|---|
| committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2025-11-29 17:23:03 -0500 |
| commit | a2a8fc27dd668e7562b5326b5ed2f1604cb1e2e9 (patch) | |
| tree | 271c86cf15fd7c6879eff2a5f1a9b29fa00ba956 | |
| parent | 2b092175f5e301cdaa935093edfef2be9defb6df (diff) | |
NFS: Fix up the automount fs_context to use the correct cred
When automounting, the fs_context should be fixed up to use the cred
from the parent filesystem, since the operation is just extending the
namespace. Authorisation to enter that namespace will already have been
provided by the preceding lookup.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
| -rw-r--r-- | fs/nfs/namespace.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c index 9e4d94f41fc6..af9be0c5f516 100644 --- a/fs/nfs/namespace.c +++ b/fs/nfs/namespace.c @@ -170,6 +170,11 @@ struct vfsmount *nfs_d_automount(struct path *path) if (!ctx->clone_data.fattr) goto out_fc; + if (fc->cred != server->cred) { + put_cred(fc->cred); + fc->cred = get_cred(server->cred); + } + if (fc->net_ns != client->cl_net) { put_net(fc->net_ns); fc->net_ns = get_net(client->cl_net); |
