diff options
author | David Howells <dhowells@redhat.com> | 2018-04-06 14:17:25 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2018-04-09 21:54:00 +0100 |
commit | 66c7e1d319a5b3a57de688a36200e463ec87e88e (patch) | |
tree | f38f631e9fe71179b007e53bcebe712c3ed23fc3 /fs/afs/super.c | |
parent | a4ff7401fbfa06fba3aac14db5b33c5b76298f2c (diff) | |
download | linux-66c7e1d319a5b3a57de688a36200e463ec87e88e.tar.gz linux-66c7e1d319a5b3a57de688a36200e463ec87e88e.tar.bz2 linux-66c7e1d319a5b3a57de688a36200e463ec87e88e.zip |
afs: Split the dynroot stuff out and give it its own ops tables
Split the AFS dynamic root stuff out of the main directory handling file
and into its own file as they share little in common.
The dynamic root code also gets its own dentry and inode ops tables.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs/super.c')
-rw-r--r-- | fs/afs/super.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/afs/super.c b/fs/afs/super.c index 3623c952b6ff..65081ec3c36e 100644 --- a/fs/afs/super.c +++ b/fs/afs/super.c @@ -154,7 +154,7 @@ static int afs_show_devname(struct seq_file *m, struct dentry *root) seq_puts(m, "none"); return 0; } - + switch (volume->type) { case AFSVL_RWVOL: break; @@ -269,7 +269,7 @@ static int afs_parse_device_name(struct afs_mount_params *params, int cellnamesz; _enter(",%s", name); - + if (!name) { printk(KERN_ERR "kAFS: no volume name specified\n"); return -EINVAL; @@ -418,7 +418,10 @@ static int afs_fill_super(struct super_block *sb, if (!sb->s_root) goto error; - sb->s_d_op = &afs_fs_dentry_operations; + if (params->dyn_root) + sb->s_d_op = &afs_dynroot_dentry_operations; + else + sb->s_d_op = &afs_fs_dentry_operations; _leave(" = 0"); return 0; @@ -676,7 +679,7 @@ static int afs_statfs(struct dentry *dentry, struct kstatfs *buf) buf->f_bfree = 0; return 0; } - + key = afs_request_key(vnode->volume->cell); if (IS_ERR(key)) return PTR_ERR(key); |