cvs commit: src/sys/kern vfs_syscalls.c

Thomas Moestl t.moestl at
Thu Apr 22 16:18:54 PDT 2004

On Thu, 2004/04/22 at 08:40:28 -0700, Pawel Jakub Dawidek wrote:
> pjd         2004/04/22 08:40:27 PDT
>   FreeBSD src repository
>   Modified files:
>     sys/kern             vfs_syscalls.c 
>   Log:
>   Look out! vn_start_write() is able to return 0 and NULL 'mp'.

Hmmm, I'm not sure, but wasn't the real bug to use the struct mount *
that vn_start_write() returns instead of nd.ni_vp->v_mount (or at
least, not using nd.ni_vp->v_mount if mp turns out to be NULL)? 
extattrctl() chooses that way.
It seems that file systems are not required to implement
VOP_GETWRITEMOUNT(), but could choose to implement VFS_QUOTACTL()
anyway (although IIRC there currently are none that maintain this
combination), so unconditionally returning EOPNOTSUPP would be too

The only case where the mount point of the vnode and the mount point
returned by vn_start_write() should differ is when unionfs is
involved; in that case, the correct semantics of quotactl() is a bit
doubtful, and so unionfs does not support quotactl() at all; thus
using the mount point of the vnode should not break anything.

	- Thomas

Thomas Moestl	<t.moestl at>
		<tmm at>
"The most crucial career decision is picking a good 'ism' so everyone
 knows how to categorize you without understanding the work."
						-- Calvin and Hobbes

More information about the cvs-src mailing list