Weston Andros Adamson | 1 Jun 2011 01:05
Picon

[PATCH] NFS: use scope from exchange_id to skip reclaim

>From Section 8.4.2.1 of the rfc 5661 - We can determine if a RECLAIM_REBOOT
can be skipped if the "eir_server_scope" from the exchange_id proc differs from
previous calls.

Also, in the future server_scope will be useful for determining whether client
trunking is available

Signed-off-by: Weston Andros Adamson <dros@...>
---

Repost - This never made it into any branch and there haven't been any comments
since Benny's last concerns were addressed.  Rebased to nfs-for-next.

 fs/nfs/client.c           |    1 +
 fs/nfs/nfs4_fs.h          |    3 +++
 fs/nfs/nfs4proc.c         |   32 ++++++++++++++++++++++++++++++++
 fs/nfs/nfs4state.c        |    9 ++++++++-
 fs/nfs/nfs4xdr.c          |    8 +++++++-
 include/linux/nfs_fs_sb.h |    3 +++
 include/linux/nfs_xdr.h   |    1 +
 7 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index b3dc2b8..006f8ff 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
 <at>  <at>  -293,6 +293,7  <at>  <at>  static void nfs_free_client(struct nfs_client *clp)
 	nfs4_deviceid_purge_client(clp);

 	kfree(clp->cl_hostname);
(Continue reading)

Jim Rees | 1 Jun 2011 01:32
Picon

Re: [PATCHSET final 00/32] pnfs-obj: pnfs-objects layout driver submission

Benny Halevy wrote:

  Jim, what's the status of the blocks back-end and layout driver?
  I'd like to add it back to the tree before the bakeathon if possible...

Sorry I've been out of touch.  Other matters have interrupted the block
layout work, but I fully expect to have something that works by Bakeathon.
I'm currently basing on top of Boaz's tree but will rebase as needed.
--
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

Weston Andros Adamson | 1 Jun 2011 03:30
Picon

[PATCH] NFS: fix umount of pnfs filesystems

Unmounting a pnfs filesystem hangs using filelayout and possibly others.
This fixes the use of the rcu protected node by making use of a new 'tmpnode'
for the temporary purge list. Also, the spinlock shouldn't be held when calling
synchronize_rcu().

Signed-off-by: Weston Andros Adamson <dros@...>
---
Fix proposed by Trond

 fs/nfs/pnfs.h     |    1 +
 fs/nfs/pnfs_dev.c |   11 +++++++----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
index 48d0a8e..96bf4e6 100644
--- a/fs/nfs/pnfs.h
+++ b/fs/nfs/pnfs.h
 <at>  <at>  -186,6 +186,7  <at>  <at>  int pnfs_ld_read_done(struct nfs_read_data *);
 /* pnfs_dev.c */
 struct nfs4_deviceid_node {
 	struct hlist_node		node;
+	struct hlist_node		tmpnode;
 	const struct pnfs_layoutdriver_type *ld;
 	const struct nfs_client		*nfs_client;
 	struct nfs4_deviceid		deviceid;
diff --git a/fs/nfs/pnfs_dev.c b/fs/nfs/pnfs_dev.c
index c65e133..81e642f 100644
--- a/fs/nfs/pnfs_dev.c
+++ b/fs/nfs/pnfs_dev.c
 <at>  <at>  -174,6 +174,7  <at>  <at>  nfs4_init_deviceid_node(struct nfs4_deviceid_node *d,
(Continue reading)

Weston Andros Adamson | 1 Jun 2011 03:46
Picon

[PATCH] NFS: fix umount of pnfs filesystems

Unmounting a pnfs filesystem hangs using filelayout and possibly others.
This fixes the use of the rcu protected node by making use of a new 'tmpnode'
for the temporary purge list. Also, the spinlock shouldn't be held when calling
synchronize_rcu().

Signed-off-by: Weston Andros Adamson <dros@...>
---
Fix proposed by Trond.  Reposted without 'unused variable' warning.

 fs/nfs/pnfs.h     |    1 +
 fs/nfs/pnfs_dev.c |   13 ++++++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
index 48d0a8e..96bf4e6 100644
--- a/fs/nfs/pnfs.h
+++ b/fs/nfs/pnfs.h
 <at>  <at>  -186,6 +186,7  <at>  <at>  int pnfs_ld_read_done(struct nfs_read_data *);
 /* pnfs_dev.c */
 struct nfs4_deviceid_node {
 	struct hlist_node		node;
+	struct hlist_node		tmpnode;
 	const struct pnfs_layoutdriver_type *ld;
 	const struct nfs_client		*nfs_client;
 	struct nfs4_deviceid		deviceid;
diff --git a/fs/nfs/pnfs_dev.c b/fs/nfs/pnfs_dev.c
index c65e133..503186e 100644
--- a/fs/nfs/pnfs_dev.c
+++ b/fs/nfs/pnfs_dev.c
 <at>  <at>  -174,6 +174,7  <at>  <at>  nfs4_init_deviceid_node(struct nfs4_deviceid_node *d,
(Continue reading)

Weston Andros Adamson | 1 Jun 2011 05:18
Picon

[PATCH] NFS: filelayout should use nfs_generic_pg_test

Use nfs_generic_pg_test instead of pnfs_generic_pg_test.

This fixes the BUG at fs/nfs/write.c:941 introduced by
89a58e32d9105c01022a757fb32ddc3b51bf0025.

I was able to trigger this BUG reliably using pynfs in pnfs mode,
by using dd(1) to write many small blocks.

Signed-off-by: Weston Andros Adamson <dros@...>
---
Fix proposed by Trond.

Benny- Does this make sense?

 fs/nfs/nfs4filelayout.c  |    2 +-
 fs/nfs/pagelist.c        |    5 ++++-
 include/linux/nfs_page.h |    3 ++-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c
index 4269088..1c3bb72 100644
--- a/fs/nfs/nfs4filelayout.c
+++ b/fs/nfs/nfs4filelayout.c
 <at>  <at>  -661,7 +661,7  <at>  <at>  filelayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev,
 	u64 p_stripe, r_stripe;
 	u32 stripe_unit;

-	if (!pnfs_generic_pg_test(pgio, prev, req))
+	if (!nfs_generic_pg_test(pgio, prev, req))
 		return 0;
(Continue reading)

Boaz Harrosh | 1 Jun 2011 07:47
Favicon
Gravatar

Re: [PATCH] NFS: filelayout should use nfs_generic_pg_test

On 06/01/2011 06:18 AM, Weston Andros Adamson wrote:
> Use nfs_generic_pg_test instead of pnfs_generic_pg_test.
> 
> This fixes the BUG at fs/nfs/write.c:941 introduced by
> 89a58e32d9105c01022a757fb32ddc3b51bf0025.
> 
> I was able to trigger this BUG reliably using pynfs in pnfs mode,
> by using dd(1) to write many small blocks.
> 
> Signed-off-by: Weston Andros Adamson <dros@...>
> ---
> Fix proposed by Trond.
> 
> Benny- Does this make sense?
> 
>  fs/nfs/nfs4filelayout.c  |    2 +-
>  fs/nfs/pagelist.c        |    5 ++++-
>  include/linux/nfs_page.h |    3 ++-
>  3 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c
> index 4269088..1c3bb72 100644
> --- a/fs/nfs/nfs4filelayout.c
> +++ b/fs/nfs/nfs4filelayout.c
>  <at>  <at>  -661,7 +661,7  <at>  <at>  filelayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev,
>  	u64 p_stripe, r_stripe;
>  	u32 stripe_unit;
>  
> -	if (!pnfs_generic_pg_test(pgio, prev, req))
> +	if (!nfs_generic_pg_test(pgio, prev, req))
(Continue reading)

Tigran Mkrtchyan | 1 Jun 2011 08:38
Picon
Favicon
Gravatar

Re: [PATCH 2/3] NFS: Parse and store all multipath DS addresses


On Tue, 31 May 2011, Weston Andros Adamson wrote:

> Date: Tue, 31 May 2011 18:48:57 -0400
> From: Weston Andros Adamson <dros@...>
> To: trond@...
> Cc: linux-nfs@..., Weston Andros Adamson <dros@...>
> Subject: [PATCH 2/3] NFS: Parse and store all multipath DS addresses
> 
> This parses and stores all addresses associated with each data server,
> laying the groundwork for supporting multipath to data servers.
>
> - Skips over addresses that cannot be parsed (ie IPv6 addrs if v6 is not
>   enabled).  Only fails if none of the addresses are recognizable
> - Currently only uses the first address that parsed cleanly
> - Tested against pynfs server (modified to support multipath)
>
> Signed-off-by: Weston Andros Adamson <dros@...>
> ---
> fs/nfs/nfs4filelayout.h    |   12 +-
> fs/nfs/nfs4filelayoutdev.c |  363 ++++++++++++++++++++++++++++----------------
> 2 files changed, 243 insertions(+), 132 deletions(-)
>
> diff --git a/fs/nfs/nfs4filelayout.h b/fs/nfs/nfs4filelayout.h
> index 6c6a817..68cce73 100644
> --- a/fs/nfs/nfs4filelayout.h
> +++ b/fs/nfs/nfs4filelayout.h
>  <at>  <at>  -47,11 +47,17  <at>  <at>  enum stripetype4 {
> };
>
(Continue reading)

Boaz Harrosh | 1 Jun 2011 08:38
Favicon
Gravatar

Re: [PATCH] NFS: fix umount of pnfs filesystems

On 06/01/2011 04:30 AM, Weston Andros Adamson wrote:
> Unmounting a pnfs filesystem hangs using filelayout and possibly others.
> This fixes the use of the rcu protected node by making use of a new 'tmpnode'
> for the temporary purge list. Also, the spinlock shouldn't be held when calling
> synchronize_rcu().
> 

I like the new code, but I have two questions:

* Why didn't I see this hang? (Maybe because I run uni-processor)
* How do you have this problem. Usually with the regular usage of device-cache
  all deviceids get released when layouts go away. So by the time client_purge comes
  in there are no more devices in the cache. At objects-ld I take an extra ref at
  first add_dev which is then get released in client_purge?

Thanks
Boaz

> Signed-off-by: Weston Andros Adamson <dros@...>
> ---
> Fix proposed by Trond
> 
>  fs/nfs/pnfs.h     |    1 +
>  fs/nfs/pnfs_dev.c |   11 +++++++----
>  2 files changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
> index 48d0a8e..96bf4e6 100644
> --- a/fs/nfs/pnfs.h
> +++ b/fs/nfs/pnfs.h
(Continue reading)

Pavel Shilovsky | 1 Jun 2011 09:43
Picon

Regression in current master

Hi all!

Commit 9274e94db85bac04e170414cb8e0f4be271cde90
(http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=9274e94db85bac04e170414cb8e0f4be271cde90)
caused the regression when --manage-gids option is enabled: a user
doesn't get group list through getgrouplist when auth_unix_gid is
called twice. When I remove static attributes from gid_t *groups and
int groups_len, it works good.

--

-- 
Best regards,
Pavel Shilovsky.
--
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

Benny Halevy | 1 Jun 2011 13:55
Favicon

Re: [PATCHSET final 00/32] pnfs-obj: pnfs-objects layout driver submission

On 2011-06-01 02:32, Jim Rees wrote:
> Benny Halevy wrote:
> 
>   Jim, what's the status of the blocks back-end and layout driver?
>   I'd like to add it back to the tree before the bakeathon if possible...
> 
> Sorry I've been out of touch.  Other matters have interrupted the block
> layout work, but I fully expect to have something that works by Bakeathon.
> I'm currently basing on top of Boaz's tree but will rebase as needed.

Thanks, just please use git://linux-nfs.org/~bhalevy/linux-pnfs.git
pnfs-all-latest
as your base so we maintain one place for integrating the out-of-kernel
pnfs code.

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


Gmane