Messages in this thread | | | Date | Thu, 31 Jul 2014 22:03:52 -0700 (PDT) | From | Hugh Dickins <> | Subject | Re: [PATCH 3/5] mm, shmem: Add shmem_vma() helper |
| |
On Tue, 22 Jul 2014, Jerome Marchand wrote:
> Add a simple helper to check if a vm area belongs to shmem. > > Signed-off-by: Jerome Marchand <jmarchan@redhat.com> > --- > include/linux/mm.h | 6 ++++++ > mm/shmem.c | 8 ++++++++ > 2 files changed, 14 insertions(+) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 34099fa..04a58d1 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -1074,11 +1074,17 @@ int shmem_zero_setup(struct vm_area_struct *); > > extern int shmem_locate(struct vm_area_struct *vma, pgoff_t pgoff, int *count); > bool shmem_mapping(struct address_space *mapping); > +bool shmem_vma(struct vm_area_struct *vma); > + > #else > static inline bool shmem_mapping(struct address_space *mapping) > { > return false; > } > +static inline bool shmem_vma(struct vm_area_struct *vma) > +{ > + return false; > +} > #endif
I would prefer include/linux/shmem_fs.h for this (and one of us clean up where the declarations of shmem_zero_setup and shmem_mapping live).
But if 4/5 goes away, then there will only be one user of shmem_vma(), so in that case better just declare it (using shmem_mapping()) there in task_mmu.c in the smaps patch.
> > extern int can_do_mlock(void); > diff --git a/mm/shmem.c b/mm/shmem.c > index 8aa4892..7d16227 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -1483,6 +1483,14 @@ bool shmem_mapping(struct address_space *mapping) > return mapping->backing_dev_info == &shmem_backing_dev_info; > } > > +bool shmem_vma(struct vm_area_struct *vma) > +{ > + return (vma->vm_file && > + vma->vm_file->f_dentry->d_inode->i_mapping->backing_dev_info > + == &shmem_backing_dev_info); > +
I agree with Oleg, vma->vm_file && shmem_mapping(file_inode(vma->vm_file)->i_mapping); would be better,
Hugh
| |