Page MenuHomeFreeBSD

Add vn_lktype_write()
ClosedPublic

Authored by kib on Aug 4 2021, 2:38 AM.

Details

Reviewers
khng
markj
Group Reviewers
cam
Commits
R10:0ef5eee9d941: Add vn_lktype_write()
Summary

and remove repetetive code that calculates vnode locking type for write.

Diff Detail

Repository
R10 FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

kib requested review of this revision.Aug 4 2021, 2:38 AM
This revision is now accepted and ready to land.Aug 4 2021, 2:50 AM
sys/kern/vfs_vnops.c
3091

When is it possible for vn_start_write() to return mp = NULL? Clearly it will happen if the vnode is doomed. Are there other cases? If so, is it possible to have mp == NULL && outvp->v_mount != NULL?

sys/kern/vfs_vnops.c
3091

Official case is for VOP_GETWRITEMOUNT() to return EOPNOTSUPP. In this case vn_start_write() succeeds and sets mp to NULL, regardless of the reclamation status of the vnode.

This was designed as a simple opt-out for filesystems that do need support write suspension and do not want to pay for the overhead of maintaining the mnt_writeopcount.

Until we have such support, we should accept a possibility that mp == NULL but vp->v_mount != NULL.

This revision was automatically updated to reflect the committed changes.