Benny Halevy | 1 Jun 05:38 2010

Re: [pnfs] pnfs code structure

On May. 28, 2010, 5:55 +0300, quanli gui <gqlxj1987@...> wrote:
> the replication policy for the pnfs is that we want add some replication
> to the pnfs, to improve the performance of the pnfs, which is mentioned
> in the pnfs white-paper.

OK.  For that, multiple copies of the data should be maintained.
The way to do it is different for each layout type.

Benny

> 
> 2010/5/28 Benny Halevy <bhalevy@... <mailto:bhalevy@...>>
> 
>     Hi,
> 
>     [please note that the old pnfs@...
>     <mailto:pnfs@...> mailing list is deprecated
>     and we moved our pnfs discussions to linux-nfs@...
>     <mailto:linux-nfs@...>]
> 
>     I have very rough and informal design notes I took not too long ago:
>     http://linux-nfs.org/pipermail/pnfs/attachments/20100304/f90bede4/attachment.txt
> 
>     That said, I hope the code is clear enough to browse and get what it
>     does.
> 
>     What do you mean by "replication policy for the pnfs"?
> 
>     Benny
> 
(Continue reading)

Benny Halevy | 1 Jun 06:36 2010

Re: [PATCH 1/2] pnfsd: make /proc/fs/nfsd/pnfs_dlm_device report dlm device list.

merged to pnfsd-files

Thanks!

Benny

On May. 28, 2010, 20:15 +0300, "J. Bruce Fields" <bfields@...> wrote:
> From: Eric Anderle <eanderle@...>
> 
> The ability to read the current device list is useful for debugging.
> 
> Signed-off-by: J. Bruce Fields <bfields@...>
> ---
>  fs/nfsd/nfs4pnfsdlm.c            |   25 +++++++++++++++++++++++++
>  fs/nfsd/nfsctl.c                 |    4 +++-
>  include/linux/nfsd/nfs4pnfsdlm.h |    2 ++
>  3 files changed, 30 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/nfsd/nfs4pnfsdlm.c b/fs/nfsd/nfs4pnfsdlm.c
> index 0cc295c..0351d71 100644
> --- a/fs/nfsd/nfs4pnfsdlm.c
> +++ b/fs/nfsd/nfs4pnfsdlm.c
>  <at>  <at>  -62,6 +62,31  <at>  <at>  nfsd4_find_pnfs_dlm_device(char *disk_name)
>  	return NULL;
>  }
>  
> +ssize_t
> +nfsd4_get_pnfs_dlm_device_list(char *buf, ssize_t buflen)
> +{
> +	char *pos = buf;
(Continue reading)

Benny Halevy | 1 Jun 06:36 2010

Re: [PATCH 2/2] pnfsd: fix test in nfsd4_find_pnfs_dlm_device

merged to pnfsd-files and pnfs-all-2.6.33

Thanks!

Benny

On May. 28, 2010, 20:15 +0300, "J. Bruce Fields" <bfields@...> wrote:
> From: Eric Anderle <eanderle@...>
> 
> This test is obviously backwards.  Noticed because pnfs_dlm_device was
> allowing us to re-add the same disk multiple times.
> 
> Signed-off-by: J. Bruce Fields <bfields@...>
> ---
>  fs/nfsd/nfs4pnfsdlm.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/nfsd/nfs4pnfsdlm.c b/fs/nfsd/nfs4pnfsdlm.c
> index 0351d71..1cf1b69 100644
> --- a/fs/nfsd/nfs4pnfsdlm.c
> +++ b/fs/nfsd/nfs4pnfsdlm.c
>  <at>  <at>  -53,7 +53,7  <at>  <at>  nfsd4_find_pnfs_dlm_device(char *disk_name)
>  
>  	spin_lock(&dlm_device_list_lock);
>  	list_for_each_entry(dlm_pdev, &dlm_device_list, dlm_dev_list) {
> -		if (memcmp(dlm_pdev->disk_name, disk_name, strlen(disk_name))) {
> +		if (!memcmp(dlm_pdev->disk_name, disk_name, strlen(disk_name))) {
>  			spin_unlock(&dlm_device_list_lock);
>  			return dlm_pdev;
>  		}
(Continue reading)

Benny Halevy | 1 Jun 06:40 2010

pnfs-all-2.6.34

Now that v2.6.35-rc1 is out I'd like to close pnfs-all-2.6.34 for new features
and it'll remain opened essentially only for bug fixes.

the respective tips are:
pnfs-all-2.6.33-2010-06-01
pnfs-all-2.6.34-2010-06-01

I'll release a v2.6.35-rc based version of the -latest branches this week.

Benny
--
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

Kevin Coffman | 1 Jun 14:41 2010
Picon

Re: question about gss_verify_mic_v2()

I think it would be good to add sequence checks, but I don't have the
cycles to work on it.

On Mon, May 31, 2010 at 6:12 AM, Dan Carpenter <error27@...> wrote:
> Hi Kevin,
>
> Are we planning to add the sequencing checks later or can I remove the
> comment?
>
> net/sunrpc/auth_gss/gss_krb5_unseal.c +202 gss_verify_mic_v2()
>         warn: unused return: seqnum = __be64_to_cpup()
>
>   200          /* do sequencing checks */
>   201
>   202          seqnum = be64_to_cpup((__be64 *)ptr + 8);
>   203
>   204          return GSS_S_COMPLETE;
>   205  }
>
> regards,
> dan carpenter
>
>
--
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

Chuck Lever | 1 Jun 17:37 2010
Picon

Re: [PATCH 1/1] nfs-iostat.py: Fixes several Divide by Zero errors

On 05/28/10 06:51 PM, Kevin Constantine wrote:
> On 05/28/2010 10:00 AM, Chuck Lever wrote:
>> On 05/27/10 08:50 PM, Kevin Constantine wrote:
>>> The first time through the code sample_time is set to 0.0 on line 588.
>>> Eventually we call display_iostats() and check if sample_time == 0. It
>>> does, so we set sample_time equal to the mount age on line 368. I'm
>>> seeing instances where the age of a mount is 0.
>>>
>>> cat /proc/self/mountstats | egrep "device|age"
>>> device fashome-n1:/vol/home/fahome mounted on /home/fahome with fstype
>>> nfs statvers=1.0
>>> age: 0
>>>
>>> All of our storage is automounted, so volumes are frequently getting
>>> unmounted and remounted.
>>
>> Makes sense. When I wrote the script, I wasn't using automounter at all.
>> It might be simpler to have one check for a zero age at 368.
>>
>
> My only concern with checking and just returning (which is certainly
> easier and a smaller change) is that we end up not printing anything for
> a volume that is technically mounted. I figured it was better to print
> the volume info and all zeroes than to not print anything.

Unfortunately not printing anything in this case might be considered 
"following the precedent" of Unix tools -- don't print anything in error 
cases, or when there is nothing to show.  I think that's the rule I 
followed for RPC procedures that have a zero op count.  But it would 
still be useful to see other relevant information for that mount, as you 
(Continue reading)

Christoph Hellwig | 1 Jun 21:59 2010
Picon

[PATCH] nfsd: nfsd_setattr needs to call commit_metadata

The conversion of write_inode_now calls to commit_metadata in commit
f501912a35c02eadc55ca9396ece55fe36f785d0 missed out the call in nfsd_setattr.

But without this conversion we can't guarantee that a SETATTR request
has actually been commited to disk with XFS, which causes a regression
from 2.6.32 (only for NFSv2, but anyway).

Signed-off-by: Christoph Hellwig <hch@...>

Index: linux-2.6/fs/nfsd/vfs.c
===================================================================
--- linux-2.6.orig/fs/nfsd/vfs.c	2010-06-01 21:24:34.945004695 +0200
+++ linux-2.6/fs/nfsd/vfs.c	2010-06-01 21:25:48.299003856 +0200
 <at>  <at>  -443,8 +443,7  <at>  <at>  nfsd_setattr(struct svc_rqst *rqstp, str
 	if (size_change)
 		put_write_access(inode);
 	if (!err)
-		if (EX_ISSYNC(fhp->fh_export))
-			write_inode_now(inode, 1);
+		commit_metadata(fhp);
 out:
 	return err;

--
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 | 2 Jun 01:18 2010

Re: [PATCH] nfsd: nfsd_setattr needs to call commit_metadata

On Tue, Jun 01, 2010 at 09:59:18PM +0200, Christoph Hellwig wrote:
> The conversion of write_inode_now calls to commit_metadata in commit
> f501912a35c02eadc55ca9396ece55fe36f785d0 missed out the call in nfsd_setattr.
> 
> But without this conversion we can't guarantee that a SETATTR request
> has actually been commited to disk with XFS, which causes a regression
> from 2.6.32 (only for NFSv2, but anyway).

Got it, thanks.

--b.

> 
> Signed-off-by: Christoph Hellwig <hch@...>
> 
> Index: linux-2.6/fs/nfsd/vfs.c
> ===================================================================
> --- linux-2.6.orig/fs/nfsd/vfs.c	2010-06-01 21:24:34.945004695 +0200
> +++ linux-2.6/fs/nfsd/vfs.c	2010-06-01 21:25:48.299003856 +0200
>  <at>  <at>  -443,8 +443,7  <at>  <at>  nfsd_setattr(struct svc_rqst *rqstp, str
>  	if (size_change)
>  		put_write_access(inode);
>  	if (!err)
> -		if (EX_ISSYNC(fhp->fh_export))
> -			write_inode_now(inode, 1);
> +		commit_metadata(fhp);
>  out:
>  	return err;
>  
> --
(Continue reading)

J. Bruce Fields | 2 Jun 01:21 2010
Picon

Re: [PATCH] nfsd: nfs4callback encode_stateid helper function

Thanks.--b.

On Tue, May 25, 2010 at 09:50:23AM +0300, Benny Halevy wrote:
> To be used also for the pnfs cb_layoutrecall callback
> 
> Signed-off-by: Benny Halevy <bhalevy@...>
> [nfsd4: fix cb_recall encoding]
>     "nfsd: nfs4callback encode_stateid helper function" forgot to reserve
>     more space after return from the new helper.
> Reported-by: Michael Groshans <groshans@...>
> Signed-off-by: J. Bruce Fields <bfields@...>
> Signed-off-by: Benny Halevy <bhalevy@...>
> ---
>  fs/nfsd/nfs4callback.c |   16 +++++++++++++---
>  1 files changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
> index eb78e7e..6bacd0e 100644
> --- a/fs/nfsd/nfs4callback.c
> +++ b/fs/nfsd/nfs4callback.c
>  <at>  <at>  -205,6 +205,16  <at>  <at>  nfs_cb_stat_to_errno(int stat)
>   */
>  
>  static void
> +encode_stateid(struct xdr_stream *xdr, stateid_t *sid)
> +{
> +	__be32 *p;
> +
> +	RESERVE_SPACE(sizeof(stateid_t));
> +	WRITE32(sid->si_generation);
(Continue reading)

hce | 2 Jun 04:23 2010
Picon

Issue for list directory contains large number files

Hi,

When I mounted NFS client to a FUSE filesystem in Linux, it took hours
to list a directory contains 100 K files. There are following two
issues:

(1) The readdir returns all file names and file attributes to NFS, but
despite NFS got the file attributes, it still called getattr for each
file. Is there any mount option can suppress those getattrs during
listing directory call?

(2) If a directory contains files smaller than 25, the NFS called only
one readdir, a normal scenario. When a directory contains files larger
than 25, NFS called multiple readdirs. In fact, between 25 getattrs,
NFS called another readdir. Every readdir returned NFS the same
directory content with all file names and file attributes in that
directory. Not clear if the 25 is a magic number or if 25 is just
coincident associated to entries, file size, or timing?

If a directory contains 100 K files, NFS called thousands getdirs.
Each getdir returned NFS the same 100 K file names and file
attributes. A wired situation where the NFS should only need one
getdir to list the directory contents on screen, is it correct?

To make sure those problems were not caused from FUSE, I've tried to
list a directory which contains 100 K files directly from FUSE mount
point (No NFS client), it indeed only called readdir once, and there
was no single getattr called after the readdir, a normal behaviour you
can imagine.

(Continue reading)


Gmane