In message <199908261727.kaa23...@apollo.backplane.com>, Matthew Dillon writes:
[...]
>     I would ask two things though:
> 
>       * First, please add comprehensive /* */ comments in front of each 
>         vfsnop_*() procedure explaining what it does, why it returns what
>         it returns, locking requirements (if any) on entry, and side effects
>         on return.  This is just for readability.
> 
>         Do the same for all the procedures you are adding, in fact.

Moreover, I would strongly recommend xplicitly documenting the following:

- which function args are in-args and which are out-args?

- does the function takes any allocated memory that it is expected to free?

- is the function expected to allocate any memory objects that have to be
  freed elsewhere?

- does the function increase or decrease any reference counts of any objects?
  Is it expected to?

These and other requirements are essentially the "interface" between the VFS
and lower-level file systems.  Figuring out this stuff on every OS and OS
revision (esp. when the VFS changes so often---linux) was the longest most
frustrating task I faced when writing my Wrapfs stackable f/s module for
solaris, freebsd, and linux.  I wish documentation had been in place.

>       * I think you can safely commit any elements that are not used by
>         existing builds since they are not likely to impact existing
>         builds operationally.
> 
>         Then see what you have left over.  If it is not significant, commit
>         that to.  If it is significant, do more comprehensive testing on
>         what you have left over (i.e. that impacts existing builds) and
>         ask for another review after testing, before committing it.

Erez.


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to