summaryrefslogtreecommitdiff
path: root/fs/read_write.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2013-08-05 12:06:12 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-14 22:59:08 -0700
commit870bfc6b47ecf64845dbf8e5d7a09877998e1b69 (patch)
tree8dbee6080950eaf16772d2fb1ac9b38f127b1178 /fs/read_write.c
parent31a9bd79d76026a8c8cff63c6887483e2e766ee4 (diff)
downloadkernel-common-870bfc6b47ecf64845dbf8e5d7a09877998e1b69.tar.gz
kernel-common-870bfc6b47ecf64845dbf8e5d7a09877998e1b69.tar.bz2
kernel-common-870bfc6b47ecf64845dbf8e5d7a09877998e1b69.zip
LOCKD: Don't call utsname()->nodename from nlmclnt_setlockargs
commit 9a1b6bf818e74bb7aabaecb59492b739f2f4d742 upstream. Firstly, nlmclnt_setlockargs can be called from a reclaimer thread, in which case we're in entirely the wrong namespace. Secondly, commit 8aac62706adaaf0fab02c4327761561c8bda9448 (move exit_task_namespaces() outside of exit_notify()) now means that exit_task_work() is called after exit_task_namespaces(), which triggers an Oops when we're freeing up the locks. Fix this by ensuring that we initialise the nlm_host's rpc_client at mount time, so that the cl_nodename field is initialised to the value of utsname()->nodename that the net namespace uses. Then replace the lockd callers of utsname()->nodename. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Toralf Förster <toralf.foerster@gmx.de> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Nix <nix@esperi.org.uk> Cc: Jeff Layton <jlayton@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/read_write.c')
0 files changed, 0 insertions, 0 deletions