From: Benny Halevy <bhalevy@tonian.com>
To: Boaz Harrosh <bharrosh@panasas.com>
Cc: Benny Halevy <benny@tonian.com>,
Trond Myklebust <Trond.Myklebust@netapp.com>,
Fred Isaman <iisaman@netapp.com>,
NFS list <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH] SQUASHME: pnfsd: Don't call fs_layout_return on a none-file
Date: Mon, 14 Nov 2011 13:14:57 +0200 [thread overview]
Message-ID: <4EC0F831.2060200@tonian.com> (raw)
In-Reply-To: <4EBC5538.7010002@panasas.com>
On 2011-11-11 00:50, Boaz Harrosh wrote:
>
> If we had a layout on the file the nfs4_file would be referenced and we should
> have found it. Since we don't then it means all layouts where ROC and at this
> point we returned all of them on file close.
>
> So why does the Linux wonderful forgetfull client returnes it's ROC layouts on
> inode evict() (I hit this on umount at client). Actually this is on me, because
> it is a bug in Generic client code, but can only manifest with pnf-obj after an
> IO error.
>
> Sign-off-by: Boaz Harrosh
> ---
> fs/nfsd/nfs4pnfsd.c | 13 ++++++++++++-
> 1 files changed, 12 insertions(+), 1 deletions(-)
>
> diff --git a/fs/nfsd/nfs4pnfsd.c b/fs/nfsd/nfs4pnfsd.c
> index f30fa65..eb4a044 100644
> --- a/fs/nfsd/nfs4pnfsd.c
> +++ b/fs/nfsd/nfs4pnfsd.c
> @@ -1109,7 +1109,15 @@ int nfs4_pnfs_return_layout(struct super_block *sb, struct svc_fh *current_fh,
> printk(KERN_ERR "%s: RETURN_FILE: no nfs4_file for "
> "ino %p:%lu\n",
> __func__, ino, ino ? ino->i_ino : 0L);
> - goto out;
> + /* If we had a layout on the file the nfs4_file would
> + * be referenced and we should have found it. Since we
> + * don't then it means all layouts where ROC and at this
I'll s/where/were/
> + * point we returned all of them on file close.
> + * TODO:
> + * Benny this is what Bruce calls a client spam, we might
> + * want to degrade the print level to dprintk.
Agreed, if this case is not an exception no need to shout about it.
I'll make this change.
Benny
> + */
> + goto out_no_fs_call;
> }
>
> /* Check the stateid */
> @@ -1163,6 +1173,7 @@ out:
> /* call exported filesystem layout_return (ignore return-code) */
> fs_layout_return(sb, ino, lrp, 0, recall_cookie);
>
> +out_no_fs_call:
> dprintk("pNFS %s: exit status %d \n", __func__, status);
> return status;
> }
prev parent reply other threads:[~2011-11-14 11:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-10 22:50 [PATCH] SQUASHME: pnfsd: Don't call fs_layout_return on a none-file Boaz Harrosh
2011-11-11 2:07 ` Trond Myklebust
2011-11-11 20:09 ` Boaz Harrosh
2011-11-14 11:14 ` Benny Halevy [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=4EC0F831.2060200@tonian.com \
--to=bhalevy@tonian.com \
--cc=Trond.Myklebust@netapp.com \
--cc=benny@tonian.com \
--cc=bharrosh@panasas.com \
--cc=iisaman@netapp.com \
--cc=linux-nfs@vger.kernel.org \
/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.