Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9222b955 authored by Stanislav Kinsbursky's avatar Stanislav Kinsbursky Committed by Trond Myklebust
Browse files

NFS: split cache creation and PipeFS registration



This precursor patch splits NFS cache creation and PipeFS registartion.
It's required for latter split of NFS DNS resolver cache creation per network
namespace context and PipeFS registration/unregistration on MOUNT/UMOUNT
events.

Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 820f9442
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -120,7 +120,6 @@ int nfs_cache_register(struct cache_detail *cd)
	mnt = rpc_get_mount();
	if (IS_ERR(mnt))
		return PTR_ERR(mnt);
	sunrpc_init_cache_detail(cd);
	ret = vfs_path_lookup(mnt->mnt_root, mnt, "/cache", 0, &path);
	if (ret)
		goto err;
@@ -129,7 +128,6 @@ int nfs_cache_register(struct cache_detail *cd)
	if (!ret)
		return ret;
err:
	sunrpc_destroy_cache_detail(cd);
	rpc_put_mount();
	return ret;
}
@@ -141,3 +139,12 @@ void nfs_cache_unregister(struct cache_detail *cd)
	rpc_put_mount();
}

void nfs_cache_init(struct cache_detail *cd)
{
	sunrpc_init_cache_detail(cd);
}

void nfs_cache_destroy(struct cache_detail *cd)
{
	sunrpc_destroy_cache_detail(cd);
}
+2 −0
Original line number Diff line number Diff line
@@ -23,5 +23,7 @@ extern struct nfs_cache_defer_req *nfs_cache_defer_req_alloc(void);
extern void nfs_cache_defer_req_put(struct nfs_cache_defer_req *dreq);
extern int nfs_cache_wait_for_upcall(struct nfs_cache_defer_req *dreq);

extern void nfs_cache_init(struct cache_detail *cd);
extern void nfs_cache_destroy(struct cache_detail *cd);
extern int nfs_cache_register(struct cache_detail *cd);
extern void nfs_cache_unregister(struct cache_detail *cd);
+10 −1
Original line number Diff line number Diff line
@@ -361,12 +361,21 @@ ssize_t nfs_dns_resolve_name(char *name, size_t namelen,

int nfs_dns_resolver_init(void)
{
	return nfs_cache_register(&nfs_dns_resolve);
	int err;

	nfs_cache_init(&nfs_dns_resolve);
	err = nfs_cache_register(&nfs_dns_resolve);
	if (err) {
		nfs_cache_destroy(&nfs_dns_resolve);
		return err;
	}
	return 0;
}

void nfs_dns_resolver_destroy(void)
{
	nfs_cache_unregister(&nfs_dns_resolve);
	nfs_cache_destroy(&nfs_dns_resolve);
}

#endif