diff options
Diffstat (limited to 'fs/coda/inode.c')
| -rw-r--r-- | fs/coda/inode.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/coda/inode.c b/fs/coda/inode.c index 830f51abb97..d97f9935a02 100644 --- a/fs/coda/inode.c +++ b/fs/coda/inode.c @@ -18,6 +18,7 @@  #include <linux/smp_lock.h>  #include <linux/file.h>  #include <linux/vfs.h> +#include <linux/slab.h>  #include <asm/system.h>  #include <asm/uaccess.h> @@ -166,6 +167,10 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)  		return -EBUSY;  	} +	error = bdi_setup_and_register(&vc->bdi, "coda", BDI_CAP_MAP_COPY); +	if (error) +		goto bdi_err; +  	vc->vc_sb = sb;  	sb->s_fs_info = vc; @@ -174,6 +179,7 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)  	sb->s_blocksize_bits = 12;  	sb->s_magic = CODA_SUPER_MAGIC;  	sb->s_op = &coda_super_operations; +	sb->s_bdi = &vc->bdi;  	/* get root fid from Venus: this needs the root inode */  	error = venus_rootfid(sb, &fid); @@ -199,6 +205,8 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)          return 0;   error: +	bdi_destroy(&vc->bdi); + bdi_err:  	if (root)  		iput(root);  	if (vc) @@ -209,6 +217,7 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)  static void coda_put_super(struct super_block *sb)  { +	bdi_destroy(&coda_vcp(sb)->bdi);  	coda_vcp(sb)->vc_sb = NULL;  	sb->s_fs_info = NULL;  |