nfs: keep server info for remounts
authorMartin Kaiser <martin@kaiser.cx>
Sun, 14 Apr 2024 17:01:09 +0000 (19:01 +0200)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 20 May 2024 15:37:15 +0000 (11:37 -0400)
commitb322bf9e983addedff0894c55e92d58f4d16d92a
tree77ca21eeb6b9006ddd10ed755231af2530b6f6d5
parent37ffe06537af3e3ec212e7cbe941046fce0a822f
nfs: keep server info for remounts

With newer kernels that use fs_context for nfs mounts, remounts fail with
-EINVAL.

$ mount -t nfs -o nolock 10.0.0.1:/tmp/test /mnt/test/
$ mount -t nfs -o remount /mnt/test/
mount: mounting 10.0.0.1:/tmp/test on /mnt/test failed: Invalid argument

For remounts, the nfs server address and port are populated by
nfs_init_fs_context and later overwritten with 0x00 bytes by
nfs23_parse_monolithic. The remount then fails as the server address is
invalid.

Fix this by not overwriting nfs server info in nfs23_parse_monolithic if
we're doing a remount.

Fixes: f2aedb713c28 ("NFS: Add fs_context support.")
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/fs_context.c