From owner-cvs-src@FreeBSD.ORG Thu Apr 22 16:18:54 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 09B4416A4CF for ; Thu, 22 Apr 2004 16:18:54 -0700 (PDT) Received: from mail.gmx.net (imap.gmx.net [213.165.64.20]) by mx1.FreeBSD.org (Postfix) with SMTP id 1EDF443D45 for ; Thu, 22 Apr 2004 16:18:53 -0700 (PDT) (envelope-from tmoestl@gmx.net) Received: (qmail 5560 invoked by uid 65534); 22 Apr 2004 23:18:52 -0000 Received: from p50907DC3.dip.t-dialin.net (EHLO timesink.dyndns.org) (80.144.125.195) by mail.gmx.net (mp027) with SMTP; 23 Apr 2004 01:18:52 +0200 X-Authenticated: #5374206 Received: by abel (Postfix, from userid 1001) id 379C968A; Fri, 23 Apr 2004 01:19:10 +0200 (CEST) Date: Fri, 23 Apr 2004 01:19:10 +0200 From: Thomas Moestl To: Pawel Jakub Dawidek Message-ID: <20040422231910.GB709@timesink.dyndns.org> References: <200404221540.i3MFeSIM038514@repoman.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200404221540.i3MFeSIM038514@repoman.freebsd.org> User-Agent: Mutt/1.5.6i 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:18:54 -0000 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 http://www.tu-bs.de/~y0015675/ 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