NFS4.1 Fix data server connection race
authorAndy Adamson <andros@netapp.com>
Wed, 8 May 2013 20:21:18 +0000 (16:21 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 8 May 2013 21:19:32 +0000 (17:19 -0400)
commitc23266d532b4de796a346f57a66587c5db17d27e
treeff380244bcc16957bb0849cac47d5383a2b710af
parentd497ab975141666e674e7bd8729e00095ec23c9d
NFS4.1 Fix data server connection race

Unlike meta data server mounts which support multiple mount points to
the same server via struct nfs_server, data servers support a single connection.

Concurrent calls to setup the data server connection can race where the first
call allocates the nfs_client struct, and before the cache struct nfs_client
pointer can be set, a second call also tries to setup the connection, finds the
already allocated nfs_client, bumps the reference count, re-initializes the
session,etc. This results in a hanging data server session after umount.

Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4filelayout.h
fs/nfs/nfs4filelayoutdev.c