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 | /*****************************************************************************/ |
