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

Commit 2ce8f047 authored by Wang Chen's avatar Wang Chen Committed by David S. Miller
Browse files

[SUNRPC]: Use proc_create() to setup ->proc_fops first



Use proc_create() to make sure that ->proc_fops be setup before gluing
PDE to main tree.

Signed-off-by: default avatarWang Chen <wangchen@cn.fujitsu.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 64758bd7
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -316,31 +316,29 @@ static int create_cache_proc_entries(struct cache_detail *cd)
	cd->proc_ent->owner = cd->owner;
	cd->channel_ent = cd->content_ent = NULL;

	p = create_proc_entry("flush", S_IFREG|S_IRUSR|S_IWUSR, cd->proc_ent);
	p = proc_create("flush", S_IFREG|S_IRUSR|S_IWUSR,
			cd->proc_ent, &cache_flush_operations);
	cd->flush_ent = p;
	if (p == NULL)
		goto out_nomem;
	p->proc_fops = &cache_flush_operations;
	p->owner = cd->owner;
	p->data = cd;

	if (cd->cache_request || cd->cache_parse) {
		p = create_proc_entry("channel", S_IFREG|S_IRUSR|S_IWUSR,
				      cd->proc_ent);
		p = proc_create("channel", S_IFREG|S_IRUSR|S_IWUSR,
				cd->proc_ent, &cache_file_operations);
		cd->channel_ent = p;
		if (p == NULL)
			goto out_nomem;
		p->proc_fops = &cache_file_operations;
		p->owner = cd->owner;
		p->data = cd;
	}
	if (cd->cache_show) {
		p = create_proc_entry("content", S_IFREG|S_IRUSR|S_IWUSR,
				      cd->proc_ent);
		p = proc_create("content", S_IFREG|S_IRUSR|S_IWUSR,
				cd->proc_ent, &content_file_operations);
		cd->content_ent = p;
		if (p == NULL)
			goto out_nomem;
		p->proc_fops = &content_file_operations;
		p->owner = cd->owner;
		p->data = cd;
	}
+1 −2
Original line number Diff line number Diff line
@@ -229,9 +229,8 @@ do_register(const char *name, void *data, const struct file_operations *fops)
	rpc_proc_init();
	dprintk("RPC:       registering /proc/net/rpc/%s\n", name);

	ent = create_proc_entry(name, 0, proc_net_rpc);
	ent = proc_create(name, 0, proc_net_rpc, fops);
	if (ent) {
		ent->proc_fops = fops;
		ent->data = data;
	}
	return ent;