|
@@ -29,9 +29,8 @@
|
|
|
#define AFS_FS_MAGIC 0x6B414653 /* 'kAFS' */
|
|
|
|
|
|
static void afs_i_init_once(void *foo);
|
|
|
-static int afs_get_sb(struct file_system_type *fs_type,
|
|
|
- int flags, const char *dev_name,
|
|
|
- void *data, struct vfsmount *mnt);
|
|
|
+static struct dentry *afs_mount(struct file_system_type *fs_type,
|
|
|
+ int flags, const char *dev_name, void *data);
|
|
|
static struct inode *afs_alloc_inode(struct super_block *sb);
|
|
|
static void afs_put_super(struct super_block *sb);
|
|
|
static void afs_destroy_inode(struct inode *inode);
|
|
@@ -40,7 +39,7 @@ static int afs_statfs(struct dentry *dentry, struct kstatfs *buf);
|
|
|
struct file_system_type afs_fs_type = {
|
|
|
.owner = THIS_MODULE,
|
|
|
.name = "afs",
|
|
|
- .get_sb = afs_get_sb,
|
|
|
+ .mount = afs_mount,
|
|
|
.kill_sb = kill_anon_super,
|
|
|
.fs_flags = 0,
|
|
|
};
|
|
@@ -359,11 +358,8 @@ error:
|
|
|
/*
|
|
|
* get an AFS superblock
|
|
|
*/
|
|
|
-static int afs_get_sb(struct file_system_type *fs_type,
|
|
|
- int flags,
|
|
|
- const char *dev_name,
|
|
|
- void *options,
|
|
|
- struct vfsmount *mnt)
|
|
|
+static struct dentry *afs_mount(struct file_system_type *fs_type,
|
|
|
+ int flags, const char *dev_name, void *options)
|
|
|
{
|
|
|
struct afs_mount_params params;
|
|
|
struct super_block *sb;
|
|
@@ -427,12 +423,11 @@ static int afs_get_sb(struct file_system_type *fs_type,
|
|
|
ASSERTCMP(sb->s_flags, &, MS_ACTIVE);
|
|
|
}
|
|
|
|
|
|
- simple_set_mnt(mnt, sb);
|
|
|
afs_put_volume(params.volume);
|
|
|
afs_put_cell(params.cell);
|
|
|
kfree(new_opts);
|
|
|
_leave(" = 0 [%p]", sb);
|
|
|
- return 0;
|
|
|
+ return dget(sb->s_root);
|
|
|
|
|
|
error:
|
|
|
afs_put_volume(params.volume);
|
|
@@ -440,7 +435,7 @@ error:
|
|
|
key_put(params.key);
|
|
|
kfree(new_opts);
|
|
|
_leave(" = %d", ret);
|
|
|
- return ret;
|
|
|
+ return ERR_PTR(ret);
|
|
|
}
|
|
|
|
|
|
/*
|