* [PATCH] mm/shmem.c: make shmem_mapping() inline
@ 2020-11-13 13:54 Hui Su
2020-11-13 15:14 ` Pankaj Gupta
2020-11-13 16:54 ` kernel test robot
0 siblings, 2 replies; 4+ messages in thread
From: Hui Su @ 2020-11-13 13:54 UTC (permalink / raw)
To: hughd, akpm, linux-mm, linux-kernel; +Cc: sh_def
inline the shmem_mapping(), and use shmem_mapping()
instead of 'inode->i_mapping->a_ops == &shmem_aops'
in shmem_evict_inode().
Signed-off-by: Hui Su <sh_def@163.com>
---
include/linux/shmem_fs.h | 2 +-
mm/shmem.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h
index a5a5d1d4d7b1..154a16fe7fd5 100644
--- a/include/linux/shmem_fs.h
+++ b/include/linux/shmem_fs.h
@@ -67,7 +67,7 @@ extern unsigned long shmem_get_unmapped_area(struct file *, unsigned long addr,
unsigned long len, unsigned long pgoff, unsigned long flags);
extern int shmem_lock(struct file *file, int lock, struct user_struct *user);
#ifdef CONFIG_SHMEM
-extern bool shmem_mapping(struct address_space *mapping);
+extern inline bool shmem_mapping(struct address_space *mapping);
#else
static inline bool shmem_mapping(struct address_space *mapping)
{
diff --git a/mm/shmem.c b/mm/shmem.c
index 537c137698f8..7395d8e8226a 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1152,7 +1152,7 @@ static void shmem_evict_inode(struct inode *inode)
struct shmem_inode_info *info = SHMEM_I(inode);
struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
- if (inode->i_mapping->a_ops == &shmem_aops) {
+ if (shmem_mapping(inode->i_mapping)) {
shmem_unacct_size(info->flags, inode->i_size);
inode->i_size = 0;
shmem_truncate_range(inode, 0, (loff_t)-1);
@@ -2352,7 +2352,7 @@ static struct inode *shmem_get_inode(struct super_block *sb, const struct inode
return inode;
}
-bool shmem_mapping(struct address_space *mapping)
+inline bool shmem_mapping(struct address_space *mapping)
{
return mapping->a_ops == &shmem_aops;
}
--
2.29.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] mm/shmem.c: make shmem_mapping() inline
2020-11-13 13:54 [PATCH] mm/shmem.c: make shmem_mapping() inline Hui Su
@ 2020-11-13 15:14 ` Pankaj Gupta
2020-11-13 16:54 ` kernel test robot
1 sibling, 0 replies; 4+ messages in thread
From: Pankaj Gupta @ 2020-11-13 15:14 UTC (permalink / raw)
To: Hui Su; +Cc: Hugh Dickins, Andrew Morton, Linux MM, LKML
> inline the shmem_mapping(), and use shmem_mapping()
> instead of 'inode->i_mapping->a_ops == &shmem_aops'
> in shmem_evict_inode().
>
> Signed-off-by: Hui Su <sh_def@163.com>
> ---
> include/linux/shmem_fs.h | 2 +-
> mm/shmem.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h
> index a5a5d1d4d7b1..154a16fe7fd5 100644
> --- a/include/linux/shmem_fs.h
> +++ b/include/linux/shmem_fs.h
> @@ -67,7 +67,7 @@ extern unsigned long shmem_get_unmapped_area(struct file *, unsigned long addr,
> unsigned long len, unsigned long pgoff, unsigned long flags);
> extern int shmem_lock(struct file *file, int lock, struct user_struct *user);
> #ifdef CONFIG_SHMEM
> -extern bool shmem_mapping(struct address_space *mapping);
> +extern inline bool shmem_mapping(struct address_space *mapping);
> #else
> static inline bool shmem_mapping(struct address_space *mapping)
> {
> diff --git a/mm/shmem.c b/mm/shmem.c
> index 537c137698f8..7395d8e8226a 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -1152,7 +1152,7 @@ static void shmem_evict_inode(struct inode *inode)
> struct shmem_inode_info *info = SHMEM_I(inode);
> struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
>
> - if (inode->i_mapping->a_ops == &shmem_aops) {
> + if (shmem_mapping(inode->i_mapping)) {
> shmem_unacct_size(info->flags, inode->i_size);
> inode->i_size = 0;
> shmem_truncate_range(inode, 0, (loff_t)-1);
> @@ -2352,7 +2352,7 @@ static struct inode *shmem_get_inode(struct super_block *sb, const struct inode
> return inode;
> }
>
> -bool shmem_mapping(struct address_space *mapping)
> +inline bool shmem_mapping(struct address_space *mapping)
> {
> return mapping->a_ops == &shmem_aops;
> }
Reviewed-by: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] mm/shmem.c: make shmem_mapping() inline
2020-11-13 13:54 [PATCH] mm/shmem.c: make shmem_mapping() inline Hui Su
2020-11-13 15:14 ` Pankaj Gupta
@ 2020-11-13 16:54 ` kernel test robot
2020-11-14 5:47 ` Hui Su
1 sibling, 1 reply; 4+ messages in thread
From: kernel test robot @ 2020-11-13 16:54 UTC (permalink / raw)
To: Hui Su, hughd, akpm, linux-mm, linux-kernel; +Cc: kbuild-all, sh_def
[-- Attachment #1: Type: text/plain, Size: 3797 bytes --]
Hi Hui,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on mmotm/master]
url: https://github.com/0day-ci/linux/commits/Hui-Su/mm-shmem-c-make-shmem_mapping-inline/20201113-215549
base: git://git.cmpxchg.org/linux-mmotm.git master
config: arm-randconfig-s032-20201113 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-107-gaf3512a6-dirty
# https://github.com/0day-ci/linux/commit/0434762d5523a3d702cd589a7f8e3771fee7b3b2
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Hui-Su/mm-shmem-c-make-shmem_mapping-inline/20201113-215549
git checkout 0434762d5523a3d702cd589a7f8e3771fee7b3b2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
"sparse warnings: (new ones prefixed by >>)"
mm/filemap.c: note: in included file:
>> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
>> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
>> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
--
mm/truncate.c: note: in included file:
>> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
>> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
>> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
--
mm/memfd.c: note: in included file:
>> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
vim +66 include/linux/shmem_fs.h
48
49 /*
50 * Functions in mm/shmem.c called directly from elsewhere:
51 */
52 extern const struct fs_parameter_description shmem_fs_parameters;
53 extern int shmem_init(void);
54 extern int shmem_init_fs_context(struct fs_context *fc);
55 extern struct file *shmem_file_setup(const char *name,
56 loff_t size, unsigned long flags);
57 extern struct file *shmem_kernel_file_setup(const char *name, loff_t size,
58 unsigned long flags);
59 extern struct file *shmem_file_setup_with_mnt(struct vfsmount *mnt,
60 const char *name, loff_t size, unsigned long flags);
61 extern int shmem_zero_setup(struct vm_area_struct *);
62 extern unsigned long shmem_get_unmapped_area(struct file *, unsigned long addr,
63 unsigned long len, unsigned long pgoff, unsigned long flags);
64 extern int shmem_lock(struct file *file, int lock, struct user_struct *user);
65 #ifdef CONFIG_SHMEM
> 66 extern inline bool shmem_mapping(struct address_space *mapping);
67 #else
68 static inline bool shmem_mapping(struct address_space *mapping)
69 {
70 return false;
71 }
72 #endif /* CONFIG_SHMEM */
73 extern void shmem_unlock_mapping(struct address_space *mapping);
74 extern struct page *shmem_read_mapping_page_gfp(struct address_space *mapping,
75 pgoff_t index, gfp_t gfp_mask);
76 extern void shmem_truncate_range(struct inode *inode, loff_t start, loff_t end);
77 extern int shmem_unuse(unsigned int type, bool frontswap,
78 unsigned long *fs_pages_to_unuse);
79
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 20182 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] mm/shmem.c: make shmem_mapping() inline
2020-11-13 16:54 ` kernel test robot
@ 2020-11-14 5:47 ` Hui Su
0 siblings, 0 replies; 4+ messages in thread
From: Hui Su @ 2020-11-14 5:47 UTC (permalink / raw)
To: kernel test robot, hughd, akpm, linux-mm, linux-kernel,
kbuild-all
On Sat, Nov 14, 2020 at 12:54:47AM +0800, kernel test robot wrote:
> Hi Hui,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on mmotm/master]
>
> url: https://github.com/0day-ci/linux/commits/Hui-Su/mm-shmem-c-make-shmem_mapping-inline/20201113-215549
> base: git://git.cmpxchg.org/linux-mmotm.git master
> config: arm-randconfig-s032-20201113 (attached as .config)
> compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # apt-get install sparse
> # sparse version: v0.6.3-107-gaf3512a6-dirty
> # https://github.com/0day-ci/linux/commit/0434762d5523a3d702cd589a7f8e3771fee7b3b2
> git remote add linux-review https://github.com/0day-ci/linux
> git fetch --no-tags linux-review Hui-Su/mm-shmem-c-make-shmem_mapping-inline/20201113-215549
> git checkout 0434762d5523a3d702cd589a7f8e3771fee7b3b2
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arm
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
>
> "sparse warnings: (new ones prefixed by >>)"
> mm/filemap.c: note: in included file:
> >> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
> >> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
> >> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
> --
> mm/truncate.c: note: in included file:
> >> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
> >> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
> >> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
> --
> mm/memfd.c: note: in included file:
> >> include/linux/shmem_fs.h:66:33: sparse: sparse: marked inline, but without a definition
>
> vim +66 include/linux/shmem_fs.h
>
> 48
> 49 /*
> 50 * Functions in mm/shmem.c called directly from elsewhere:
> 51 */
> 52 extern const struct fs_parameter_description shmem_fs_parameters;
> 53 extern int shmem_init(void);
> 54 extern int shmem_init_fs_context(struct fs_context *fc);
> 55 extern struct file *shmem_file_setup(const char *name,
> 56 loff_t size, unsigned long flags);
> 57 extern struct file *shmem_kernel_file_setup(const char *name, loff_t size,
> 58 unsigned long flags);
> 59 extern struct file *shmem_file_setup_with_mnt(struct vfsmount *mnt,
> 60 const char *name, loff_t size, unsigned long flags);
> 61 extern int shmem_zero_setup(struct vm_area_struct *);
> 62 extern unsigned long shmem_get_unmapped_area(struct file *, unsigned long addr,
> 63 unsigned long len, unsigned long pgoff, unsigned long flags);
> 64 extern int shmem_lock(struct file *file, int lock, struct user_struct *user);
> 65 #ifdef CONFIG_SHMEM
> > 66 extern inline bool shmem_mapping(struct address_space *mapping);
> 67 #else
> 68 static inline bool shmem_mapping(struct address_space *mapping)
> 69 {
> 70 return false;
> 71 }
> 72 #endif /* CONFIG_SHMEM */
> 73 extern void shmem_unlock_mapping(struct address_space *mapping);
> 74 extern struct page *shmem_read_mapping_page_gfp(struct address_space *mapping,
> 75 pgoff_t index, gfp_t gfp_mask);
> 76 extern void shmem_truncate_range(struct inode *inode, loff_t start, loff_t end);
> 77 extern int shmem_unuse(unsigned int type, bool frontswap,
> 78 unsigned long *fs_pages_to_unuse);
> 79
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Thanks for your test.
I will resend a PATCH V2 later.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-11-14 5:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-13 13:54 [PATCH] mm/shmem.c: make shmem_mapping() inline Hui Su
2020-11-13 15:14 ` Pankaj Gupta
2020-11-13 16:54 ` kernel test robot
2020-11-14 5:47 ` Hui Su
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).