[BACK]Return to xfs_mount.c CVS log [TXT][DIR] Up to [Development] / xfs-linux

File: [Development] / xfs-linux / xfs_mount.c (download)

Revision 1.1, Fri Oct 29 17:20:11 1993 UTC (24 years ago) by doucette
Branch: MAIN

Initial revision

#ident	"$Revision$"

#include "xfs_sb.h"
#include "xfs_ag.h"
#include "xfs_alloc.h"
#include "xfs_ialloc.h"
#include "sim.h"
#include <bstring.h>

void
xfs_mount(xfs_mount_t *mp, dev_t dev)
{
	buf_t *buf;
	xfs_sb_t *sbp;

	mp->m_dev = dev;
	buf = bread(dev, XFS_SB_DADDR, howmany(sizeof(*sbp), BBSIZE));
	sbp = xfs_buf_to_sbp(buf);
	mp->m_sb = kmem_alloc(sizeof(*sbp), 0);
	*(mp->m_sb) = *sbp;
	mp->m_bsize = xfs_btod(sbp, 1);
	mp->m_agrotor = 0;
	brelse(buf);
}

void
xfs_umount(xfs_mount_t *mp)
{
	kmem_free(mp->m_sb, sizeof(xfs_sb_t));
}

void
xfs_mod_sb(xfs_trans_t *tp, int first, int last)
{
	buf_t		*buf;
	xfs_mount_t	*mp;
	xfs_sb_t	*sbp;

	mp = tp->t_mountp;
	buf = xfs_trans_bread(tp, mp->m_dev, XFS_SB_DADDR, mp->m_bsize);
	sbp = xfs_buf_to_sbp(buf);
	bcopy((caddr_t)mp->m_sb + first, (caddr_t)sbp + first, last - first + 1);
	xfs_trans_log_buf(tp, buf, first, last);
}