Hi, Now in the -nmw git tree. Thanks,
Steve. On Mon, 2008-02-25 at 18:58 +0100, Christoph Hellwig wrote: > 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 <[EMAIL PROTECTED]> > > 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)) {