Message ID | 20210309155348.974875-4-hch@lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/9] fs: rename alloc_anon_inode to alloc_anon_inode_sb | expand |
On 09.03.21 16:53, Christoph Hellwig wrote: > Just use the generic anon_inode file system. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > arch/powerpc/platforms/pseries/cmm.c | 27 ++------------------------- > 1 file changed, 2 insertions(+), 25 deletions(-) > > diff --git a/arch/powerpc/platforms/pseries/cmm.c b/arch/powerpc/platforms/pseries/cmm.c > index 6d36b858b14df1..9d07e6bea7126c 100644 > --- a/arch/powerpc/platforms/pseries/cmm.c > +++ b/arch/powerpc/platforms/pseries/cmm.c > @@ -6,6 +6,7 @@ > * Author(s): Brian King (brking@linux.vnet.ibm.com), > */ > > +#include <linux/anon_inodes.h> > #include <linux/ctype.h> > #include <linux/delay.h> > #include <linux/errno.h> > @@ -502,19 +503,6 @@ static struct notifier_block cmm_mem_nb = { > }; > > #ifdef CONFIG_BALLOON_COMPACTION > -static struct vfsmount *balloon_mnt; > - > -static int cmm_init_fs_context(struct fs_context *fc) > -{ > - return init_pseudo(fc, PPC_CMM_MAGIC) ? 0 : -ENOMEM; > -} > - > -static struct file_system_type balloon_fs = { > - .name = "ppc-cmm", > - .init_fs_context = cmm_init_fs_context, > - .kill_sb = kill_anon_super, > -}; > - > static int cmm_migratepage(struct balloon_dev_info *b_dev_info, > struct page *newpage, struct page *page, > enum migrate_mode mode) > @@ -573,19 +561,10 @@ static int cmm_balloon_compaction_init(void) > balloon_devinfo_init(&b_dev_info); > b_dev_info.migratepage = cmm_migratepage; > > - balloon_mnt = kern_mount(&balloon_fs); > - if (IS_ERR(balloon_mnt)) { > - rc = PTR_ERR(balloon_mnt); > - balloon_mnt = NULL; > - return rc; > - } > - > - b_dev_info.inode = alloc_anon_inode_sb(balloon_mnt->mnt_sb); > + b_dev_info.inode = alloc_anon_inode(); > if (IS_ERR(b_dev_info.inode)) { > rc = PTR_ERR(b_dev_info.inode); > b_dev_info.inode = NULL; > - kern_unmount(balloon_mnt); > - balloon_mnt = NULL; > return rc; > } > > @@ -597,8 +576,6 @@ static void cmm_balloon_compaction_deinit(void) > if (b_dev_info.inode) > iput(b_dev_info.inode); > b_dev_info.inode = NULL; > - kern_unmount(balloon_mnt); > - balloon_mnt = NULL; > } > #else /* CONFIG_BALLOON_COMPACTION */ > static int cmm_balloon_compaction_init(void) > I always wondered why that was necessary after all (with my limited fs knowledge :) ). a) I assume you want to remove PPC_CMM_MAGIC from include/uapi/linux/magic.h as well? b) Do we still need #include <linux/magic.h>, #include <linux/mount.h> and #include <linux/pseudo_fs.h>? Apart from that looks much cleaner.
On Tue, Mar 09, 2021 at 04:53:42PM +0100, Christoph Hellwig wrote: > Just use the generic anon_inode file system. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > arch/powerpc/platforms/pseries/cmm.c | 27 ++------------------------- > 1 file changed, 2 insertions(+), 25 deletions(-) > > diff --git a/arch/powerpc/platforms/pseries/cmm.c b/arch/powerpc/platforms/pseries/cmm.c > index 6d36b858b14df1..9d07e6bea7126c 100644 > +++ b/arch/powerpc/platforms/pseries/cmm.c > @@ -6,6 +6,7 @@ > * Author(s): Brian King (brking@linux.vnet.ibm.com), > */ > > +#include <linux/anon_inodes.h> > #include <linux/ctype.h> > #include <linux/delay.h> > #include <linux/errno.h> > @@ -502,19 +503,6 @@ static struct notifier_block cmm_mem_nb = { > }; > > #ifdef CONFIG_BALLOON_COMPACTION > -static struct vfsmount *balloon_mnt; > - > -static int cmm_init_fs_context(struct fs_context *fc) > -{ > - return init_pseudo(fc, PPC_CMM_MAGIC) ? 0 : -ENOMEM; Should we clean these unusued magic constants too? include/uapi/linux/magic.h:#define PPC_CMM_MAGIC 0xc7571590 Jason
On Tue, Mar 09, 2021 at 04:53:42PM +0100, Christoph Hellwig wrote:
> Just use the generic anon_inode file system.
Umm... The only problem I see here is the lifetime rules for
that module, and that's not something introduced in this patchset.
Said that, looks like the logics around that place is duplicated in
cmm.c, vmw_balloon.c and virtion_balloon.c and I wonder if it would
be better off with a helper in mm/balloon.c to be used for that setup...
On Wed, Mar 10, 2021 at 04:29:51PM +0000, Al Viro wrote: > On Tue, Mar 09, 2021 at 04:53:42PM +0100, Christoph Hellwig wrote: > > Just use the generic anon_inode file system. > > Umm... The only problem I see here is the lifetime rules for > that module, and that's not something introduced in this patchset. > Said that, looks like the logics around that place is duplicated in > cmm.c, vmw_balloon.c and virtion_balloon.c and I wonder if it would > be better off with a helper in mm/balloon.c to be used for that setup... Independ of all other discussions untangling that mess does seem very useful.
diff --git a/arch/powerpc/platforms/pseries/cmm.c b/arch/powerpc/platforms/pseries/cmm.c index 6d36b858b14df1..9d07e6bea7126c 100644 --- a/arch/powerpc/platforms/pseries/cmm.c +++ b/arch/powerpc/platforms/pseries/cmm.c @@ -6,6 +6,7 @@ * Author(s): Brian King (brking@linux.vnet.ibm.com), */ +#include <linux/anon_inodes.h> #include <linux/ctype.h> #include <linux/delay.h> #include <linux/errno.h> @@ -502,19 +503,6 @@ static struct notifier_block cmm_mem_nb = { }; #ifdef CONFIG_BALLOON_COMPACTION -static struct vfsmount *balloon_mnt; - -static int cmm_init_fs_context(struct fs_context *fc) -{ - return init_pseudo(fc, PPC_CMM_MAGIC) ? 0 : -ENOMEM; -} - -static struct file_system_type balloon_fs = { - .name = "ppc-cmm", - .init_fs_context = cmm_init_fs_context, - .kill_sb = kill_anon_super, -}; - static int cmm_migratepage(struct balloon_dev_info *b_dev_info, struct page *newpage, struct page *page, enum migrate_mode mode) @@ -573,19 +561,10 @@ static int cmm_balloon_compaction_init(void) balloon_devinfo_init(&b_dev_info); b_dev_info.migratepage = cmm_migratepage; - balloon_mnt = kern_mount(&balloon_fs); - if (IS_ERR(balloon_mnt)) { - rc = PTR_ERR(balloon_mnt); - balloon_mnt = NULL; - return rc; - } - - b_dev_info.inode = alloc_anon_inode_sb(balloon_mnt->mnt_sb); + b_dev_info.inode = alloc_anon_inode(); if (IS_ERR(b_dev_info.inode)) { rc = PTR_ERR(b_dev_info.inode); b_dev_info.inode = NULL; - kern_unmount(balloon_mnt); - balloon_mnt = NULL; return rc; } @@ -597,8 +576,6 @@ static void cmm_balloon_compaction_deinit(void) if (b_dev_info.inode) iput(b_dev_info.inode); b_dev_info.inode = NULL; - kern_unmount(balloon_mnt); - balloon_mnt = NULL; } #else /* CONFIG_BALLOON_COMPACTION */ static int cmm_balloon_compaction_init(void)
Just use the generic anon_inode file system. Signed-off-by: Christoph Hellwig <hch@lst.de> --- arch/powerpc/platforms/pseries/cmm.c | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-)