Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Apr 2004 01:19:10 +0200
From:      Thomas Moestl <t.moestl@tu-bs.de>
To:        Pawel Jakub Dawidek <pjd@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern vfs_syscalls.c
Message-ID:  <20040422231910.GB709@timesink.dyndns.org>
In-Reply-To: <200404221540.i3MFeSIM038514@repoman.freebsd.org>
References:  <200404221540.i3MFeSIM038514@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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@tu-bs.de>	http://www.tu-bs.de/~y0015675/
		<tmm@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040422231910.GB709>