Neil Brown | 1 Jul 2006 07:56
X-Face
Picon
Gravatar

Re: [PATCH] CONFIG_NFSD_TCP actually impacts clients

On Friday June 30, chucklever <at> gmail.com wrote:
> Hi Chris-
> 
> On 6/29/06, Chris Abbey <cablnx <at> us.ibm.com> wrote:
> > -config NFSD_TCP
> > -       bool "Provide NFS server over TCP support"
> > -       depends on NFSD
> > +config NFS_TCP
> > +       bool "Provide NFS services over TCP"
> 
> There's been plenty of user confusion in the past about server versus
> client TCP support, so I would prefer more precise wording here.  This
> new summary almost implies that the NFS client (not the lock manager)
> is affected too.  How about something more specific like:
> 
> "Provide NFS and NLM server over TCP support"
> 
> Also, the name of the config option might be confusing as well...
> "NFS_" is usually reserved for client-only.  I suggest NFSD_NLM_TCP.

Another option would be to throw the option away altogether and
default to always listen on TCP.  We have patches that are about
  ---->  <------
this far away from being sent to the next -mm which will make protocol
selectable by rpc.nfsd.
They don't affect what protocol lockd listens on, but that is a little
awkward to manage because lockd does work for both the client and the
server....

Maybe 'lockd_up' should take some sort of protocol flag and it should
(Continue reading)

Jeff Layton | 2 Jul 2006 17:11
Gravatar

Re: query about kernel 2.4.21-37.ELsmp

On Wed, 2006-06-07 at 21:24 -0700, mehta kiran wrote:
> Hi,
>     From where can i get information about all the
> bugs
>     which were there in redhat kernel 2.4.21-37.ELsmp
> ?
>     I want to know if there existed a bug which
>     did not allow unmounting of device which was once
>     nfs exported and accessed by clients
> 
> Thanks,
>  kiran

2.4.21-45.EL and greater (and hence U8) should have a fix for this
problem. See:

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=167636

for more info.

-- Jeff

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
NFS maillist  -  NFS <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs

(Continue reading)

Neil Brown | 3 Jul 2006 02:22
X-Face
Picon
Gravatar

nfs-utils 1.0.9-rc1 - hopefully -final in a week


Hi,
 I'd like to put out nfs-utils-1.0.9 by the end of the week.
There is (or will soon be) a -pre1 in
  http://www.kernel.org/pub/linux/utils/nfs/
and
  git://linux-nfs.org/nfs-utils

Recent changes can been seen at
   http://linux-nfs.org/cgi-bin/gitweb.cgi?p=nfs-utils;a=log

If anyone cares to do some testing that would be great.

If anyone has patches that are ready and that I haven't included, now
might be a good time to send them to me.

If they aren't quite ready, don't rush - I'd like to put out
releases a little more often than once per year (which is what it was
a for a while) so there will be another chance in a month or two or
three.

NeilBrown

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
NFS maillist  -  NFS <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
(Continue reading)

Greg Banks | 3 Jul 2006 05:32
Picon

[PATCH] SGI 954233: fix fencepost error in _shift_data_right_pages

G'day,

This fixes a panic doing the first READDIR or READDIRPLUS call when:

* the client is ia64 or any platform that actually implements
  flush_dcache_page(), and

* the server returns fsinfo.dtpref >= client's PAGE_SIZE, and

* the server does *not* return post-op attributes for the directory
  in the READDIR reply.

Signed-off-by: Greg Banks <gnb <at> melbourne.sgi.com>
---

 net/sunrpc/xdr.c |    6 ++++++
 1 files changed, 6 insertions(+)

Index: linux/net/sunrpc/xdr.c
===================================================================
--- linux.orig/net/sunrpc/xdr.c	2006-06-18 11:49:35.000000000 +1000
+++ linux/net/sunrpc/xdr.c	2006-06-30 20:40:38.043474230 +1000
 <at>  <at>  -188,6 +188,12  <at>  <at>  _shift_data_right_pages(struct page **pa
 	pgto_base &= ~PAGE_CACHE_MASK;
 	pgfrom_base &= ~PAGE_CACHE_MASK;

+	if (pgto_base == 0) {
+		/* don't flush *pgto, it points beyond valid page*'s */
+		pgto_base = PAGE_CACHE_SIZE;
+		pgto--;
(Continue reading)

NeilBrown | 3 Jul 2006 08:19
X-Face
Picon
Gravatar

[RFC PATCH 000 of 6] knfsd: change how sockets are assigned to nfsd and lockd

The following 6 patches are an RFC.  I'm not sending them to Andrew yet, but
plan to once the current merge window closes.

They allow fine control over what sockets nfsd listens on (userspace and
open a socket and pass the fd down - nfs-utils-1.0.9 will support this).
They allow course control over what sockets lockd listens on.
Lockd will only listen on a protocol that either:

 nfs is using for a mount
 nfsd is listening on
 a specific port was given as a module parameter.

Steve Dickson  <at>  redhat helped with/motivated some of this development.

Comments welcome.

Thanks,
NeilBrown

 [PATCH 001 of 6] knfsd: Add a callback for when last rpc thread finishes.
 [PATCH 002 of 6] knfsd: Be more selective in which sockets lockd listens on.
 [PATCH 003 of 6] knfsd: Remove nfsd_versbits as intermediate storage for desired versions.
 [PATCH 004 of 6] knfsd: Separate out some parts of nfsd_svc, which start nfs servers.
 [PATCH 005 of 6] knfsd: Define new nfsdfs file: portlist - contains list of ports.
 [PATCH 006 of 6] knfsd: Allow sockets to be passed to nfsd via 'portlist'

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
(Continue reading)

NeilBrown | 3 Jul 2006 08:19
X-Face
Picon
Gravatar

[PATCH 002 of 6] knfsd: Be more selective in which sockets lockd listens on.


Currently lockd listens on UDP always, and TCP if CONFIG_NFSD_TCP 
is set.

However as lockd performs services of the client as well, this is a
problem.  If CONFIG_NfSD_TCP is not set, and a tcp mount is used, the
server will not be able to call back to lockd.

So:
 - add an option to lockd_up saying which protocol is needed
 - Always open sockets for which an explicit port was given, otherwise
   only open a socket of the type required
 - Change nfsd to do one lockd_up per socket rather than one per thread.

This
 - removes the dependancy on CONFIG_NFSD_TCP
 - means that lockd may open sockets other than at startup
 - means that lockd will *not* listen on UDP if the only
   mounts are TCP mount (and nfsd hasn't started).

The latter is the only one that concerns me at all - I don't know if
this might be a problem with some servers.

Signed-off-by: Neil Brown <neilb <at> suse.de>

### Diffstat output
 ./fs/lockd/clntlock.c        |    2 -
 ./fs/lockd/svc.c             |   47 ++++++++++++++++++++++++++++++++++++-------
 ./fs/nfs/super.c             |    6 +++--
 ./fs/nfsd/nfssvc.c           |   16 +++++++++-----
(Continue reading)

NeilBrown | 3 Jul 2006 08:19
X-Face
Picon
Gravatar

[PATCH 001 of 6] knfsd: Add a callback for when last rpc thread finishes.


nfsd has some cleanup that it wants to do when the last thread
exits, and there will shortly be some more.
So collect this all into one place and define a callback for
an rpc service to call when the service is about to be destroyed.

Signed-off-by: Neil Brown <neilb <at> suse.de>

### Diffstat output
 ./fs/lockd/svc.c             |    2 +-
 ./fs/nfsd/nfssvc.c           |   39 +++++++++++++++++----------------------
 ./include/linux/sunrpc/svc.h |    8 +++++++-
 ./net/sunrpc/svc.c           |    7 ++++++-
 4 files changed, 31 insertions(+), 25 deletions(-)

diff .prev/fs/lockd/svc.c ./fs/lockd/svc.c
--- .prev/fs/lockd/svc.c	2006-07-03 12:23:23.000000000 +1000
+++ ./fs/lockd/svc.c	2006-07-03 12:19:59.000000000 +1000
 <at>  <at>  -236,7 +236,7  <at>  <at>  lockd_up(void)
 			"lockd_up: no pid, %d users??\n", nlmsvc_users);

 	error = -ENOMEM;
-	serv = svc_create(&nlmsvc_program, LOCKD_BUFSIZE);
+	serv = svc_create(&nlmsvc_program, LOCKD_BUFSIZE, NULL);
 	if (!serv) {
 		printk(KERN_WARNING "lockd_up: create service failed\n");
 		goto out;

diff .prev/fs/nfsd/nfssvc.c ./fs/nfsd/nfssvc.c
--- .prev/fs/nfsd/nfssvc.c	2006-07-03 12:23:23.000000000 +1000
(Continue reading)

NeilBrown | 3 Jul 2006 08:19
X-Face
Picon
Gravatar

[PATCH 004 of 6] knfsd: Separate out some parts of nfsd_svc, which start nfs servers.


Sparate out the code for creating a new service, and for creating
initial sockets.

Some of these new functions will have multiple callers soon.

Signed-off-by: Neil Brown <neilb <at> suse.de>

### Diffstat output
 ./fs/nfsd/nfssvc.c |   79 ++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 55 insertions(+), 24 deletions(-)

diff .prev/fs/nfsd/nfssvc.c ./fs/nfsd/nfssvc.c
--- .prev/fs/nfsd/nfssvc.c	2006-07-03 14:50:11.000000000 +1000
+++ ./fs/nfsd/nfssvc.c	2006-07-03 15:16:40.000000000 +1000
 <at>  <at>  -195,6 +195,52  <at>  <at>  void nfsd_reset_versions(void)
 	}
 }

+
+static inline int nfsd_create_serv(void)
+{
+	int err = 0;
+	lock_kernel();
+	if (nfsd_serv) {
+		nfsd_serv->sv_nrthreads++;
+		unlock_kernel();
+		return 0;
+	}
+
(Continue reading)

NeilBrown | 3 Jul 2006 08:19
X-Face
Picon
Gravatar

[PATCH 003 of 6] knfsd: Remove nfsd_versbits as intermediate storage for desired versions.


We have an array 'nfsd_version' which lists the available versions
of nfsd, and 'nfsd_versions' (poor choice there :-() which lists
the currently active versions.

Then we have a bitmap - nfsd_versbits which says which versions are
wanted.  The bits in this bitset cause content to be copied from
nfsd_version to nfsd_versions when nfsd starts.

This patch removes nfsd_versbits and moves information directly from
nfsd_version to nfsd_versions when requests for version changes arrive.

Note that this doesn't make it possible to change versions while the
server is running.  This is because serv->sv_xdrsize is calculated when
a service is created, and used then threads are created, and xdrsize
depends on the active versions.

Signed-off-by: Neil Brown <neilb <at> suse.de>

### Diffstat output
 ./fs/nfsd/nfsctl.c             |   18 +++----
 ./fs/nfsd/nfssvc.c             |   93 ++++++++++++++++++++++-------------------
 ./include/linux/nfsd/nfsd.h    |    4 +
 ./include/linux/nfsd/syscall.h |   17 -------
 4 files changed, 62 insertions(+), 70 deletions(-)

diff .prev/fs/nfsd/nfsctl.c ./fs/nfsd/nfsctl.c
--- .prev/fs/nfsd/nfsctl.c	2006-07-03 15:00:32.000000000 +1000
+++ ./fs/nfsd/nfsctl.c	2006-07-03 15:01:17.000000000 +1000
 <at>  <at>  -35,8 +35,6  <at>  <at> 
(Continue reading)

NeilBrown | 3 Jul 2006 08:19
X-Face
Picon
Gravatar

[PATCH 005 of 6] knfsd: Define new nfsdfs file: portlist - contains list of ports.


This file will list all ports that nfsd has open.
Default when TCP enabled will be
   ipv4 udp 0.0.0.0 2049
   ipv4 tcp 0.0.0.0 2049

Later, the list of ports will be settable.

'portlist' chosen rather than 'ports', to avoid unnecessary confusion with
non-mainline patches which created 'ports' with different semantics.

Signed-off-by: Neil Brown <neilb <at> suse.de>

### Diffstat output
 ./fs/nfsd/nfsctl.c               |   19 +++++++++++++++++++
 ./include/linux/sunrpc/svcsock.h |    1 +
 ./net/sunrpc/svcsock.c           |   37 +++++++++++++++++++++++++++++++++++++
 3 files changed, 57 insertions(+)

diff .prev/fs/nfsd/nfsctl.c ./fs/nfsd/nfsctl.c
--- .prev/fs/nfsd/nfsctl.c	2006-07-03 15:46:47.000000000 +1000
+++ ./fs/nfsd/nfsctl.c	2006-07-03 15:46:44.000000000 +1000
 <at>  <at>  -27,6 +27,7  <at>  <at> 
 #include <linux/nfs.h>
 #include <linux/nfsd_idmap.h>
 #include <linux/sunrpc/svc.h>
+#include <linux/sunrpc/svcsock.h>
 #include <linux/nfsd/nfsd.h>
 #include <linux/nfsd/cache.h>
 #include <linux/nfsd/xdr.h>
(Continue reading)


Gmane