Commit 67ec9f46 authored by Chuck Lever's avatar Chuck Lever Committed by Trond Myklebust

NFS: report how long an NFS file system has been mounted

Add a field in nfs_server to record a timestamp when a mount succeeds.
Report the number of seconds the file system has been mounted via
nfs_show_stats().

Test plan:
Mount an NFS file system, watch the mountstats reports and compare with
clock time.
Signed-off-by: default avatarChuck Lever <cel@netapp.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 006ea73e
...@@ -299,6 +299,9 @@ nfs_sb_init(struct super_block *sb, rpc_authflavor_t authflavor) ...@@ -299,6 +299,9 @@ nfs_sb_init(struct super_block *sb, rpc_authflavor_t authflavor)
goto out_no_root; goto out_no_root;
} }
/* mount time stamp, in seconds */
server->mount_time = jiffies;
/* Get some general file system info */ /* Get some general file system info */
if (server->namelen == 0 && if (server->namelen == 0 &&
server->rpc_ops->pathconf(server, &server->fh, &pathinfo) >= 0) server->rpc_ops->pathconf(server, &server->fh, &pathinfo) >= 0)
...@@ -674,6 +677,8 @@ static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt) ...@@ -674,6 +677,8 @@ static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt)
seq_puts(m, mnt->mnt_sb->s_flags & MS_NODIRATIME ? ",nodiratime" : ""); seq_puts(m, mnt->mnt_sb->s_flags & MS_NODIRATIME ? ",nodiratime" : "");
nfs_show_mount_options(m, nfss, 1); nfs_show_mount_options(m, nfss, 1);
seq_printf(m, "\n\tage:\t%lu", (jiffies - nfss->mount_time) / HZ);
seq_printf(m, "\n\tcaps:\t"); seq_printf(m, "\n\tcaps:\t");
seq_printf(m, "caps=0x%x", nfss->caps); seq_printf(m, "caps=0x%x", nfss->caps);
seq_printf(m, ",wtmult=%d", nfss->wtmult); seq_printf(m, ",wtmult=%d", nfss->wtmult);
......
...@@ -35,6 +35,7 @@ struct nfs_server { ...@@ -35,6 +35,7 @@ struct nfs_server {
char * hostname; /* remote hostname */ char * hostname; /* remote hostname */
struct nfs_fh fh; struct nfs_fh fh;
struct sockaddr_in addr; struct sockaddr_in addr;
unsigned long mount_time; /* when this fs was mounted */
#ifdef CONFIG_NFS_V4 #ifdef CONFIG_NFS_V4
/* Our own IP address, as a null-terminated string. /* Our own IP address, as a null-terminated string.
* This is used to generate the clientid, and the callback address. * This is used to generate the clientid, and the callback address.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment