All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH kNFSd 0 of 23] Introduction
@ 2004-12-17  5:23 NeilBrown
  2004-12-17  5:23 ` [PATCH kNFSd 1 of 23] Move nfserr_openmode checking from nfsd_read/write into nfs4_preprocess_stateid_op() in preperation for delegation state NeilBrown
                   ` (22 more replies)
  0 siblings, 23 replies; 29+ messages in thread
From: NeilBrown @ 2004-12-17  5:23 UTC (permalink / raw)
  To: Andrew Morton; +Cc: nfs

Following are 23 patches that provide "delegation" support in the 
NFSv4 server.

"Delegation" is when the client opens a file and the server says "Ok, 
that file is all yours for a while.  No-one else will touch it without
me first telling you about it".  This requires the server to be able to 
make call-backs to the client to "reclaim" a delegation when someone 
else wants access to the file.

These are certainly not needed for 2.6.10.

NeilBrown


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
NFS maillist  -  NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs

^ permalink raw reply	[flat|nested] 29+ messages in thread
* RE: [PATCH kNFSd 4 of 23] Preparation for delegation: client callback probe
@ 2004-12-21 16:12 Lever, Charles
  2004-12-21 16:48 ` Mike Waychison
  0 siblings, 1 reply; 29+ messages in thread
From: Lever, Charles @ 2004-12-21 16:12 UTC (permalink / raw)
  To: Mike Waychison, William A.(Andy) Adamson; +Cc: NeilBrown, Andrew Morton, nfs

mike-

the latest client side transport switch patches are here:

  http://troy.citi.umich.edu/~cel/linux-2.6/2.6.9-a/release-notes.html

for your review.  i don't think these are going in any time soon.

we need some time to consider the port number issues.  can the patch
with the borg designation 4 of 23 go in without the port number change
you suggested?


> -----Original Message-----
> From: Mike Waychison [mailto:Michael.Waychison@Sun.COM]=20
> Sent: Tuesday, December 21, 2004 10:56 AM
> To: William A.(Andy) Adamson
> Cc: NeilBrown; Andrew Morton; nfs@lists.sourceforge.net
> Subject: Re: [NFS] [PATCH kNFSd 4 of 23] Preparation for=20
> delegation: client callback probe
>=20
>=20
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>=20
> William A.(Andy) Adamson wrote:
> > the NFSv4.0 callback client and server do not use reserved=20
> ports. this=20
> > makes
> > the use of delegations through firewalls or to a NAT=20
> network fail.  this is=20
> > fixed in the proposed NFSv4.1 minor version 'sessions'=20
> feature which allows=20
> > for the use of the NFSv4 reserved port 2049 for callbacks.
> >=20
>=20
> Hmm, in that case, we might want to modify the=20
> xprt_create_proto call somehow to reflect that we don't need=20
> a port < XPRT_MAX_RESVPORT(800), which would limit the number=20
> of clients possible.
>=20
> I'd patch something up, but I'm not sure where that stands=20
> with the transport switch work.
>=20
> > -->Andy
> >=20
> >=20
> > NeilBrown wrote:
> >=20
> >>client callback rpc to probe the callback
> >>channel on setclientid with a null request.
> >=20
> >=20
> > ...
> >=20
> >=20
> >>+/*
> >>+ * Set up the callback client and put a NFSPROC4_CB_NULL on the=20
> >>+wire...  */ void
> >>+nfsd4_probe_callback(struct nfs4_client *clp)
> >>+{
> >>+	struct sockaddr_in	addr;
> >>+	struct nfs4_callback    *cb =3D &clp->cl_callback;
> >>+	struct rpc_timeout	timeparms;
> >>+	struct rpc_xprt *	xprt;
> >>+	struct rpc_program *	program =3D &cb->cb_program;
> >>+	struct rpc_stat *	stat =3D &cb->cb_stat;
> >>+	struct rpc_clnt *	clnt;
> >>+	struct rpc_message msg =3D {
> >>+		.rpc_proc       =3D=20
> &nfs4_cb_procedures[NFSPROC4_CLNT_CB_NULL],
> >>+		.rpc_argp       =3D clp,
> >>+	};
> >>+	char                    hostname[32];
> >>+	int status;
> >>+
> >>+	dprintk("NFSD: probe_callback. cb_parsed %d cb_set %d\n",
> >>+			cb->cb_parsed, atomic_read(&cb->cb_set));
> >>+	if (!cb->cb_parsed || atomic_read(&cb->cb_set))
> >>+		return;
> >>+
> >>+	/* Initialize address */
> >>+	memset(&addr, 0, sizeof(addr));
> >>+	addr.sin_family =3D AF_INET;
> >>+	addr.sin_port =3D htons(cb->cb_port);
> >>+	addr.sin_addr.s_addr =3D htonl(cb->cb_addr);
> >>+
> >>+	/* Initialize timeout */
> >>+	timeparms.to_initval =3D (NFSD_LEASE_TIME/4) * HZ;
> >>+	timeparms.to_retries =3D 5;
> >>+	timeparms.to_maxval =3D (NFSD_LEASE_TIME/2) * HZ;
> >>+	timeparms.to_exponential =3D 1;
> >>+
> >>+	/* Create RPC transport */
> >>+	if (!(xprt =3D xprt_create_proto(IPPROTO_TCP, &addr,=20
> &timeparms))) {
> >>+		dprintk("NFSD: couldn't create callback transport!\n");
> >>+		goto out_err;
> >>+	}
> >>+
> >>+	/* Initialize rpc_program */
> >>+	program->name =3D "nfs4_cb";
> >>+	program->number =3D cb->cb_prog;
> >>+	program->nrvers =3D=20
> sizeof(nfs_cb_version)/sizeof(nfs_cb_version[0]);
> >>+	program->version =3D nfs_cb_version;
> >>+	program->stats =3D stat;
> >>+
> >>+	/* Initialize rpc_stat */
> >>+	memset(stat, 0, sizeof(struct rpc_stat));
> >>+	stat->program =3D program;
> >>+
> >>+	/* Create RPC client
> >>+ 	 *
> >>+	 * XXX AUTH_UNIX only - need AUTH_GSS....
> >>+	 */
> >>+	sprintf(hostname, "%u.%u.%u.%u", NIPQUAD(addr.sin_addr.s_addr));
> >>+	if (!(clnt =3D rpc_create_client(xprt, hostname, program,=20
> 1, RPC_AUTH_UNIX))) {
> >>+		dprintk("NFSD: couldn't create callback client\n");
> >>+		goto out_xprt;
> >>+	}
> >=20
> > Out of curiosity, does this have to be a reserved port?
> >=20
> > --
> > Mike Waychison
> > Sun Microsystems, Inc.
> > 1 (650) 352-5299 voice
> > 1 (416) 202-8336 voice
> >=20
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > NOTICE:  The opinions expressed in this email are held by=20
> me, and may=20
> > not represent the views of Sun Microsystems, Inc.=20
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>=20
> - -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from=20
> real users. Discover which products truly live up to the=20
> hype. Start reading now. http://productguide.itmanagersjournal.com/
> _______________________________________________
> NFS maillist  -  NFS@lists.sourceforge.net=20
> https://lists.sourceforge.net/lists/listinfo/nfs
>=20
>=20
>=20
>=20
>=20
>=20
> > -------------------------------------------------------
> > SF email is sponsored by - The IT Product Guide
> > Read honest & candid reviews on hundreds of IT Products from real=20
> > users. Discover which products truly live up to the hype. Start=20
> > reading now. http://productguide.itmanagersjournal.com/
> > _______________________________________________
> > NFS maillist  -  NFS@lists.sourceforge.net=20
> > https://lists.sourceforge.net/lists/listinfo/nfs
>=20
>=20
> - --
> Mike Waychison
> Sun Microsystems, Inc.
> 1 (650) 352-5299 voice
> 1 (416) 202-8336 voice
>=20
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> NOTICE:  The opinions expressed in this email are held by me,=20
> and may not represent the views of Sun Microsystems, Inc.=20
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.5 (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
>=20
> iD8DBQFByEesdQs4kOxk3/MRAsV8AJ0eCtRfyWJDnVcy4k69SUcAY9k+iACfSG8G
> Yk40NgRI+AYl95FIawFi0kY=3D
> =3D+6b9
> -----END PGP SIGNATURE-----
>=20
>=20
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from=20
> real users. Discover which products truly live up to the=20
> hype. Start reading now.=20
> http://productguide.itmanagersjournal.com/
> _______________________________________________
> NFS maillist  -  NFS@lists.sourceforge.net=20
> https://lists.sourceforge.net/lists/listinfo/n> fs
>=20


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
NFS maillist  -  NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2004-12-21 16:48 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-12-17  5:23 [PATCH kNFSd 0 of 23] Introduction NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 1 of 23] Move nfserr_openmode checking from nfsd_read/write into nfs4_preprocess_stateid_op() in preperation for delegation state NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 5 of 23] Probe the callback path upon a successful setclientid_confirm NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 2 of 23] Check the callback netid in gen_callback NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 3 of 23] Count the nfs4_client structure usage NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 4 of 23] Preparation for delegation: client callback probe NeilBrown
2004-12-17  6:45   ` Mike Waychison
2004-12-17 19:01     ` William A.(Andy) Adamson
2004-12-21 15:56       ` Mike Waychison
2004-12-17  5:23 ` [PATCH kNFSd 7 of 23] Get rid of the special delegation_stateid_t, use the existing stateid_t NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 6 of 23] Check for existence of file_lock parameter inside of the kernel lock NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 9 of 23] Allocate and initialize the delegation structure NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 16 of 23] Helper functions for deciding to grant a delegation NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 15 of 23] Kernel thread for delegation callback NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 14 of 23] Delegation recall callback rpc NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 17 of 23] Attempt to hand out a delegation NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 10 of 23] Find a delegation for a file given a stateid NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 8 of 23] Add structures for delegation support NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 18 of 23] Remove unnecessary stateowner existence check NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 11 of 23] Add the delegation release and free functions NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 12 of 23] Changes to expire_client NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 13 of 23] Delay nfsd_colse for delegations until reaping NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 22 of 23] Add to the laundromat service for delegations NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 19 of 23] Check for openmode violations given a delegation stateid NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 21 of 23] Add the DELEGRETURN operation NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 23 of 23] Clear the recall_lru of delegations at shutdown NeilBrown
2004-12-17  5:23 ` [PATCH kNFSd 20 of 23] Add checking of delegation stateids to nfs4_preprocess_stateid_op NeilBrown
  -- strict thread matches above, loose matches on Subject: below --
2004-12-21 16:12 [PATCH kNFSd 4 of 23] Preparation for delegation: client callback probe Lever, Charles
2004-12-21 16:48 ` Mike Waychison

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.