cvs commit: src/sys/kern vfs_syscalls.c
Thomas Moestl
t.moestl at tu-bs.de
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
strict.
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 tu-bs.de> http://www.tu-bs.de/~y0015675/
<tmm at FreeBSD.org> http://people.FreeBSD.org/~tmm/
"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