Re: [PATCH v9 3/6] nfsd: add a per-net-namespace struct for nfsd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



06.03.2012 19:28, Jeff Layton пишет:
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index 64c24af..141197e 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -19,6 +19,7 @@
  #include "nfsd.h"
  #include "cache.h"
  #include "fault_inject.h"
+#include "netns.h"

  /*
   *	We have a single directory with several nodes in it.
@@ -1124,14 +1125,23 @@ static int create_proc_exports_entry(void)
  }
  #endif

+int nfsd_net_id;
+static struct pernet_operations nfsd_net_ops = {
+	.id   =&nfsd_net_id,
+	.size = sizeof(struct nfsd_net),
+};
+
  static int __init init_nfsd(void)
  {
  	int retval;
  	printk(KERN_INFO "Installing knfsd (copyright (C) 1996 okir@xxxxxxxxxxxx).\n");

+	retval = register_pernet_subsys(&nfsd_net_ops);

Hi, Jeff.
You've created per-net structure and operations and that's cool.
But why don't you move nfsd client tracking control into per-net operations?
I.e. add init-exit callbacks in struct pernet_operations and call nfsd4_client_tracking_init() and nfsd4_client_tracking_exit() respectively in there? And since we don't support any other networks namesapce except init_net, then just skip all others in these callbacks.


+	if (retval<  0)
+		return retval;
  	retval = nfsd4_init_slabs();
  	if (retval)
-		return retval;
+		goto out_unregister_pernet;
  	nfs4_state_init();
  	retval = nfsd_fault_inject_init(); /* nfsd fault injection controls */
  	if (retval)
@@ -1169,6 +1179,8 @@ out_free_stat:
  	nfsd_fault_inject_cleanup();
  out_free_slabs:
  	nfsd4_free_slabs();
+out_unregister_pernet:
+	unregister_pernet_subsys(&nfsd_net_ops);
  	return retval;
  }

@@ -1184,6 +1196,7 @@ static void __exit exit_nfsd(void)
  	nfsd4_free_slabs();
  	nfsd_fault_inject_cleanup();
  	unregister_filesystem(&nfsd_fs_type);
+	unregister_pernet_subsys(&nfsd_net_ops);
  }

  MODULE_AUTHOR("Olaf Kirch<okir@xxxxxxxxxxxx>");


--
Best regards,
Stanislav Kinsbursky
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux