Trond Myklebust | 2 Jan 2008 19:55
Picon
Picon

Re: [NFS] lockdep warnings in nfs4 (v2.6.24-rc6-125-g5356f66)


On Mon, 2007-12-24 at 15:40 -0500, Erez Zadok wrote:
> My setup: ext2 partition, exported to localhost; nfs4 mounted on localhost;
> unionfs mounted on top of nfs4 mount.  Issuing assorted regression tests via
> the union.  Kernel compiled with lockdep.  Four of my tests (rmdir, readdir,
> rename, and rename with whiteouts), trigger the same lockdep warning when
> unmounting nfs4.  It doesn't happen when unionfs is mounted on top of
> anything else, including nfs2 and nfs3.
> 
> I've not tried to reproduce it w/o unionfs, but the lockdep warning below
> appears to be unrelated to unionfs.  If you'd like me to try and reproduce
> it w/o unionfs, let me know.
> 
> Cheers,
> Erez.

The following patch should fix it.

Cheers
  Trond
Picon
From: Trond Myklebust <Trond.Myklebust@...>
Subject: No Subject
Date: 2008-01-02 18:52:03 GMT
(Continue reading)

Trond Myklebust | 2 Jan 2008 20:04
Picon
Picon

Re: [PATCH] NFS: add newline to kernel warning message in auth_gss code


On Wed, 2007-12-26 at 11:20 +1100, James Morris wrote:
> Add newline to kernel warning message in gss_create().
> 
> Signed-off-by: James Morris <jmorris@...>
> ---
>  net/sunrpc/auth_gss/auth_gss.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
> index a6e57d1..1f2d85e 100644
> --- a/net/sunrpc/auth_gss/auth_gss.c
> +++ b/net/sunrpc/auth_gss/auth_gss.c
>  <at>  <at>  -625,7 +625,7  <at>  <at>  gss_create(struct rpc_clnt *clnt, rpc_authflavor_t flavor)
>  	err = -EINVAL;
>  	gss_auth->mech = gss_mech_get_by_pseudoflavor(flavor);
>  	if (!gss_auth->mech) {
> -		printk(KERN_WARNING "%s: Pseudoflavor %d not found!",
> +		printk(KERN_WARNING "%s: Pseudoflavor %d not found!\n",
>  				__FUNCTION__, flavor);
>  		goto err_free;
>  	}

Thanks James! Applied...

Trond

-
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@...
(Continue reading)

Trond Myklebust | 3 Jan 2008 04:03
Picon

[GIT] More NFS client fixes for 2.6.24-rc6

Hi Linus,

Please pull from the repository at

   git pull git://git.linux-nfs.org/pub/linux/nfs-2.6.git

This will update the following files through the appended changesets.

  Cheers,
    Trond

----
 fs/nfs/nfs4proc.c              |   34 ++++++++++++++++++++--------------
 fs/nfs/nfs4renewd.c            |    2 --
 fs/nfs/super.c                 |   12 +++++++++++-
 net/sunrpc/auth_gss/auth_gss.c |    2 +-
 4 files changed, 32 insertions(+), 18 deletions(-)

commit 361562e89f02db8fdca32a2dfc546a74f5d883d9
Author: Trond Myklebust <Trond.Myklebust@...>
Date:   Wed Jan 2 16:27:16 2008 -0500

    NFSv4: Fix open_to_lock_owner sequenceid allocation...

    NFSv4 file locking is currently completely broken since it doesn't respect
    the OPEN sequencing when it is given an unconfirmed lock_owner and needs to
    do an open_to_lock_owner. Worse: it breaks the sunrpc rules by doing a
    GFP_KERNEL allocation inside an rpciod callback.

    Fix is to preallocate the open seqid structure in nfs4_alloc_lockdata if we
(Continue reading)

Ingo Molnar | 3 Jan 2008 10:30
Picon
Picon
Favicon

Re: [GIT] More NFS client fixes for 2.6.24-rc6


* Trond Myklebust <Trond.Myklebust@...> wrote:

> commit 53478daff2c8b494d2af1ede6611f166f81bc393
> Author: Trond Myklebust <Trond.Myklebust@...>
> Date:   Wed Jan 2 13:28:57 2008 -0500
> 
>     NFS: Fix a possible Oops in fs/nfs/super.c
>     
>     Sigh... commit 4584f520e1f773082ef44ff4f8969a5d992b16ec (NFS: Fix NFS
>     mountpoint crossing...) had a slight flaw: server can be NULL if sget()
>     returned an existing superblock.
>     
>     Fix the fix by dereferencing s->s_fs_info.
>     
>     Also add in the same namespace Oops fix for NFSv4 in both the mountpoint
>     crossing case, and the referral case.
>     
>     Signed-off-by: Trond Myklebust <Trond.Myklebust@...>

shouldnt this commit have included the full credit of the bugfix:

  http://bugzilla.kernel.org/show_bug.cgi?id=9647

  ------------>
  Description From Adrian Bunk 2007-12-27 12:36

  The Coverity checker spotted that commit
  4584f520e1f773082ef44ff4f8969a5d992b16ec introduced the following NULL
  dereference in 2.6.24-rc6:
(Continue reading)

Jeff Garzik | 3 Jan 2008 13:16
Favicon

A new NFSv4 server...

In case some developers are interested...  I'm poking at a from-scratch 
userland NFSv4 server, as a side project.

In my personal opinion, version 4 of NFS is a quantum-leap improvement 
over previous versions.  While I used NFS v3 extensively, I always felt 
it was a crappy protocol, and unworthy of serious development effort. 
That changed with v4.

I chose to use NFSv4 as the basis for experiments (hopefully yielding 
production software) that I've long wanted to do in reliable 
filesystems, distributed filesystems, and other fun areas.

In the first step down this long path, I've created an NFSv4 userland 
server from scratch.  Currently it merely serves data straight from RAM, 
but the long term goal is to permit modular storage backends.  Thus you 
could implement a simple RAM backend, an sqlite-based backend or a 
complex distributed storage backend.

As this is a first-mention developer-only announcement, I didn't bother 
to create source tarballs.  Here is the git repo:
	git://git.kernel.org/pub/scm/daemon/nfs/nfs4-ram.git

This is the home page, but it's mainly a stub pointing to the git repo:
	http://linux.yyz.us/projects/nfsv4.html

The server will
* serve data from RAM, with NFSv4 persistent filehandles and FILE_SYNC4
* destroy all data, when the process exits
* pass 97% of the useful pynfs tests (cvs latest)
* pass fsx-linux stress testing, with Linux NFSv4 client (2.6.recent)
(Continue reading)

Trond Myklebust | 3 Jan 2008 15:45
Picon

Re: [GIT] More NFS client fixes for 2.6.24-rc6


On Thu, 2008-01-03 at 10:30 +0100, Ingo Molnar wrote:
> * Trond Myklebust <Trond.Myklebust@...> wrote:
> 
> > commit 53478daff2c8b494d2af1ede6611f166f81bc393
> > Author: Trond Myklebust <Trond.Myklebust@...>
> > Date:   Wed Jan 2 13:28:57 2008 -0500
> > 
> >     NFS: Fix a possible Oops in fs/nfs/super.c
> >     
> >     Sigh... commit 4584f520e1f773082ef44ff4f8969a5d992b16ec (NFS: Fix NFS
> >     mountpoint crossing...) had a slight flaw: server can be NULL if sget()
> >     returned an existing superblock.
> >     
> >     Fix the fix by dereferencing s->s_fs_info.
> >     
> >     Also add in the same namespace Oops fix for NFSv4 in both the mountpoint
> >     crossing case, and the referral case.
> >     
> >     Signed-off-by: Trond Myklebust <Trond.Myklebust@...>
> 
> shouldnt this commit have included the full credit of the bugfix:
> 
>   http://bugzilla.kernel.org/show_bug.cgi?id=9647
> 
>   ------------>
>   Description From Adrian Bunk 2007-12-27 12:36
> 
>   The Coverity checker spotted that commit
>   4584f520e1f773082ef44ff4f8969a5d992b16ec introduced the following NULL
(Continue reading)

J. Bruce Fields | 3 Jan 2008 17:32

Re: A new NFSv4 server...

On Thu, Jan 03, 2008 at 07:16:49AM -0500, Jeff Garzik wrote:
> At this point, I'm quite interested to hear feedback on how the server 
> works with other NFSv4 clients.

Any possibility of making Connectathon in May?:

	http://www.connectathon.org/

The major NFSv4 implementors normally have their clients there, so it's
usually the quickest way to find and solve any interoperability
problems.  Almost all the work will probably be on sessions and pNFS,
but people should be willing to do basic 4.0 testing too.

Glad to hear you're still working on this--it sounds interesting.

--b.
Adrian Bunk | 3 Jan 2008 19:20

Re: [GIT] More NFS client fixes for 2.6.24-rc6

On Thu, Jan 03, 2008 at 09:45:57AM -0500, Trond Myklebust wrote:
>...
>     Thanks to Coverity/Adrian Bunk and Frank Filz for spotting the bug.
>...

I don't mind whether I'm credited (and the text can stay as it is), but 
I just want to note that I neither am nor was in any way affiliated with 
the Coverity people.

> Cheers
>   Trond

cu
Adrian

--

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

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

J. Bruce Fields | 3 Jan 2008 20:00

Re: [RFC,PATCH 12/38] svc: Add a generic transport svc_create_xprt function

On Fri, Dec 21, 2007 at 12:18:37PM -0600, Tom Tucker wrote:
> 
> On Fri, 2007-12-14 at 18:05 -0500, J. Bruce Fields wrote:
> > On Thu, Nov 29, 2007 at 04:56:03PM -0600, Tom Tucker wrote:
> > > --- a/net/sunrpc/svc_xprt.c
> > > +++ b/net/sunrpc/svc_xprt.c
> > >  <at>  <at>  -93,3 +93,40  <at>  <at>  void svc_xprt_init(struct svc_xprt_class *xcl, struct svc_xprt *xprt)
> > >  	xprt->xpt_ops = xcl->xcl_ops;
> > >  }
> > >  EXPORT_SYMBOL_GPL(svc_xprt_init);
> > > +
> > > +int svc_create_xprt(struct svc_serv *serv, char *xprt_name, unsigned short port,
> > > +		    int flags)
> > > +{
> > > +	struct svc_xprt_class *xcl;
> > > +	int ret = -ENOENT;
> > > +	struct sockaddr_in sin = {
> > > +		.sin_family		= AF_INET,
> > > +		.sin_addr.s_addr	= INADDR_ANY,
> > > +		.sin_port		= htons(port),
> > > +	};
> > > +	dprintk("svc: creating transport %s[%d]\n", xprt_name, port);
> > > +	spin_lock(&svc_xprt_class_lock);
> > > +	list_for_each_entry(xcl, &svc_xprt_class_list, xcl_list) {
> > > +		if (strcmp(xprt_name, xcl->xcl_name) == 0) {
> > > +			spin_unlock(&svc_xprt_class_lock);
> > > +			if (try_module_get(xcl->xcl_owner)) {
> > 
> > 
> > Hm.  I wonder if this is right.  Don't you need to do the try_module_get
(Continue reading)

J. Bruce Fields | 3 Jan 2008 22:13

Re: [PATCH 37/38] knfsd: Support adding transports by writing portlist file

On Fri, Dec 21, 2007 at 11:52:30AM -0600, Tom Tucker wrote:
> 
> On Fri, 2007-12-14 at 18:51 -0500, J. Bruce Fields wrote:
> > On Tue, Dec 11, 2007 at 05:33:16PM -0600, Tom Tucker wrote:
> > > 
> > > Update the write handler for the portlist file to allow creating new
> > > listening endpoints on a transport. The general form of the string is:
> > > 
> > > <transport_name><space><port number>
> > > 
> > > For example:
> > > 
> > > echo "tcp 2049" > /proc/fs/nfsd/portlist
> > > 
> > > This is intended to support the creation of a listening endpoint for
> > > RDMA transports without adding #ifdef code to the nfssvc.c file.
> > > 
> > > Transports can also be removed as follows:
> > > 
> > > '-'<transport_name><space><port number>
> > > 
> > > For example:
> > > 
> > > echo "-tcp 2049" > /proc/fs/nfsd/portlist
> > > 
> > > Attempting to add a listener with an invalid transport string results
> > > in EPROTONOSUPPORT and a perror string of "Protocol not supported". 
> > > 
> > > Attempting to remove an non-existent listener (.e.g. bad proto or port)
> > > results in ENOTCONN and a perror string of 
(Continue reading)


Gmane