diff options
Diffstat (limited to 'fs/afs/super.c')
-rw-r--r-- | fs/afs/super.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/fs/afs/super.c b/fs/afs/super.c index 93a7821db0d7..67d1f5c819ec 100644 --- a/fs/afs/super.c +++ b/fs/afs/super.c | |||
@@ -38,9 +38,9 @@ struct afs_mount_params { | |||
38 | static void afs_i_init_once(void *foo, kmem_cache_t *cachep, | 38 | static void afs_i_init_once(void *foo, kmem_cache_t *cachep, |
39 | unsigned long flags); | 39 | unsigned long flags); |
40 | 40 | ||
41 | static struct super_block *afs_get_sb(struct file_system_type *fs_type, | 41 | static int afs_get_sb(struct file_system_type *fs_type, |
42 | int flags, const char *dev_name, | 42 | int flags, const char *dev_name, |
43 | void *data); | 43 | void *data, struct vfsmount *mnt); |
44 | 44 | ||
45 | static struct inode *afs_alloc_inode(struct super_block *sb); | 45 | static struct inode *afs_alloc_inode(struct super_block *sb); |
46 | 46 | ||
@@ -294,10 +294,11 @@ static int afs_fill_super(struct super_block *sb, void *data, int silent) | |||
294 | * get an AFS superblock | 294 | * get an AFS superblock |
295 | * - TODO: don't use get_sb_nodev(), but rather call sget() directly | 295 | * - TODO: don't use get_sb_nodev(), but rather call sget() directly |
296 | */ | 296 | */ |
297 | static struct super_block *afs_get_sb(struct file_system_type *fs_type, | 297 | static int afs_get_sb(struct file_system_type *fs_type, |
298 | int flags, | 298 | int flags, |
299 | const char *dev_name, | 299 | const char *dev_name, |
300 | void *options) | 300 | void *options, |
301 | struct vfsmount *mnt) | ||
301 | { | 302 | { |
302 | struct afs_mount_params params; | 303 | struct afs_mount_params params; |
303 | struct super_block *sb; | 304 | struct super_block *sb; |
@@ -311,7 +312,7 @@ static struct super_block *afs_get_sb(struct file_system_type *fs_type, | |||
311 | ret = afscm_start(); | 312 | ret = afscm_start(); |
312 | if (ret < 0) { | 313 | if (ret < 0) { |
313 | _leave(" = %d", ret); | 314 | _leave(" = %d", ret); |
314 | return ERR_PTR(ret); | 315 | return ret; |
315 | } | 316 | } |
316 | 317 | ||
317 | /* parse the options */ | 318 | /* parse the options */ |
@@ -348,18 +349,19 @@ static struct super_block *afs_get_sb(struct file_system_type *fs_type, | |||
348 | goto error; | 349 | goto error; |
349 | } | 350 | } |
350 | sb->s_flags |= MS_ACTIVE; | 351 | sb->s_flags |= MS_ACTIVE; |
352 | simple_set_mnt(mnt, sb); | ||
351 | 353 | ||
352 | afs_put_volume(params.volume); | 354 | afs_put_volume(params.volume); |
353 | afs_put_cell(params.default_cell); | 355 | afs_put_cell(params.default_cell); |
354 | _leave(" = %p", sb); | 356 | _leave(" = 0 [%p]", 0, sb); |
355 | return sb; | 357 | return 0; |
356 | 358 | ||
357 | error: | 359 | error: |
358 | afs_put_volume(params.volume); | 360 | afs_put_volume(params.volume); |
359 | afs_put_cell(params.default_cell); | 361 | afs_put_cell(params.default_cell); |
360 | afscm_stop(); | 362 | afscm_stop(); |
361 | _leave(" = %d", ret); | 363 | _leave(" = %d", ret); |
362 | return ERR_PTR(ret); | 364 | return ret; |
363 | } /* end afs_get_sb() */ | 365 | } /* end afs_get_sb() */ |
364 | 366 | ||
365 | /*****************************************************************************/ | 367 | /*****************************************************************************/ |