diff options
Diffstat (limited to 'ipc/mqueue.c')
-rw-r--r-- | ipc/mqueue.c | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index 86ee272de210..28bd64ddeda3 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c | |||
@@ -188,30 +188,20 @@ static int mqueue_fill_super(struct super_block *sb, void *data, int silent) | |||
188 | { | 188 | { |
189 | struct inode *inode; | 189 | struct inode *inode; |
190 | struct ipc_namespace *ns = data; | 190 | struct ipc_namespace *ns = data; |
191 | int error; | ||
192 | 191 | ||
193 | sb->s_blocksize = PAGE_CACHE_SIZE; | 192 | sb->s_blocksize = PAGE_CACHE_SIZE; |
194 | sb->s_blocksize_bits = PAGE_CACHE_SHIFT; | 193 | sb->s_blocksize_bits = PAGE_CACHE_SHIFT; |
195 | sb->s_magic = MQUEUE_MAGIC; | 194 | sb->s_magic = MQUEUE_MAGIC; |
196 | sb->s_op = &mqueue_super_ops; | 195 | sb->s_op = &mqueue_super_ops; |
197 | 196 | ||
198 | inode = mqueue_get_inode(sb, ns, S_IFDIR | S_ISVTX | S_IRWXUGO, | 197 | inode = mqueue_get_inode(sb, ns, S_IFDIR | S_ISVTX | S_IRWXUGO, NULL); |
199 | NULL); | 198 | if (IS_ERR(inode)) |
200 | if (IS_ERR(inode)) { | 199 | return PTR_ERR(inode); |
201 | error = PTR_ERR(inode); | ||
202 | goto out; | ||
203 | } | ||
204 | 200 | ||
205 | sb->s_root = d_alloc_root(inode); | 201 | sb->s_root = d_make_root(inode); |
206 | if (!sb->s_root) { | 202 | if (!sb->s_root) |
207 | iput(inode); | 203 | return -ENOMEM; |
208 | error = -ENOMEM; | 204 | return 0; |
209 | goto out; | ||
210 | } | ||
211 | error = 0; | ||
212 | |||
213 | out: | ||
214 | return error; | ||
215 | } | 205 | } |
216 | 206 | ||
217 | static struct dentry *mqueue_mount(struct file_system_type *fs_type, | 207 | static struct dentry *mqueue_mount(struct file_system_type *fs_type, |