On 2024/06/12 15:34, lijiang wrote:
      >     --- a/memory.c
      >     +++ b/memory.c
      >     @@ -16075,6 +16075,8 @@ dump_swap_info(ulong swapflags, ulong
*totalswap_pages, ulong *totalused_pages)
      >              char buf3[BUFSIZE];
      >              char buf4[BUFSIZE];
      >              char buf5[BUFSIZE];
      >     +       int swap_file_is_file =
      >     +               STREQ(MEMBER_TYPE_NAME("swap_info_struct",
"swap_file"), "file");
      >
      >
      > This patch looks good, but I still have one question:
      > The 'swap_file' has been added into the struct swap_info_struct since
linux v2.6.12-rc2,
      > and until now it(its type) has been never changed, it indicates that the above
checking is always true.
      >
      > STREQ(MEMBER_TYPE_NAME("swap_info_struct", "swap_file"),
"file")
      >
      > Is that expected behavior? Just want to confirm with you.
 
     Yes.
 
 
 Thank you for the confirmation, and explanation below, Kazu.
 
     As far as I checked, swap_file was changed from 'dentry *' to 'file
*'
     at somewhere between v2.4.0 and v2.6.0, so not always true.
 
   Seems no full history in linux github. I checked it from the linux initial git repo:
 
 commit 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (tag: v2.6.12-rc2)
 Author: Linus Torvalds <torvalds(a)ppc970.osdl.org
<mailto:torvalds@ppc970.osdl.org>>
 Date:   Sat Apr 16 15:20:36 2005 -0700
 
      Linux-2.6.12-rc2
 
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
 
      Let it rip!
 
 
     get_pathname()'s first arg is dentry, we have to choose the else-if block
     without old_block_size, so I decided to use its type information directly
 
                               } else if (VALID_MEMBER(swap_info_struct_old_block_size)
||
                                           swap_file_is_file) {
 
     The other if / else blocks are for very old kernels, so maybe they won't
     be used, but if we don't remove these, I think this is a reasonable way.
 
 Sounds good to me.
 
     Does this answer your question?
 
 Yes. Thank you, Kazu. I have no other issues. For the patch: Ack.
 
Good, thank you for your ack.
btw, I forgot to add the From: line below to the commit log, it would be
helpful if you would add this when merging:
From: Kazuhito Hagio <k-hagio-ab(a)nec.com>
Thanks,
Kazu