From 24edb2ac48e6576cd91d2ef446983f0a0e75bef2 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Wed, 26 Apr 2006 10:49:16 +0200 Subject: [PATCH] --- yaml --- r: 26179 b: refs/heads/master c: 8aa09a50b5d9dbdf627f79e19d72d82994348089 h: refs/heads/master i: 26177: 3eab390a5d0fe90a8a5530953050d4c3e58dfde1 26175: 9db4168695598cf903a2af173e86e9c1cb978112 v: v3 --- [refs] | 2 +- trunk/fs/fuse/inode.c | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index b8789b0b498e..42c7e5800eba 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6dbbcb120570d747b00783820ee02d1e1bcf63de +refs/heads/master: 8aa09a50b5d9dbdf627f79e19d72d82994348089 diff --git a/trunk/fs/fuse/inode.c b/trunk/fs/fuse/inode.c index fd34037b0588..7627022446b2 100644 --- a/trunk/fs/fuse/inode.c +++ b/trunk/fs/fuse/inode.c @@ -500,11 +500,6 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent) if (file->f_op != &fuse_dev_operations) return -EINVAL; - /* Setting file->private_data can't race with other mount() - instances, since BKL is held for ->get_sb() */ - if (file->private_data) - return -EINVAL; - fc = new_conn(); if (!fc) return -ENOMEM; @@ -540,6 +535,12 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent) if (err) goto err_free_req; + /* Setting file->private_data can't race with other mount() + instances, since BKL is held for ->get_sb() */ + err = -EINVAL; + if (file->private_data) + goto err_kobject_del; + sb->s_root = root_dentry; fc->mounted = 1; fc->connected = 1; @@ -556,6 +557,8 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent) return 0; + err_kobject_del: + kobject_del(&fc->kobj); err_free_req: fuse_request_free(init_req); err_put_root: