Commit 3c91e4b7 authored by Anna Schumaker's avatar Anna Schumaker Committed by Trond Myklebust
Browse files

NFS: Clean up find_nfs_version()



It's good practice to check the return value of request_module() to see
if the module has been found. It's also a little easier to follow the
code if __find_nfs_version() doesn't attempt to convert NULL pointers
into -EPROTONOSUPPORT.

Signed-off-by: default avatarAnna Schumaker <anna.schumaker@oracle.com>
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent df50b5ee
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -87,9 +87,6 @@ static struct nfs_subversion *__find_nfs_version(unsigned int version)
	read_lock(&nfs_version_lock);
	nfs = nfs_version_mods[version];
	read_unlock(&nfs_version_lock);

	if (nfs == NULL)
		return ERR_PTR(-EPROTONOSUPPORT);
	return nfs;
}

@@ -97,13 +94,15 @@ struct nfs_subversion *find_nfs_version(unsigned int version)
{
	struct nfs_subversion *nfs = __find_nfs_version(version);

	if (IS_ERR(nfs)) {
		request_module("nfsv%d", version);
	if (!nfs && request_module("nfsv%d", version) == 0)
		nfs = __find_nfs_version(version);
	}

	if (!IS_ERR(nfs) && !try_module_get(nfs->owner))
	if (!nfs)
		return ERR_PTR(-EPROTONOSUPPORT);

	if (!try_module_get(nfs->owner))
		return ERR_PTR(-EAGAIN);

	return nfs;
}