int xfs_iflush_int (xfs_inode_t *, xfs_buf_t *);
int xfs_iflush_fork (xfs_inode_t *, xfs_dinode_t *, xfs_inode_log_item_t *,
int, xfs_buf_t *);
-int xfs_iformat_local (xfs_inode_t *, xfs_dinode_t *, int, int, int);
-int xfs_iformat_extents (xfs_inode_t *, xfs_dinode_t *, int, int);
-int xfs_iformat_btree (xfs_inode_t *, xfs_dinode_t *, int, int);
+int xfs_iformat_local (xfs_inode_t *, xfs_dinode_t *, int, int);
+int xfs_iformat_extents (xfs_inode_t *, xfs_dinode_t *, int);
+int xfs_iformat_btree (xfs_inode_t *, xfs_dinode_t *, int);
void xfs_iroot_realloc (xfs_inode_t *, int, int);
void xfs_idata_realloc (xfs_inode_t *, int, int);
void xfs_iext_realloc (xfs_inode_t *, int, int);
xfs_alloc_key_t *, xfs_btree_cur_t **, int *);
/* xfs_da_btree.c */
-xfs_dabuf_t *xfs_da_buf_make (int, xfs_buf_t **, inst_t *, int);
+xfs_dabuf_t *xfs_da_buf_make (int, xfs_buf_t **, inst_t *);
int xfs_da_root_join (xfs_da_state_t *, xfs_da_state_blk_t *);
int xfs_da_root_split (xfs_da_state_t *, xfs_da_state_blk_t *,
xfs_da_state_blk_t *);
int nbplist=0;
int nfsb;
int nmap;
- int mem_flags = trans ? KM_SLEEP : KM_SLEEP_IO;
xfs_dabuf_t *rbp;
mp = dp->i_mount;
xfs_fsblock_t firstblock;
firstblock = NULLFSBLOCK;
- mapp = kmem_alloc(sizeof(*mapp) * nfsb, mem_flags);
+ mapp = kmem_alloc(sizeof(*mapp) * nfsb, KM_SLEEP);
nmap = nfsb;
if ((error = xfs_bmapi(trans, dp, (xfs_fileoff_t)bno,
nfsb,
goto exit0;
}
if (caller != 3 && nmap > 1) {
- bplist = kmem_alloc(sizeof(*bplist) * nmap, mem_flags);
+ bplist = kmem_alloc(sizeof(*bplist) * nmap, KM_SLEEP);
nbplist = 0;
} else
bplist = NULL;
* Build a dabuf structure.
*/
if (bplist) {
- rbp = xfs_da_buf_make(nbplist, bplist, ra, mem_flags);
+ rbp = xfs_da_buf_make(nbplist, bplist, ra);
} else if (bp)
- rbp = xfs_da_buf_make(1, &bp, ra, mem_flags);
+ rbp = xfs_da_buf_make(1, &bp, ra);
else
rbp = NULL;
/*
*/
/* ARGSUSED */
STATIC xfs_dabuf_t *
-xfs_da_buf_make(int nbuf, xfs_buf_t **bps, inst_t *ra, int mem_flags)
+xfs_da_buf_make(int nbuf, xfs_buf_t **bps, inst_t *ra)
{
xfs_buf_t *bp;
xfs_dabuf_t *dabuf;
int off;
if (nbuf == 1)
- dabuf = kmem_zone_alloc(xfs_dabuf_zone, mem_flags);
+ dabuf = kmem_zone_alloc(xfs_dabuf_zone, KM_SLEEP);
else
- dabuf = kmem_alloc(XFS_DA_BUF_SIZE(nbuf), mem_flags);
+ dabuf = kmem_alloc(XFS_DA_BUF_SIZE(nbuf), KM_SLEEP);
dabuf->dirty = 0;
#ifdef XFS_DABUF_DEBUG
dabuf->ra = ra;
STATIC int
xfs_iformat(
xfs_inode_t *ip,
- xfs_dinode_t *dip,
- int alloc_mode)
+ xfs_dinode_t *dip)
{
xfs_attr_shortform_t *atp;
int size;
}
size = (int)di_size;
- error = xfs_iformat_local(ip, dip, XFS_DATA_FORK,
- size, alloc_mode);
+ error = xfs_iformat_local(ip, dip, XFS_DATA_FORK, size);
break;
case XFS_DINODE_FMT_EXTENTS:
- error = xfs_iformat_extents(ip, dip, XFS_DATA_FORK,
- alloc_mode);
+ error = xfs_iformat_extents(ip, dip, XFS_DATA_FORK);
break;
case XFS_DINODE_FMT_BTREE:
- error = xfs_iformat_btree(ip, dip, XFS_DATA_FORK,
- alloc_mode);
+ error = xfs_iformat_btree(ip, dip, XFS_DATA_FORK);
break;
default:
return XFS_ERROR(EFSCORRUPTED);
if (!XFS_DFORK_Q_ARCH(dip, ARCH_CONVERT))
return 0;
ASSERT(ip->i_afp == NULL);
- ip->i_afp = kmem_zone_zalloc(xfs_ifork_zone, alloc_mode);
+ ip->i_afp = kmem_zone_zalloc(xfs_ifork_zone, KM_SLEEP);
ip->i_afp->if_ext_max =
XFS_IFORK_ASIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t);
switch (INT_GET(dip->di_core.di_aformat, ARCH_CONVERT)) {
case XFS_DINODE_FMT_LOCAL:
atp = (xfs_attr_shortform_t *)XFS_DFORK_APTR_ARCH(dip, ARCH_CONVERT);
size = (int)INT_GET(atp->hdr.totsize, ARCH_CONVERT);
- error = xfs_iformat_local(ip, dip, XFS_ATTR_FORK, size,
- alloc_mode);
+ error = xfs_iformat_local(ip, dip, XFS_ATTR_FORK, size);
break;
case XFS_DINODE_FMT_EXTENTS:
- error = xfs_iformat_extents(ip, dip, XFS_ATTR_FORK,
- alloc_mode);
+ error = xfs_iformat_extents(ip, dip, XFS_ATTR_FORK);
break;
case XFS_DINODE_FMT_BTREE:
- error = xfs_iformat_btree(ip, dip, XFS_ATTR_FORK,
- alloc_mode);
+ error = xfs_iformat_btree(ip, dip, XFS_ATTR_FORK);
break;
default:
error = XFS_ERROR(EFSCORRUPTED);
xfs_inode_t *ip,
xfs_dinode_t *dip,
int whichfork,
- int size,
- int alloc_mode)
+ int size)
{
xfs_ifork_t *ifp;
int real_size;
ifp->if_u1.if_data = ifp->if_u2.if_inline_data;
else {
real_size = roundup(size, 4);
- ifp->if_u1.if_data = kmem_alloc(real_size, alloc_mode);
+ ifp->if_u1.if_data = kmem_alloc(real_size, KM_SLEEP);
}
ifp->if_bytes = size;
ifp->if_real_bytes = real_size;
xfs_iformat_extents(
xfs_inode_t *ip,
xfs_dinode_t *dip,
- int whichfork,
- int alloc_mode)
+ int whichfork)
{
xfs_ifork_t *ifp;
int nex;
else if (nex <= XFS_INLINE_EXTS)
ifp->if_u1.if_extents = ifp->if_u2.if_inline_ext;
else {
- ifp->if_u1.if_extents = kmem_alloc(size, alloc_mode);
+ ifp->if_u1.if_extents = kmem_alloc(size, KM_SLEEP);
ASSERT(ifp->if_u1.if_extents != NULL);
real_size = size;
}
xfs_iformat_btree(
xfs_inode_t *ip,
xfs_dinode_t *dip,
- int whichfork,
- int alloc_mode)
+ int whichfork)
{
xfs_bmdr_block_t *dfp;
xfs_ifork_t *ifp;
}
ifp->if_broot_bytes = size;
- ifp->if_broot = kmem_alloc(size, alloc_mode);
+ ifp->if_broot = kmem_alloc(size, KM_SLEEP);
ASSERT(ifp->if_broot != NULL);
/*
* Copy and convert from the on-disk structure
xfs_dinode_t *dip;
xfs_inode_t *ip;
int error;
- int alloc_mode = tp ? KM_SLEEP : KM_SLEEP_IO;
ASSERT(xfs_inode_zone != NULL);
- ip = kmem_zone_zalloc(xfs_inode_zone, alloc_mode);
+ ip = kmem_zone_zalloc(xfs_inode_zone, KM_SLEEP);
ip->i_ino = ino;
ip->i_dev = mp->m_dev;
ip->i_mount = mp;
* Do this before xfs_iformat in case it adds entries.
*/
#ifdef XFS_BMAP_TRACE
- ip->i_xtrace = ktrace_alloc(XFS_BMAP_KTRACE_SIZE, alloc_mode);
+ ip->i_xtrace = ktrace_alloc(XFS_BMAP_KTRACE_SIZE, KM_SLEEP);
#endif
#ifdef XFS_BMBT_TRACE
- ip->i_btrace = ktrace_alloc(XFS_BMBT_KTRACE_SIZE, alloc_mode);
+ ip->i_btrace = ktrace_alloc(XFS_BMBT_KTRACE_SIZE, KM_SLEEP);
#endif
#ifdef XFS_RW_TRACE
- ip->i_rwtrace = ktrace_alloc(XFS_RW_KTRACE_SIZE, alloc_mode);
+ ip->i_rwtrace = ktrace_alloc(XFS_RW_KTRACE_SIZE, KM_SLEEP);
#endif
#ifdef XFS_STRAT_TRACE
- ip->i_strat_trace = ktrace_alloc(XFS_STRAT_KTRACE_SIZE, alloc_mode);
+ ip->i_strat_trace = ktrace_alloc(XFS_STRAT_KTRACE_SIZE, KM_SLEEP);
#endif
#ifdef XFS_ILOCK_TRACE
- ip->i_lock_trace = ktrace_alloc(XFS_ILOCK_KTRACE_SIZE, alloc_mode);
+ ip->i_lock_trace = ktrace_alloc(XFS_ILOCK_KTRACE_SIZE, KM_SLEEP);
#endif
#ifdef XFS_DIR2_TRACE
- ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, alloc_mode);
+ ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, KM_SLEEP);
#endif
/*
if (!INT_ISZERO(dip->di_core.di_mode, ARCH_CONVERT)) {
xfs_xlate_dinode_core((xfs_caddr_t)&dip->di_core,
&(ip->i_d), 1, ARCH_CONVERT);
- error = xfs_iformat(ip, dip, alloc_mode);
+ error = xfs_iformat(ip, dip);
if (error) {
kmem_zone_free(xfs_inode_zone, ip);
xfs_trans_brelse(tp, bp);
/*
* We know that the size is legal (it's checked in iformat_btree)
*/
- ifp->if_u1.if_extents = kmem_alloc(size, tp ? KM_SLEEP : KM_SLEEP_IO);
+ ifp->if_u1.if_extents = kmem_alloc(size, KM_SLEEP);
ASSERT(ifp->if_u1.if_extents != NULL);
ifp->if_lastex = NULLEXTNUM;
ifp->if_bytes = ifp->if_real_bytes = (int)size;