The state of Giant lock in the file systems?

Ivan Voras ivoras at freebsd.org
Mon Nov 8 12:28:42 UTC 2010


I was looking at fusefs sources and there is a dance it does with the
Giant lock which looks fishy.

Grepping for "-ir giant" in /sys/fs on 8-stable shows only a handful of
mentionings, but if I understand it correctly only these "active" instances:

1) one set of mtx_assert() calls on it in pseudofs, which I can't figure
out what they're guarding
2) some manual locking and unlocking in nfsclient which appears to only
guard printf() (???)
3) some more locking in nfsserver which apparently is only there to
guard the underlying local file system
4) coda, which appears to be the only one marked with D_NEEDGIANT, but
doesn't do much of its own interfacing with it

Except for these, is there any more magic that would need to be resolved
to excise Giant from VFS?

Would it be correct to think that coda is the single biggest obstacle?



More information about the freebsd-fs mailing list