coda: add bdi backing to mount session
This ensures that dirty data gets flushed properly. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
parent
8044f7f468
commit
5163d90076
2 changed files with 10 additions and 0 deletions
|
@ -167,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;
|
||||
|
@ -175,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);
|
||||
|
@ -200,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)
|
||||
|
@ -210,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;
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef __CODA_PSDEV_H
|
||||
#define __CODA_PSDEV_H
|
||||
|
||||
#include <linux/backing-dev.h>
|
||||
#include <linux/magic.h>
|
||||
|
||||
#define CODA_PSDEV_MAJOR 67
|
||||
|
@ -17,6 +18,7 @@ struct venus_comm {
|
|||
struct list_head vc_processing;
|
||||
int vc_inuse;
|
||||
struct super_block *vc_sb;
|
||||
struct backing_dev_info bdi;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue