diff --git a/fs/namespace.c b/fs/namespace.c
index 7b1ca9b..7f9bf58a 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -2236,7 +2236,7 @@ int copy_mount_string(const void __user *data, char **where)
 		return 0;
 	}
 
-	tmp = strndup_user(data, PAGE_SIZE);
+	tmp = strndup_user_debug(data, PAGE_SIZE, true);
 	if (IS_ERR(tmp))
 		return PTR_ERR(tmp);
 
diff --git a/include/linux/string.h b/include/linux/string.h
index ac889c5..3b962b8 100644
--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -9,6 +9,7 @@
 #include <uapi/linux/string.h>
 
 extern char *strndup_user(const char __user *, long);
+extern char *strndup_user_debug(const char __user *, long, bool);
 extern void *memdup_user(const void __user *, size_t);
 
 /*
diff --git a/mm/util.c b/mm/util.c
index ab1424d..c95b08c 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -203,13 +203,16 @@ EXPORT_SYMBOL(kzfree);
  * @s: The string to duplicate
  * @n: Maximum number of bytes to copy, including the trailing NUL.
  */
-char *strndup_user(const char __user *s, long n)
+char *strndup_user_debug(const char __user *s, long n, bool debug)
 {
 	char *p;
 	long length;
 
 	length = strnlen_user(s, n);
 
+	if (debug)
+		printk(KERN_ERR "%s: strnlen_user() returned: %li\n", __func__, length);
+
 	if (!length)
 		return ERR_PTR(-EFAULT);
 
@@ -218,6 +221,9 @@ char *strndup_user(const char __user *s, long n)
 
 	p = memdup_user(s, length);
 
+	if (debug)
+		printk(KERN_ERR "%s: calling memdup_user() with length: %li\n", __func__, length);
+
 	if (IS_ERR(p))
 		return p;
 
@@ -225,6 +231,12 @@ char *strndup_user(const char __user *s, long n)
 
 	return p;
 }
+EXPORT_SYMBOL(strndup_user_debug);
+
+char *strndup_user(const char __user *s, long n)
+{
+	return strndup_user_debug(s, n, false);
+}
 EXPORT_SYMBOL(strndup_user);
 
 void __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma,
