tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: How PUFFS should deal with EDQUOT?
On Sat, Sep 27, 2014 at 04:36:18AM +0000, Emmanuel Dreyfus wrote:
> It seems I just have to call GOP_ALLOC in puffs_vnop_write()
> (see below)
Wait, there are a lot of missing bits such as this:
puffs_gop_alloc(struct vnode *vp, off_t off, off_t len,
int flags, kauth_cred_t cred)
{
return _puffs_vnop_fallocate(vp, off, len);
}
And this (also called by puffs_vnop_fallocate() after
acquiring mutex on pn_sizemtx:
int
_puffs_vnop_fallocate(struct vnode *vp, off_t pos, off_t len)
{
PUFFS_MSG_VARS(vn, fallocate);
struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
int error;
PUFFS_MSG_ALLOC(vn, fallocate);
fallocate_msg->pvnr_off = pos;
fallocate_msg->pvnr_len = len;
puffs_msg_setinfo(park_fallocate, PUFFSOP_VN,
PUFFS_VN_FALLOCATE, VPTOPNC(vp));
PUFFS_MSG_ENQUEUEWAIT2(pmp, park_fallocate, vp->v_data,
NULL, error);
error = checkerr(pmp, error, __func__);
PUFFS_MSG_RELEASE(fallocate);
return error;
}
At that point you may wonder why I do not send a clean patch with
all the changes. It is because I need to revert the changes
from hashlist to vcache as described in kern/49234 so that FUSE
work again, which produce a fuzzy patch.
--
Emmanuel Dreyfus
manu%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index