Explorar o código

NFS: Fix /proc/mount for legacy binary interface

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>
Bryan Schumaker %!s(int64=15) %!d(string=hai) anos
pai
achega
d5eff1a341
Modificáronse 2 ficheiros con 5 adicións e 0 borrados
  1. 4 0
      fs/nfs/super.c
  2. 1 0
      include/linux/nfs_mount.h

+ 4 - 0
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;
 	struct sockaddr *sap = (struct sockaddr *)&nfss->mountd_address;
 
 
+	if (nfss->flags & NFS_MOUNT_LEGACY_INTERFACE)
+		return;
+
 	switch (sap->sa_family) {
 	switch (sap->sa_family) {
 	case AF_INET: {
 	case AF_INET: {
 		struct sockaddr_in *sin = (struct sockaddr_in *)sap;
 		struct sockaddr_in *sin = (struct sockaddr_in *)sap;
@@ -1780,6 +1783,7 @@ static int nfs_validate_mount_data(void *options,
 		 * can deal with.
 		 * can deal with.
 		 */
 		 */
 		args->flags		= data->flags & NFS_MOUNT_FLAGMASK;
 		args->flags		= data->flags & NFS_MOUNT_FLAGMASK;
+		args->flags		|= NFS_MOUNT_LEGACY_INTERFACE;
 		args->rsize		= data->rsize;
 		args->rsize		= data->rsize;
 		args->wsize		= data->wsize;
 		args->wsize		= data->wsize;
 		args->timeo		= data->timeo;
 		args->timeo		= data->timeo;

+ 1 - 0
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_NONEG	0x10000
 #define NFS_MOUNT_LOOKUP_CACHE_NONE	0x20000
 #define NFS_MOUNT_LOOKUP_CACHE_NONE	0x20000
 #define NFS_MOUNT_NORESVPORT		0x40000
 #define NFS_MOUNT_NORESVPORT		0x40000
+#define NFS_MOUNT_LEGACY_INTERFACE	0x80000
 
 
 #endif
 #endif