summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVegard Nossum <vegard.nossum@gmail.com>2009-05-16 11:26:20 +0200
committerVegard Nossum <vegard.nossum@gmail.com>2009-06-15 15:49:42 +0200
commit3b5c760efcddf1ebdd39a2035b554e96febd7466 (patch)
treeefc709a5a17216e66aebe44c5f80fc2ee168edcd
parent3446a8aa7ebcbc0a799e5e8fc4f2da0738d6bc21 (diff)
downloadlinux-3b5c760efcddf1ebdd39a2035b554e96febd7466.tar.gz
linux-3b5c760efcddf1ebdd39a2035b554e96febd7466.tar.bz2
linux-3b5c760efcddf1ebdd39a2035b554e96febd7466.zip
fs: fix do_mount_root() false positive kmemcheck warning
This false positive is due to the fact that do_mount_root() fakes a mount option (which is normally read from userspace), and the kernel unconditionally reads a whole page for the mount option. Hide the false positive by using the new __getname_gfp() with the __GFP_NOTRACK_FALSE_POSITIVE flag. Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Vegard Nossum <vegard.nossum@gmail.com>
-rw-r--r--init/do_mounts.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/init/do_mounts.c b/init/do_mounts.c
index dd7ee5f203f3..093f65915501 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -231,7 +231,8 @@ static int __init do_mount_root(char *name, char *fs, int flags, void *data)
void __init mount_block_root(char *name, int flags)
{
- char *fs_names = __getname();
+ char *fs_names = __getname_gfp(GFP_KERNEL
+ | __GFP_NOTRACK_FALSE_POSITIVE);
char *p;
#ifdef CONFIG_BLOCK
char b[BDEVNAME_SIZE];