From owner-svn-src-all@FreeBSD.ORG Tue Jul 22 22:55:27 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 678CB317 for ; Tue, 22 Jul 2014 22:55:27 +0000 (UTC) Received: from nm15.bullet.mail.bf1.yahoo.com (nm15.bullet.mail.bf1.yahoo.com [98.139.212.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0B0C120DE for ; Tue, 22 Jul 2014 22:55:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1406069719; bh=GlAV9l07dZDVb+Ms5aCfWJr7nfm4Jzcn+p0+ehr9/G8=; h=Received:Received:Received:X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Message-ID:Date:From:User-Agent:MIME-Version:To:Subject:References:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=hqD526gU42IFNSvounRn/aAzN3FvRojG0vzbDyl9Mu23LzIsM+onv3NopJJoCcCg8zQ+Hp+jUBFreb1VYzQLnq11GaHEJU+iujN1gnlv+pss851nmY6JnX/Fh9K40/4MIFuaBwtC9hP8ceR9V9k099Ywf9Zy7JlLZz/HM+30jXhRfasu3XpxiL3MBb5Nm3lG53Aw+Z0FRRV70Zv+rpemU0WAInQr3eESNpKuFM/gq6mFzPwWovkiT182ByhoSSYeXzfQqDWhbxt4/G7ujLYY7E8dYNorRMvBaCLOy1FPBIJLgqZXE2E6t5rvipDu2NgKSjrmAkpj6qQQzsNZXyyPNA== DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s2048; d=yahoo.com; b=SwExRtRMFQpOY7OU4HdLiAatgYZktVTmH9NNoFcbgO3H4JgTd84go/rtZXBVbE+h/mvyg3WURMqKM93+IegjicfUTK81VwAQM+uyYP/eMVOUCWyKexUyv+cSCk209/BYzTAZaoAVgFVIHg97jYIBt26GCnUeArAuAYdH/SqofS9+aWICkfalJdO78ogPWpLoJM2q7NjKNAnlCfVAmqXn48EArVBUjuSqfC3rQQ7ArI7cibZ6a6JyFtzoZgMPv5s2ZD4CSkGXkTl7VUsBfHW0zhUxDK72BM2ND+dU9XzIpnWyMaMEdM/BEfrJWNLwWuL0KJ3jXvwgf7IY488cLZnxFA==; Received: from [98.139.215.143] by nm15.bullet.mail.bf1.yahoo.com with NNFMP; 22 Jul 2014 22:55:19 -0000 Received: from [68.142.230.72] by tm14.bullet.mail.bf1.yahoo.com with NNFMP; 22 Jul 2014 22:55:19 -0000 Received: from [127.0.0.1] by smtp229.mail.bf1.yahoo.com with NNFMP; 22 Jul 2014 22:55:19 -0000 X-Yahoo-Newman-Id: 45606.3751.bm@smtp229.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: MqHSaJIVM1nSIXgAwytp0b66CN9GqRm0qaDl9ThyuDc84Nf HAe70Qd7Y8.K4xa9UsomhyAYxKklamM90OnPDqCkcXICvqBKGZPHK8s8uWbd 6lrJ.I07mRmVkOSGWksD7F5l90ChbOme.1m5xABfDPTJPBeV.M9oAv37zjpT LyvuWEoD3oDLbG63dfeSwpX04diM9DHmtMqYWH9dFnmKm_bM5ABzEdv.N0Lh IPswiEuNeu9a2BRQhubGwbMNk0ZwQZeS8pqEyWHxmbWdpZ0Uaiin07Hr6JbI c2XgzygkEwmqekpo7IxM9WY.e.XfaLye4rHMH2LSjG1TXDSwxHuTkaQn7rKj MTk7Jc4o_Oe2b8G.DYbZkrUBtmxWlxiJbpIYfT01JvcvvCGNq5ZuMMVx9VA7 Ps3GvPPFJ7T61l6UyJfa0WaMEZjXkXZerS3LlEcxp2vHSXjNxEYe2qwwbYEU LSGSrDZYaDypg3CU7zczqjLkL2Cd9TGKXxTBAhc3kUot4vwQAOCdt8hbzdZ1 iy78KxI5aMhlBqL6GALa2YPAwofy2_X_hpvpWKcPJOR6oGbw1M5Qe9AYCKpl bbmCAEEQ4x2WOHERtL3RfzfMZpbrG.xmhVVbIX0qgws0Xa2SeX_KfzDJy8Bl 2 X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Message-ID: <53CEEBE3.10807@freebsd.org> Date: Tue, 22 Jul 2014 17:55:31 -0500 From: Pedro Giffuni User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "Andrey A. Chernov" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r268997 - head/lib/libc/stdio References: <201407222249.s6MMnbNb050699@svn.freebsd.org> In-Reply-To: <201407222249.s6MMnbNb050699@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2014 22:55:27 -0000 On 07/22/14 17:49, Andrey A. Chernov wrote: > Author: ache > Date: Tue Jul 22 22:49:37 2014 > New Revision: 268997 > URL: http://svnweb.freebsd.org/changeset/base/268997 > > Log: > For "a"-mode files and rewind/fseek + fwrite combination return meaningful > value now, like Apple does, but avoid their __sflush physical write > performance degradation as much as possible. Great ! Thank you !! Pedro. > Modified: > head/lib/libc/stdio/ftell.c > > Modified: head/lib/libc/stdio/ftell.c > ============================================================================== > --- head/lib/libc/stdio/ftell.c Tue Jul 22 22:39:59 2014 (r268996) > +++ head/lib/libc/stdio/ftell.c Tue Jul 22 22:49:37 2014 (r268997) > @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); > #include "namespace.h" > #include > #include > +#include > #include > #include > #include "un-namespace.h" > @@ -87,6 +88,7 @@ _ftello(FILE *fp, fpos_t *offset) > { > fpos_t pos; > size_t n; > + int dflags; > > if (fp->_seek == NULL) { > errno = ESPIPE; /* historic practice */ > @@ -118,6 +120,22 @@ _ftello(FILE *fp, fpos_t *offset) > if (HASUB(fp)) > pos -= fp->_r; /* Can be negative at this point. */ > } else if ((fp->_flags & __SWR) && fp->_p != NULL) { > + dflags = 0; > + if (fp->_flags & __SAPP) > + dflags = O_APPEND; > + else if (fp->_file != -1 && > + (dflags = _fcntl(fp->_file, F_GETFL)) < 0) > + return (1); > + if ((dflags & O_APPEND) && > + (pos = _sseek(fp, (fpos_t)0, SEEK_END)) == -1) { > + if ((fp->_flags & __SOPT) || __sflush(fp) || > + (pos = _sseek(fp, (fpos_t)0, SEEK_CUR)) == -1) > + return (1); > + else { > + *offset = pos; > + return (0); > + } > + } > /* > * Writing. Any buffered characters cause the > * position to be greater than that in the >