From owner-cvs-src@FreeBSD.ORG Thu Apr 22 16:31:56 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D9ED816A4CE; Thu, 22 Apr 2004 16:31:56 -0700 (PDT) Received: from darkness.comp.waw.pl (darkness.comp.waw.pl [195.117.238.236]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7B4FE43D62; Thu, 22 Apr 2004 16:31:56 -0700 (PDT) (envelope-from pjd@darkness.comp.waw.pl) Received: by darkness.comp.waw.pl (Postfix, from userid 1009) id 7CF2DACAEE; Fri, 23 Apr 2004 01:31:54 +0200 (CEST) Date: Fri, 23 Apr 2004 01:31:54 +0200 From: Pawel Jakub Dawidek To: Thomas Moestl Message-ID: <20040422233154.GY24376@darkness.comp.waw.pl> References: <200404221540.i3MFeSIM038514@repoman.freebsd.org> <20040422231910.GB709@timesink.dyndns.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="tUxbtEzdJc4sX0sj" Content-Disposition: inline In-Reply-To: <20040422231910.GB709@timesink.dyndns.org> User-Agent: Mutt/1.4.2i X-PGP-Key-URL: http://people.freebsd.org/~pjd/pjd.asc X-OS: FreeBSD 5.2.1-RC2 i386 cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern vfs_syscalls.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2004 23:31:57 -0000 --tUxbtEzdJc4sX0sj Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable 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 +> >=20 +> > FreeBSD src repository +> >=20 +> > Modified files: +> > sys/kern vfs_syscalls.c=20 +> > Log: +> > Look out! vn_start_write() is able to return 0 and NULL 'mp'. +>=20 +> 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)?=20 +> 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. +>=20 +> 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 --=20 Pawel Jakub Dawidek http://www.FreeBSD.org pjd@FreeBSD.org http://garage.freebsd.pl FreeBSD committer Am I Evil? Yes, I Am! --tUxbtEzdJc4sX0sj Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAiFXqForvXbEpPzQRAu1fAKCwUgEL6OOHcyw1Tbb+BsKnf64TzwCeK4Mz RnxviWI4wTiqe5Q0b3WE0K4= =TXEF -----END PGP SIGNATURE----- --tUxbtEzdJc4sX0sj--