Since commit 1751e8a6cb93 ("Rename superblock flags (MS_xyz -> SB_xyz)"), scripts/gdb should be updated to replace MS_xyz with SB_xyz. This change didn't directly affect the running operation of scripts/gdb until commit e262e32d6bde "vfs: Suppress MS_* flag defs within the kernel unless explicitly enabled" removed the definitions used by constants.py. Update constants.py.in to utilise the new internal flags, matching the implementation at fs/proc_namespace.c::show_sb_opts. Note to stable, e262e32d6bde landed in v5.0-rc1 (which was just released), so we'll want this picked back to 5.0 stable once this patch hits mainline (akpm just picked it up). Without this, debugging a kernel a kernel via GDB+QEMU is broken in the 5.0 release. [kieran.bingham@ideasonboard.com: add fixes tag, reword commit message] Link: http://lkml.kernel.org/r/20190305103014.25847-1-kieran.bingham@ideasonboard.com Fixes: e262e32d6bde "vfs: Suppress MS_* flag defs within the kernel unless explicitly enabled" Signed-off-by: Jackie Liu <liuyun01@kylinos.cn> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Tested-by: Nick Desaulniers <ndesaulniers@google.com> Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Cc: Felipe Balbi <felipe.balbi@linux.intel.com> Cc: Dan Robertson <danlrobertson89@gmail.com> Cc: Jan Kiszka <jan.kiszka@siemens.com> Cc: David Howells <dhowells@redhat.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Unified · Split
| @@ -37,12 +37,12 @@ · 36 unmodified lines | |||
| 37 | import gdb | 37 | import gdb |
| 38 | 38 | ||
| 39 | /* linux/fs.h */ | 39 | /* linux/fs.h */ |
| 40 | LX_VALUE(MS_RDONLY) | 40 | LX_VALUE(SB_RDONLY) |
| 41 | LX_VALUE(MS_SYNCHRONOUS) | 41 | LX_VALUE(SB_SYNCHRONOUS) |
| 42 | LX_VALUE(MS_MANDLOCK) | 42 | LX_VALUE(SB_MANDLOCK) |
| 43 | LX_VALUE(MS_DIRSYNC) | 43 | LX_VALUE(SB_DIRSYNC) |
| 44 | LX_VALUE(MS_NOATIME) | 44 | LX_VALUE(SB_NOATIME) |
| 45 | LX_VALUE(MS_NODIRATIME) | 45 | LX_VALUE(SB_NODIRATIME) |
| 46 | 46 | ||
| 47 | /* linux/mount.h */ | 47 | /* linux/mount.h */ |
| 48 | LX_VALUE(MNT_NOSUID) | 48 | LX_VALUE(MNT_NOSUID) |
| @@ -114,11 +114,11 @@ def info_opts(lst, opt): · 113 unmodified lines | |||
| 114 | return opts | 114 | return opts |
| 115 | 115 | ||
| 116 | 116 | ||
| 117 | FS_INFO = {constants.LX_MS_SYNCHRONOUS: ",sync", | 117 | FS_INFO = {constants.LX_SB_SYNCHRONOUS: ",sync", |
| 118 | constants.LX_MS_MANDLOCK: ",mand", | 118 | constants.LX_SB_MANDLOCK: ",mand", |
| 119 | constants.LX_MS_DIRSYNC: ",dirsync", | 119 | constants.LX_SB_DIRSYNC: ",dirsync", |
| 120 | constants.LX_MS_NOATIME: ",noatime", | 120 | constants.LX_SB_NOATIME: ",noatime", |
| 121 | constants.LX_MS_NODIRATIME: ",nodiratime"} | 121 | constants.LX_SB_NODIRATIME: ",nodiratime"} |
| 122 | 122 | ||
| 123 | MNT_INFO = {constants.LX_MNT_NOSUID: ",nosuid", | 123 | MNT_INFO = {constants.LX_MNT_NOSUID: ",nosuid", |
| 124 | constants.LX_MNT_NODEV: ",nodev", | 124 | constants.LX_MNT_NODEV: ",nodev", |
| @@ -184,7 +184,7 @@ values of that process namespace""" · 59 unmodified lines | |||
| 184 | fstype = superblock['s_type']['name'].string() | 184 | fstype = superblock['s_type']['name'].string() |
| 185 | s_flags = int(superblock['s_flags']) | 185 | s_flags = int(superblock['s_flags']) |
| 186 | m_flags = int(vfs['mnt']['mnt_flags']) | 186 | m_flags = int(vfs['mnt']['mnt_flags']) |
| 187 | rd = "ro" if (s_flags & constants.LX_MS_RDONLY) else "rw" | 187 | rd = "ro" if (s_flags & constants.LX_SB_RDONLY) else "rw" |
| 188 | 188 | ||
| 189 | gdb.write( | 189 | gdb.write( |
| 190 | "{} {} {} {}{}{} 0 0\n" | 190 | "{} {} {} {}{}{} 0 0\n" |