From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Date: Mon, 25 Feb 2008 18:58:36 +0100 Subject: [Cluster-devel] [PATCH] gfs2: fix file_system_type leak on gfs2meta mount Message-ID: <20080225175836.GA27910@lst.de> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit get_gfs2_sb does a get_fs_type without doing a put_filesystem and thus leaking a file_system_type reference everytime it's called. Just use gfs2_fs_type directly instead of doing the lookup and thus fix the problem. Signed-off-by: Christoph Hellwig Index: linux-2.6/fs/gfs2/ops_fstype.c =================================================================== --- linux-2.6.orig/fs/gfs2/ops_fstype.c 2008-02-25 18:53:11.000000000 +0100 +++ linux-2.6/fs/gfs2/ops_fstype.c 2008-02-25 18:53:36.000000000 +0100 @@ -874,7 +874,6 @@ static struct super_block* get_gfs2_sb(c { struct kstat stat; struct nameidata nd; - struct file_system_type *fstype; struct super_block *sb = NULL, *s; int error; @@ -886,8 +885,7 @@ static struct super_block* get_gfs2_sb(c } error = vfs_getattr(nd.path.mnt, nd.path.dentry, &stat); - fstype = get_fs_type("gfs2"); - list_for_each_entry(s, &fstype->fs_supers, s_instances) { + list_for_each_entry(s, &gfs2_fs_type.fs_supers, s_instances) { if ((S_ISBLK(stat.mode) && s->s_dev == stat.rdev) || (S_ISDIR(stat.mode) && s == nd.path.dentry->d_inode->i_sb)) {