From owner-cvs-all@FreeBSD.ORG Sun Apr 1 15:51:08 2007 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C1F2E16A403; Sun, 1 Apr 2007 15:51:08 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 934A013C448; Sun, 1 Apr 2007 15:51:08 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 4A6C146C49; Sun, 1 Apr 2007 11:51:08 -0400 (EDT) Date: Sun, 1 Apr 2007 16:51:08 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Julian Elischer In-Reply-To: <20070401104935.C75869@fledge.watson.org> Message-ID: <20070401165018.I18301@fledge.watson.org> References: <200703290211.l2T2BlHv081735@repoman.freebsd.org> <20070401104935.C75869@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/compat/linux linux_file.c linux_util.h src/sys/i386/linux linux.h linux_dummy.c linux_proto.h linux_syscall.h linux_sysent.c syscalls.master src/sys/amd64/linux32 linux.h linux32_dummy.c linux32_proto.h ... X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Apr 2007 15:51:08 -0000 On Sun, 1 Apr 2007, Robert Watson wrote: > On Thu, 29 Mar 2007, Julian Elischer wrote: > >> julian 2007-03-29 02:11:46 UTC >> >> FreeBSD src repository >> >> Modified files: >> sys/compat/linux linux_file.c linux_util.h >> sys/i386/linux linux.h linux_dummy.c linux_proto.h >> linux_syscall.h linux_sysent.c >> syscalls.master >> sys/amd64/linux32 linux.h linux32_dummy.c linux32_proto.h >> linux32_syscall.h linux32_sysent.c >> syscalls.master >> Log: >> Implement the openat() linux syscall >> Submitted by: Roman Divacky (rdivacky@) >> MFC after: 2 weeks > > The locking and reference counting in this patch is highly dubious; also, > vn_fullpath() should really not be used this way, as it fails whenever > vnodes fall out of the name cache or a file system doesn't use the namecache > (i.e., it is purely advisory). If we're going to do openat() in the Linux > emulation layer, let's instead implement it properly in the FreeBSD system > call code as a first class service and then wrap it the way we wrap other > system calls. Please do not MFC this patch as-is. Looking at the code again, there's another serious bug in it: linux_at() fails to validate that the passed file descriptor is actually a vnode file descriptor type before dereferencing its f_vnode field and treating it as a vnode. Robert N M Watson Computer Laboratory University of Cambridge