Re: [PATCH v2] script/gdb: replace flags (MS_xyz -> SB_xyz)

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

 



Hi Jackie,

Thank you for the patch,

I think this supercedes the other attempts to fix this issue because
this fix mirrors the actual change which occured in the /proc/mounts
output (fs/proc_namespace.c::show_sb_opts), which is the equivalent
usage of the code here.

I've now managed to resurrect my GDB testing environment, and I've
tested that this patch works - and the lx-mounts command which this
specifically affects is functioning.


On 05/03/2019 01:53, Jackie Liu wrote:
> Since commit 1751e8a6cb93 ("Rename superblock flags (MS_xyz -> SB_xyz)"),
> script/gdb need replace MS_xyz to SB_xyz.
> 
> Fix follow problem:
> root@localhost:/data# gdb -q vmlinux
> Reading symbols from vmlinux...done.
> Traceback (most recent call last):
>   File "/data/vmlinux-gdb.py", line 32, in <module>
>     import linux.proc
>   File "/data/scripts/gdb/linux/proc.py", line 15, in <module>
>     from linux import constants
>   File "/data/scripts/gdb/linux/constants.py", line 2, in <module>
>     LX_SB_RDONLY = MS_RDONLY
> NameError: name 'MS_RDONLY' is not defined
> (gdb)
> 
> Cc: <stable@xxxxxxxxxxxxxxx>

There should be a Fixes tag here, The point of breakage is:

Fixes: e262e32d6bde "vfs: Suppress MS_* flag defs within the kernel
unless explicitly enabled"


I'd like to update the commit message to the following:

> 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.

I will repost a v3 with that change, along with my SoB, and retaining
your authorship - and ask Andrew to collect the patch.

--

Regards

Kieran


> Tested-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> Signed-off-by: Jackie Liu <liuyun01@xxxxxxxxxx>
> ---
>  scripts/gdb/linux/constants.py.in | 12 ++++++------
>  scripts/gdb/linux/proc.py         | 12 ++++++------
>  2 files changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/scripts/gdb/linux/constants.py.in b/scripts/gdb/linux/constants.py.in
> index 7aad82406422..d3319a80788a 100644
> --- a/scripts/gdb/linux/constants.py.in
> +++ b/scripts/gdb/linux/constants.py.in
> @@ -37,12 +37,12 @@
>  import gdb
>  
>  /* linux/fs.h */
> -LX_VALUE(MS_RDONLY)
> -LX_VALUE(MS_SYNCHRONOUS)
> -LX_VALUE(MS_MANDLOCK)
> -LX_VALUE(MS_DIRSYNC)
> -LX_VALUE(MS_NOATIME)
> -LX_VALUE(MS_NODIRATIME)
> +LX_VALUE(SB_RDONLY)
> +LX_VALUE(SB_SYNCHRONOUS)
> +LX_VALUE(SB_MANDLOCK)
> +LX_VALUE(SB_DIRSYNC)
> +LX_VALUE(SB_NOATIME)
> +LX_VALUE(SB_NODIRATIME)
>  
>  /* linux/mount.h */
>  LX_VALUE(MNT_NOSUID)
> diff --git a/scripts/gdb/linux/proc.py b/scripts/gdb/linux/proc.py
> index 0aebd7565b03..2f01a958eb22 100644
> --- a/scripts/gdb/linux/proc.py
> +++ b/scripts/gdb/linux/proc.py
> @@ -114,11 +114,11 @@ def info_opts(lst, opt):
>      return opts
>  
>  
> -FS_INFO = {constants.LX_MS_SYNCHRONOUS: ",sync",
> -           constants.LX_MS_MANDLOCK: ",mand",
> -           constants.LX_MS_DIRSYNC: ",dirsync",
> -           constants.LX_MS_NOATIME: ",noatime",
> -           constants.LX_MS_NODIRATIME: ",nodiratime"}
> +FS_INFO = {constants.LX_SB_SYNCHRONOUS: ",sync",
> +           constants.LX_SB_MANDLOCK: ",mand",
> +           constants.LX_SB_DIRSYNC: ",dirsync",
> +           constants.LX_SB_NOATIME: ",noatime",
> +           constants.LX_SB_NODIRATIME: ",nodiratime"}
>  
>  MNT_INFO = {constants.LX_MNT_NOSUID: ",nosuid",
>              constants.LX_MNT_NODEV: ",nodev",
> @@ -184,7 +184,7 @@ values of that process namespace"""
>              fstype = superblock['s_type']['name'].string()
>              s_flags = int(superblock['s_flags'])
>              m_flags = int(vfs['mnt']['mnt_flags'])
> -            rd = "ro" if (s_flags & constants.LX_MS_RDONLY) else "rw"
> +            rd = "ro" if (s_flags & constants.LX_SB_RDONLY) else "rw"
>  
>              gdb.write(
>                  "{} {} {} {}{}{} 0 0\n"
> 


-- 
--
Kieran



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux