[PATCH 2/5] NFS: Adding trace points to fs/nfs/super.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Added trace points to nfs_validate_mount_data() and
nfs_get_sb(). Since nfs_validate_mount_data() is only
called from nfs_get_sb(), trace points were only added
to the error paths.

Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>

--- linux/fs/nfs/super.c.orig	2009-01-14 15:54:19.000000000 -0500
+++ linux/fs/nfs/super.c	2009-01-15 12:37:57.000000000 -0500
@@ -51,6 +51,7 @@
 #include <linux/nfs_xdr.h>
 #include <linux/magic.h>
 #include <linux/parser.h>
+#include <trace/nfs.h>
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
@@ -61,6 +62,15 @@
 #include "iostat.h"
 #include "internal.h"
 
+DEFINE_TRACE(nfs_mount_data_null);
+DEFINE_TRACE(nfs_mount_data_invalvers);
+DEFINE_TRACE(nfs_mount_data_invalsec);
+DEFINE_TRACE(nfs_mount_data_nomem);
+DEFINE_TRACE(nfs_mount_data_noaddr);
+DEFINE_TRACE(nfs_mount_data_badfh);
+DEFINE_TRACE(nfs_mount);
+DEFINE_TRACE(nfs_mount_sget);
+
 #define NFSDBG_FACILITY		NFSDBG_VFS
 
 enum {
@@ -1692,15 +1702,18 @@ static int nfs_validate_mount_data(void 
 
 out_no_data:
 	dfprintk(MOUNT, "NFS: mount program didn't pass any mount data\n");
+	trace_nfs_mount_data_null(data, EINVAL);
 	return -EINVAL;
 
 out_no_v3:
 	dfprintk(MOUNT, "NFS: nfs_mount_data version %d does not support v3\n",
 		 data->version);
+	trace_nfs_mount_data_invalvers(data, EINVAL);
 	return -EINVAL;
 
 out_no_sec:
 	dfprintk(MOUNT, "NFS: nfs_mount_data version supports only AUTH_SYS\n");
+	trace_nfs_mount_data_invalsec(data, EINVAL);
 	return -EINVAL;
 
 #ifndef CONFIG_NFS_V3
@@ -1711,14 +1724,17 @@ out_v3_not_compiled:
 
 out_nomem:
 	dfprintk(MOUNT, "NFS: not enough memory to handle mount options\n");
+	trace_nfs_mount_data_nomem(data, EINVAL);
 	return -ENOMEM;
 
 out_no_address:
 	dfprintk(MOUNT, "NFS: mount program didn't pass remote address\n");
+	trace_nfs_mount_data_noaddr(data, EINVAL);
 	return -EINVAL;
 
 out_invalid_fh:
 	dfprintk(MOUNT, "NFS: invalid root filehandle\n");
+	trace_nfs_mount_data_badfh(data, EINVAL);
 	return -EINVAL;
 }
 
@@ -1999,6 +2015,8 @@ static int nfs_get_sb(struct file_system
 
 	security_init_mnt_opts(&data->lsm_opts);
 
+	trace_nfs_mount(fs_type, flags, dev_name, data, mnt);
+
 	/* Validate the mount data */
 	error = nfs_validate_mount_data(raw_data, data, mntfh, dev_name);
 	if (error < 0)
@@ -2019,6 +2037,7 @@ static int nfs_get_sb(struct file_system
 	s = sget(fs_type, compare_super, nfs_set_super, &sb_mntdata);
 	if (IS_ERR(s)) {
 		error = PTR_ERR(s);
+		trace_nfs_mount_sget(server, error);
 		goto out_err_nosb;
 	}
 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux