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

Commit a5695a79 authored by Jan Kara's avatar Jan Kara Committed by Jens Axboe
Browse files

coda: Convert to separately allocated bdi



Allocate struct backing_dev_info separately instead of embedding it
inside the superblock. This unifies handling of bdi among users.

CC: Jan Harkes <jaharkes@cs.cmu.edu>
CC: coda@cs.cmu.edu
CC: codalist@coda.cs.cmu.edu
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent fa06052d
Loading
Loading
Loading
Loading
+4 −7
Original line number Original line Diff line number Diff line
@@ -183,10 +183,6 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
		goto unlock_out;
		goto unlock_out;
	}
	}


	error = bdi_setup_and_register(&vc->bdi, "coda");
	if (error)
		goto unlock_out;

	vc->vc_sb = sb;
	vc->vc_sb = sb;
	mutex_unlock(&vc->vc_mutex);
	mutex_unlock(&vc->vc_mutex);


@@ -197,7 +193,10 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
	sb->s_magic = CODA_SUPER_MAGIC;
	sb->s_magic = CODA_SUPER_MAGIC;
	sb->s_op = &coda_super_operations;
	sb->s_op = &coda_super_operations;
	sb->s_d_op = &coda_dentry_operations;
	sb->s_d_op = &coda_dentry_operations;
	sb->s_bdi = &vc->bdi;

	error = super_setup_bdi(sb);
	if (error)
		goto error;


	/* get root fid from Venus: this needs the root inode */
	/* get root fid from Venus: this needs the root inode */
	error = venus_rootfid(sb, &fid);
	error = venus_rootfid(sb, &fid);
@@ -228,7 +227,6 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)


error:
error:
	mutex_lock(&vc->vc_mutex);
	mutex_lock(&vc->vc_mutex);
	bdi_destroy(&vc->bdi);
	vc->vc_sb = NULL;
	vc->vc_sb = NULL;
	sb->s_fs_info = NULL;
	sb->s_fs_info = NULL;
unlock_out:
unlock_out:
@@ -240,7 +238,6 @@ static void coda_put_super(struct super_block *sb)
{
{
	struct venus_comm *vcp = coda_vcp(sb);
	struct venus_comm *vcp = coda_vcp(sb);
	mutex_lock(&vcp->vc_mutex);
	mutex_lock(&vcp->vc_mutex);
	bdi_destroy(&vcp->bdi);
	vcp->vc_sb = NULL;
	vcp->vc_sb = NULL;
	sb->s_fs_info = NULL;
	sb->s_fs_info = NULL;
	mutex_unlock(&vcp->vc_mutex);
	mutex_unlock(&vcp->vc_mutex);
+0 −1
Original line number Original line Diff line number Diff line
@@ -15,7 +15,6 @@ struct venus_comm {
	struct list_head    vc_processing;
	struct list_head    vc_processing;
	int                 vc_inuse;
	int                 vc_inuse;
	struct super_block *vc_sb;
	struct super_block *vc_sb;
	struct backing_dev_info bdi;
	struct mutex	    vc_mutex;
	struct mutex	    vc_mutex;
};
};