Page MenuHomeFreeBSD

Add vn_lktype_write()
ClosedPublic

Authored by kib on Aug 4 2021, 2:38 AM.
Tags
None
Referenced Files
F78193826: D31405.diff
Wed, Feb 28, 9:55 PM
Unknown Object (File)
Sun, Feb 18, 8:23 AM
Unknown Object (File)
Wed, Feb 14, 4:35 AM
Unknown Object (File)
Wed, Feb 7, 2:54 PM
Unknown Object (File)
Dec 23 2023, 12:22 AM
Unknown Object (File)
Dec 21 2023, 10:39 AM
Unknown Object (File)
Dec 12 2023, 6:38 AM
Unknown Object (File)
Dec 10 2023, 5:32 AM
Subscribers
None

Details

Reviewers
khng
markj
Group Reviewers
cam
Commits
rG0ef5eee9d941: Add vn_lktype_write()
Summary

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

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

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.