Re: [PATCH 1/2] nfsd: make NFSv4 lease time per net

From: Stanislav Kinsbursky
Date: Wed Nov 28 2012 - 10:35:29 EST


28.11.2012 19:15, J. Bruce Fields ÐÐÑÐÑ:
On Wed, Nov 28, 2012 at 07:12:03PM +0400, Stanislav Kinsbursky wrote:
28.11.2012 19:09, J. Bruce Fields ÐÐÑÐÑ:
On Tue, Nov 27, 2012 at 02:11:44PM +0300, Stanislav Kinsbursky wrote:
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index dab350d..4930981 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -912,7 +912,8 @@ static ssize_t nfsd4_write_time(struct file *file, char *buf, size_t size, time_
*/
static ssize_t write_leasetime(struct file *file, char *buf, size_t size)
{
- return nfsd4_write_time(file, buf, size, &nfsd4_lease);
+ struct nfsd_net *nn = net_generic(&init_net, nfsd_net_id);
+ return nfsd4_write_time(file, buf, size, &nn->nfsd4_lease);

This is called in the context of whatever process writes to
nfsv4leasetime, so should be using its network namespace, right?


This is, actually, a interim solution to preserve existent logic.
I.e. I'm going to convert "nfsd" filesystem into per-net one (like rpc_pipefs). I, actually, already done it in my tree.
Thus proper network namespace will be taken from nfsd superblock.

OK, remind me how that works? It's mounted just once, but each network
namespace gets a different view of the filesystem?


Nope. It's a single mount point, but per-namespace (network, in our case) - not globally.
Pointer to namespace will be placed on sb->s_fs_info.

--b.



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