I find in the routine ffs_blkfree() there is a new statement saying: VOP_FREEBLKS(ip->i_devvp, fsbtodb(fs, bno), size); which calls spec_freeblks() in file spec_vnops.c. The routine spec_freeblks() looks simple. When D_CANFREE is set, it gets an empty buffer and call strategy routine for the buffer. Since B_READ is not set, we must call the strategy routine to write some data. But where is the data for the buffer? Why we call VOP_FREEBLKS() at the time we are going to free the blocks? BTW, this vnode operation is not listed in the man pages.
Any help is appreciated. -------------------------------------------------- Zhihui Zhang. Please visit http://www.freebsd.org -------------------------------------------------- To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-hackers" in the body of the message