diff options
author | Chuck Lever <cel@netapp.com> | 2006-03-20 13:44:12 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-20 13:44:12 -0500 |
commit | 7a480e250c7ca9187275d8574ae9e48a6b602cb9 (patch) | |
tree | 0c3744235b3469c10b791fc5cd80b82f9734d37b | |
parent | b4629fe2f094b719847f31be1ee5ab38300038b2 (diff) |
NFS: show retransmit settings when displaying mount options
Sometimes it's important to know the exact RPC retransmit settings the
kernel is using for an NFS mount point. Add this facility to the NFS
client's show_options method.
Test plan:
Set various retransmit settings via the mount command, and check that the
settings are reflected in /proc/mounts.
Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r-- | fs/nfs/inode.c | 8 | ||||
-rw-r--r-- | include/linux/nfs_fs_sb.h | 2 |
2 files changed, 10 insertions, 0 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 521d1dcb4cf0..48683d4bf0f6 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -396,6 +396,9 @@ nfs_create_client(struct nfs_server *server, const struct nfs_mount_data *data) | |||
396 | 396 | ||
397 | nfs_init_timeout_values(&timeparms, proto, data->timeo, data->retrans); | 397 | nfs_init_timeout_values(&timeparms, proto, data->timeo, data->retrans); |
398 | 398 | ||
399 | server->retrans_timeo = timeparms.to_initval; | ||
400 | server->retrans_count = timeparms.to_retries; | ||
401 | |||
399 | /* create transport and client */ | 402 | /* create transport and client */ |
400 | xprt = xprt_create_proto(proto, &server->addr, &timeparms); | 403 | xprt = xprt_create_proto(proto, &server->addr, &timeparms); |
401 | if (IS_ERR(xprt)) { | 404 | if (IS_ERR(xprt)) { |
@@ -629,6 +632,8 @@ static int nfs_show_options(struct seq_file *m, struct vfsmount *mnt) | |||
629 | proto = buf; | 632 | proto = buf; |
630 | } | 633 | } |
631 | seq_printf(m, ",proto=%s", proto); | 634 | seq_printf(m, ",proto=%s", proto); |
635 | seq_printf(m, ",timeo=%lu", 10U * nfss->retrans_timeo / HZ); | ||
636 | seq_printf(m, ",retrans=%u", nfss->retrans_count); | ||
632 | seq_puts(m, ",addr="); | 637 | seq_puts(m, ",addr="); |
633 | seq_escape(m, nfss->hostname, " \t\n\\"); | 638 | seq_escape(m, nfss->hostname, " \t\n\\"); |
634 | return 0; | 639 | return 0; |
@@ -1800,6 +1805,9 @@ static int nfs4_fill_super(struct super_block *sb, struct nfs4_mount_data *data, | |||
1800 | 1805 | ||
1801 | nfs_init_timeout_values(&timeparms, data->proto, data->timeo, data->retrans); | 1806 | nfs_init_timeout_values(&timeparms, data->proto, data->timeo, data->retrans); |
1802 | 1807 | ||
1808 | server->retrans_timeo = timeparms.to_initval; | ||
1809 | server->retrans_count = timeparms.to_retries; | ||
1810 | |||
1803 | clp = nfs4_get_client(&server->addr.sin_addr); | 1811 | clp = nfs4_get_client(&server->addr.sin_addr); |
1804 | if (!clp) { | 1812 | if (!clp) { |
1805 | dprintk("%s: failed to create NFS4 client.\n", __FUNCTION__); | 1813 | dprintk("%s: failed to create NFS4 client.\n", __FUNCTION__); |
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h index 3d3a305488cf..a522ab97358d 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h | |||
@@ -26,6 +26,8 @@ struct nfs_server { | |||
26 | unsigned int acregmax; | 26 | unsigned int acregmax; |
27 | unsigned int acdirmin; | 27 | unsigned int acdirmin; |
28 | unsigned int acdirmax; | 28 | unsigned int acdirmax; |
29 | unsigned long retrans_timeo; /* retransmit timeout */ | ||
30 | unsigned int retrans_count; /* number of retransmit tries */ | ||
29 | unsigned int namelen; | 31 | unsigned int namelen; |
30 | char * hostname; /* remote hostname */ | 32 | char * hostname; /* remote hostname */ |
31 | struct nfs_fh fh; | 33 | struct nfs_fh fh; |