diff options
author | Christoph Hellwig <hch@lst.de> | 2008-02-25 18:58:36 +0100 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2008-03-31 10:41:17 +0100 |
commit | 7dc2cf1c8ffbd471722f1aa479bc68d4df1c9edc (patch) | |
tree | 68a9aca21c277db3d5223a12b61600b8a33bd7c0 /fs | |
parent | 9b8c81d1de49943ec69d157234b8981008c30d31 (diff) | |
download | op-kernel-dev-7dc2cf1c8ffbd471722f1aa479bc68d4df1c9edc.zip op-kernel-dev-7dc2cf1c8ffbd471722f1aa479bc68d4df1c9edc.tar.gz |
[GFS2] fix file_system_type leak on gfs2meta mount
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 <hch@lst.de>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/gfs2/ops_fstype.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index c4b7a21..63d5fd2 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c @@ -943,7 +943,6 @@ static struct super_block* get_gfs2_sb(const char *dev_name) { struct kstat stat; struct nameidata nd; - struct file_system_type *fstype; struct super_block *sb = NULL, *s; int error; @@ -955,8 +954,7 @@ static struct super_block* get_gfs2_sb(const char *dev_name) } 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)) { |