Page MenuHomeFreeBSD

Add vn_lktype_write()
ClosedPublic

Authored by kib on Aug 4 2021, 2:38 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Apr 20, 2:16 AM
Unknown Object (File)
Mar 16 2024, 6:56 AM
Unknown Object (File)
Mar 16 2024, 6:56 AM
Unknown Object (File)
Mar 12 2024, 11:11 AM
Unknown Object (File)
Feb 28 2024, 9:55 PM
Unknown Object (File)
Feb 18 2024, 8:23 AM
Unknown Object (File)
Feb 14 2024, 4:35 AM
Unknown Object (File)
Feb 7 2024, 2:54 PM
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.