linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] Committed to the nfs-for-2.6.36 branch
@ 2010-08-05 14:17 Trond Myklebust
  2010-08-05 14:17 ` [PATCH 1/5] NFSv4: Remember to clear NFS_DELEGATED_STATE in nfs_delegation_claim_opens Trond Myklebust
  0 siblings, 1 reply; 6+ messages in thread
From: Trond Myklebust @ 2010-08-05 14:17 UTC (permalink / raw)
  To: linux-nfs

Hi,

The following patches have been committed to the nfs-for-2.6.36 branch,
which I plan on sending to Linus this weekend.

Cheers
  Trond

Bryan Schumaker (1):
  NFS: Fix /proc/mount for legacy binary interface

Trond Myklebust (4):
  NFSv4: Remember to clear NFS_DELEGATED_STATE in
    nfs_delegation_claim_opens
  NFS: Fix the locking in nfs4_callback_getattr
  NFS: NFS_V4 is no longer an EXPERIMENTAL feature
  NFS: NFSv4.1 is no longer a "developer only" feature

 fs/nfs/Kconfig            |   10 +++++-----
 fs/nfs/callback_proc.c    |    6 +++---
 fs/nfs/delegation.c       |    1 +
 fs/nfs/super.c            |    4 ++++
 include/linux/nfs_mount.h |    1 +
 5 files changed, 14 insertions(+), 8 deletions(-)

-- 
1.7.2


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/5] NFSv4: Remember to clear NFS_DELEGATED_STATE in nfs_delegation_claim_opens
  2010-08-05 14:17 [PATCH 0/5] Committed to the nfs-for-2.6.36 branch Trond Myklebust
@ 2010-08-05 14:17 ` Trond Myklebust
  2010-08-05 14:17   ` [PATCH 2/5] NFS: Fix the locking in nfs4_callback_getattr Trond Myklebust
  0 siblings, 1 reply; 6+ messages in thread
From: Trond Myklebust @ 2010-08-05 14:17 UTC (permalink / raw)
  To: linux-nfs

Reported-by: Bian Naimeng <biannm@cn.fujitsu.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---
 fs/nfs/delegation.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
index b9c3c43..62f296e 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -106,6 +106,7 @@ again:
 			continue;
 		if (memcmp(state->stateid.data, stateid->data, sizeof(state->stateid.data)) != 0)
 			continue;
+		clear_bit(NFS_DELEGATED_STATE, &state->flags);
 		get_nfs_open_context(ctx);
 		spin_unlock(&inode->i_lock);
 		err = nfs4_open_delegation_recall(ctx, state, stateid);
-- 
1.7.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/5] NFS: Fix the locking in nfs4_callback_getattr
  2010-08-05 14:17 ` [PATCH 1/5] NFSv4: Remember to clear NFS_DELEGATED_STATE in nfs_delegation_claim_opens Trond Myklebust
@ 2010-08-05 14:17   ` Trond Myklebust
  2010-08-05 14:17     ` [PATCH 3/5] NFS: Fix /proc/mount for legacy binary interface Trond Myklebust
  0 siblings, 1 reply; 6+ messages in thread
From: Trond Myklebust @ 2010-08-05 14:17 UTC (permalink / raw)
  To: linux-nfs

The delegation is protected by RCU now, so we need to replace the
nfsi->rwsem protection with an rcu protected section.

Reported-by: Fred Isaman <iisaman@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---
 fs/nfs/callback_proc.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
index 7445dd0..930d10f 100644
--- a/fs/nfs/callback_proc.c
+++ b/fs/nfs/callback_proc.c
@@ -37,8 +37,8 @@ __be32 nfs4_callback_getattr(struct cb_getattrargs *args, struct cb_getattrres *
 	if (inode == NULL)
 		goto out_putclient;
 	nfsi = NFS_I(inode);
-	down_read(&nfsi->rwsem);
-	delegation = nfsi->delegation;
+	rcu_read_lock();
+	delegation = rcu_dereference(nfsi->delegation);
 	if (delegation == NULL || (delegation->type & FMODE_WRITE) == 0)
 		goto out_iput;
 	res->size = i_size_read(inode);
@@ -53,7 +53,7 @@ __be32 nfs4_callback_getattr(struct cb_getattrargs *args, struct cb_getattrres *
 		args->bitmap[1];
 	res->status = 0;
 out_iput:
-	up_read(&nfsi->rwsem);
+	rcu_read_unlock();
 	iput(inode);
 out_putclient:
 	nfs_put_client(clp);
-- 
1.7.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/5] NFS: Fix /proc/mount for legacy binary interface
  2010-08-05 14:17   ` [PATCH 2/5] NFS: Fix the locking in nfs4_callback_getattr Trond Myklebust
@ 2010-08-05 14:17     ` Trond Myklebust
  2010-08-05 14:17       ` [PATCH 4/5] NFS: NFS_V4 is no longer an EXPERIMENTAL feature Trond Myklebust
  0 siblings, 1 reply; 6+ messages in thread
From: Trond Myklebust @ 2010-08-05 14:17 UTC (permalink / raw)
  To: linux-nfs

From: Bryan Schumaker <bjschuma@netapp.com>

Add a flag so we know if we mounted the NFS server using the legacy
binary interface.  If we used the legacy interface, then we should not
show the mountd options.

Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---
 fs/nfs/super.c            |    4 ++++
 include/linux/nfs_mount.h |    1 +
 2 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index f9df16d..f1ae39f 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -546,6 +546,9 @@ static void nfs_show_mountd_options(struct seq_file *m, struct nfs_server *nfss,
 {
 	struct sockaddr *sap = (struct sockaddr *)&nfss->mountd_address;
 
+	if (nfss->flags & NFS_MOUNT_LEGACY_INTERFACE)
+		return;
+
 	switch (sap->sa_family) {
 	case AF_INET: {
 		struct sockaddr_in *sin = (struct sockaddr_in *)sap;
@@ -1780,6 +1783,7 @@ static int nfs_validate_mount_data(void *options,
 		 * can deal with.
 		 */
 		args->flags		= data->flags & NFS_MOUNT_FLAGMASK;
+		args->flags		|= NFS_MOUNT_LEGACY_INTERFACE;
 		args->rsize		= data->rsize;
 		args->wsize		= data->wsize;
 		args->timeo		= data->timeo;
diff --git a/include/linux/nfs_mount.h b/include/linux/nfs_mount.h
index 4499016..5d59ae8 100644
--- a/include/linux/nfs_mount.h
+++ b/include/linux/nfs_mount.h
@@ -69,5 +69,6 @@ struct nfs_mount_data {
 #define NFS_MOUNT_LOOKUP_CACHE_NONEG	0x10000
 #define NFS_MOUNT_LOOKUP_CACHE_NONE	0x20000
 #define NFS_MOUNT_NORESVPORT		0x40000
+#define NFS_MOUNT_LEGACY_INTERFACE	0x80000
 
 #endif
-- 
1.7.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 4/5] NFS: NFS_V4 is no longer an EXPERIMENTAL feature
  2010-08-05 14:17     ` [PATCH 3/5] NFS: Fix /proc/mount for legacy binary interface Trond Myklebust
@ 2010-08-05 14:17       ` Trond Myklebust
  2010-08-05 14:17         ` [PATCH 5/5] NFS: NFSv4.1 is no longer a "developer only" feature Trond Myklebust
  0 siblings, 1 reply; 6+ messages in thread
From: Trond Myklebust @ 2010-08-05 14:17 UTC (permalink / raw)
  To: linux-nfs

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---
 fs/nfs/Kconfig |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
index a43d07e..d55f3f5 100644
--- a/fs/nfs/Kconfig
+++ b/fs/nfs/Kconfig
@@ -61,8 +61,8 @@ config NFS_V3_ACL
 	  If unsure, say N.
 
 config NFS_V4
-	bool "NFS client support for NFS version 4 (EXPERIMENTAL)"
-	depends on NFS_FS && EXPERIMENTAL
+	bool "NFS client support for NFS version 4"
+	depends on NFS_FS
 	select RPCSEC_GSS_KRB5
 	help
 	  This option enables support for version 4 of the NFS protocol
@@ -72,7 +72,7 @@ config NFS_V4
 	  space programs which can be found in the Linux nfs-utils package,
 	  available from http://linux-nfs.org/.
 
-	  If unsure, say N.
+	  If unsure, say Y.
 
 config NFS_V4_1
 	bool "NFS client support for NFSv4.1 (DEVELOPER ONLY)"
-- 
1.7.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 5/5] NFS: NFSv4.1 is no longer a "developer only" feature
  2010-08-05 14:17       ` [PATCH 4/5] NFS: NFS_V4 is no longer an EXPERIMENTAL feature Trond Myklebust
@ 2010-08-05 14:17         ` Trond Myklebust
  0 siblings, 0 replies; 6+ messages in thread
From: Trond Myklebust @ 2010-08-05 14:17 UTC (permalink / raw)
  To: linux-nfs

Mark it as 'experimental' instead, since in practice, NFSv4.1 should now be
relatively stable.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---
 fs/nfs/Kconfig |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
index d55f3f5..cc1bb33 100644
--- a/fs/nfs/Kconfig
+++ b/fs/nfs/Kconfig
@@ -75,13 +75,13 @@ config NFS_V4
 	  If unsure, say Y.
 
 config NFS_V4_1
-	bool "NFS client support for NFSv4.1 (DEVELOPER ONLY)"
+	bool "NFS client support for NFSv4.1 (EXPERIMENTAL)"
 	depends on NFS_V4 && EXPERIMENTAL
 	help
 	  This option enables support for minor version 1 of the NFSv4 protocol
 	  (draft-ietf-nfsv4-minorversion1) in the kernel's NFS client.
 
-	  Unless you're an NFS developer, say N.
+	  If unsure, say N.
 
 config ROOT_NFS
 	bool "Root file system on NFS"
-- 
1.7.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-08-05 14:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-05 14:17 [PATCH 0/5] Committed to the nfs-for-2.6.36 branch Trond Myklebust
2010-08-05 14:17 ` [PATCH 1/5] NFSv4: Remember to clear NFS_DELEGATED_STATE in nfs_delegation_claim_opens Trond Myklebust
2010-08-05 14:17   ` [PATCH 2/5] NFS: Fix the locking in nfs4_callback_getattr Trond Myklebust
2010-08-05 14:17     ` [PATCH 3/5] NFS: Fix /proc/mount for legacy binary interface Trond Myklebust
2010-08-05 14:17       ` [PATCH 4/5] NFS: NFS_V4 is no longer an EXPERIMENTAL feature Trond Myklebust
2010-08-05 14:17         ` [PATCH 5/5] NFS: NFSv4.1 is no longer a "developer only" feature Trond Myklebust

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).