Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5163d900 authored by Jens Axboe's avatar Jens Axboe
Browse files

coda: add bdi backing to mount session



This ensures that dirty data gets flushed properly.

Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent 8044f7f4
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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;

+2 −0
Original line number Diff line number Diff line
#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;
};