All of lore.kernel.org
 help / color / mirror / Atom feed
From: Le Rouzic <aime.le-rouzic@bull.net>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: nfsv4@linux-nfs.org, nfs@lists.sourceforge.net
Subject: Re: linux-2.6.23-rc9-CITI_NFS4_ALL-1
Date: Tue, 09 Oct 2007 18:11:27 +0200	[thread overview]
Message-ID: <470BA82F.6090804@bull.net> (raw)
In-Reply-To: <1191943060.8739.9.camel@heimdal.trondhjem.org>

Trond Myklebust a =E9crit :

>On Mon, 2007-10-08 at 11:44 +0200, Le Rouzic wrote:
>  =

>
>>Hi,
>>
>>Running 2.6.23-rc9-CITI_NFS4_ALL-1 on two Intel X86_64 two ways machines =
as client and
>>server, the runtest (-b) of the basic commands of the connectathon suite =
gives
>>the following errors:
>>
>>./runtests -b -t /mnt/nosec1/test_nfs1_nfs4_gb
>>/test6: readdir
>>        ./test6: (/mnt/nosec1/test_nfs1_nfs4_gb) unlinked 'file.0' dir en=
try
>>read pass 1
>>        ./test6: (/mnt/nosec1/test_nfs1_nfs4_gb) Test failed with 1 errors
>>
>>
>>Bug has been registered at:
>>
>>Bug: =

>>  http://bugzilla.linux-nfs.org/show_bug.cgi?id=3D148  =

>>
>>Cheers
>>    =

>>
>
>I believe that applying the following 2 patches should fix this problem.
>
>Cheers
>  Trond
>  =

>
        Hi,

       They do . We can close the bug at least for this test.
      Cheers




>  =

>
>
> ------------------------------------------------------------------------
>
> Sujet:
> No Subject
> Exp=E9diteur:
> Trond Myklebust <Trond.Myklebust@netapp.com>
> Date:
> Mon, 8 Oct 2007 14:10:31 -0400
>
>
>nfs_post_op_update_inode() is really only meant to be used if we expect the
>inode and its attributes to have changed in some way.
>
>Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
>---
>
> fs/nfs/nfs3proc.c |    3 +--
> fs/nfs/nfs4proc.c |    5 ++---
> 2 files changed, 3 insertions(+), 5 deletions(-)
>
>diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c
>index 6e05f6c..4cdc236 100644
>--- a/fs/nfs/nfs3proc.c
>+++ b/fs/nfs/nfs3proc.c
>@@ -777,8 +777,7 @@ static int nfs3_commit_done(struct rpc_task *task, str=
uct nfs_write_data *data)
> {
> 	if (nfs3_async_handle_jukebox(task, data->inode))
> 		return -EAGAIN;
>-	if (task->tk_status >=3D 0)
>-		nfs_post_op_update_inode(data->inode, data->res.fattr);
>+	nfs_refresh_inode(data->inode, data->res.fattr);
> 	return 0;
> }
> =

>diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
>index 52af5a7..30d5dd5 100644
>--- a/fs/nfs/nfs4proc.c
>+++ b/fs/nfs/nfs4proc.c
>@@ -2475,8 +2475,7 @@ static int nfs4_commit_done(struct rpc_task *task, s=
truct nfs_write_data *data)
> 		rpc_restart_call(task);
> 		return -EAGAIN;
> 	}
>-	if (task->tk_status >=3D 0)
>-		nfs_post_op_update_inode(inode, data->res.fattr);
>+	nfs_refresh_inode(inode, data->res.fattr);
> 	return 0;
> }
> =

>@@ -3046,7 +3045,7 @@ static int _nfs4_proc_delegreturn(struct inode *inod=
e, struct rpc_cred *cred, co
> 	if (status =3D=3D 0) {
> 		status =3D data->rpc_status;
> 		if (status =3D=3D 0)
>-			nfs_post_op_update_inode(inode, &data->fattr);
>+			nfs_refresh_inode(inode, &data->fattr);
> 	}
> 	rpc_put_task(task);
> 	return status;
>  =

>
>
> ------------------------------------------------------------------------
>
> Sujet:
> No Subject
> Exp=E9diteur:
> Trond Myklebust <Trond.Myklebust@netapp.com>
> Date:
> Mon, 8 Oct 2007 09:24:22 -0400
>
>
>We're failing basic test6 against Linux servers because they lack a correct
>change attribute. The fix is to assume that we always want to invalidate
>the readdir caches when we call update_changeattr and/or
>nfs_post_op_update_inode on a directory.
>
>Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
>---
>
> fs/nfs/inode.c    |   10 +++++++++-
> fs/nfs/nfs4proc.c |   10 ++++------
> 2 files changed, 13 insertions(+), 7 deletions(-)
>
>diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
>index 4693879..c44cd02 100644
>--- a/fs/nfs/inode.c
>+++ b/fs/nfs/inode.c
>@@ -876,11 +876,19 @@ int nfs_post_op_update_inode(struct inode *inode, st=
ruct nfs_fattr *fattr)
> {
> 	struct nfs_inode *nfsi =3D NFS_I(inode);
> =

>-	if (fattr->valid & NFS_ATTR_FATTR)
>+	if (fattr->valid & NFS_ATTR_FATTR) {
>+		if (S_ISDIR(inode->i_mode)) {
>+			spin_lock(&inode->i_lock);
>+			nfsi->cache_validity |=3D NFS_INO_INVALID_DATA;
>+			spin_unlock(&inode->i_lock);
>+		}
> 		return nfs_refresh_inode(inode, fattr);
>+	}
> =

> 	spin_lock(&inode->i_lock);
> 	nfsi->cache_validity |=3D NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ATTR|NF=
S_INO_REVAL_PAGECACHE;
>+	if (S_ISDIR(inode->i_mode))
>+		nfsi->cache_validity |=3D NFS_INO_INVALID_DATA;
> 	spin_unlock(&inode->i_lock);
> 	return 0;
> }
>diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
>index 30d5dd5..cb99fd9 100644
>--- a/fs/nfs/nfs4proc.c
>+++ b/fs/nfs/nfs4proc.c
>@@ -208,12 +208,10 @@ static void update_changeattr(struct inode *dir, str=
uct nfs4_change_info *cinfo)
> 	struct nfs_inode *nfsi =3D NFS_I(dir);
> =

> 	spin_lock(&dir->i_lock);
>-	if (cinfo->after !=3D nfsi->change_attr) {
>-		nfsi->cache_validity |=3D NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE|=
NFS_INO_INVALID_DATA;
>-		if (!cinfo->atomic || cinfo->before !=3D nfsi->change_attr)
>-			nfsi->cache_change_attribute =3D jiffies;
>-		nfsi->change_attr =3D cinfo->after;
>-	}
>+	nfsi->cache_validity |=3D NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE|N=
FS_INO_INVALID_DATA;
>+	if (!cinfo->atomic || cinfo->before !=3D nfsi->change_attr)
>+		nfsi->cache_change_attribute =3D jiffies;
>+	nfsi->change_attr =3D cinfo->after;
> 	spin_unlock(&dir->i_lock);
> }
> =

>  =

>


-- =

-----------------------------------------------------------------
Company : Bull, Architect of an Open World TM (www.bull.com)
Name    : Aime Le Rouzic =

Mail    : Bull - BP 208 - 38432 Echirolles Cedex - France
E-Mail  : aime.le-rouzic@bull.net
Phone   : 33 (4) 76.29.75.51
Fax     : 33 (4) 76.29.75.18
----------------------------------------------------------------- =

      parent reply	other threads:[~2007-10-09 16:11 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-05 15:21 linux-2.6.23-rc9-CITI_NFS4_ALL-1 J. Bruce Fields
2007-10-08  9:44 ` linux-2.6.23-rc9-CITI_NFS4_ALL-1 Le Rouzic
2007-10-09 15:17   ` linux-2.6.23-rc9-CITI_NFS4_ALL-1 Trond Myklebust
2007-10-09 15:24     ` linux-2.6.23-rc9-CITI_NFS4_ALL-1 J. Bruce Fields
2007-10-09 16:11     ` Le Rouzic [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=470BA82F.6090804@bull.net \
    --to=aime.le-rouzic@bull.net \
    --cc=nfs@lists.sourceforge.net \
    --cc=nfsv4@linux-nfs.org \
    --cc=trond.myklebust@fys.uio.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.