cvs commit: src/sys/kern vfs_syscalls.c
Pawel Jakub Dawidek
pjd at FreeBSD.org
Thu Apr 22 16:31:57 PDT 2004
On Fri, Apr 23, 2004 at 01:19:10AM +0200, Thomas Moestl wrote:
+> 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.
Yes. Even quotactl(2) in RELENG_4 is using nd.ni_vp->v_mount.
Anyone want to test this patch:
http://people.freebsd.org/~pjd/patches/vfs_syscalls.c.3.patch
--
Pawel Jakub Dawidek http://www.FreeBSD.org
pjd at FreeBSD.org http://garage.freebsd.pl
FreeBSD committer Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20040423/f1f22ce3/attachment.bin
More information about the cvs-src
mailing list