From owner-freebsd-current@FreeBSD.ORG Tue Apr 15 09:01:54 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5CE67106566B for ; Tue, 15 Apr 2008 09:01:54 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from relay01.kiev.sovam.com (relay01.kiev.sovam.com [62.64.120.200]) by mx1.freebsd.org (Postfix) with ESMTP id DF6D38FC23 for ; Tue, 15 Apr 2008 09:01:53 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from [212.82.216.226] (helo=skuns.kiev.zoral.com.ua) by relay01.kiev.sovam.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.67) (envelope-from ) id 1Jlh31-000MO4-N6 for freebsd-current@freebsd.org; Tue, 15 Apr 2008 12:01:52 +0300 Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by skuns.kiev.zoral.com.ua (8.14.2/8.14.2) with ESMTP id m3F91keU026095 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 15 Apr 2008 12:01:47 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.2/8.14.2) with ESMTP id m3F91dwU006021; Tue, 15 Apr 2008 12:01:39 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.2/8.14.2/Submit) id m3F91d7K006020; Tue, 15 Apr 2008 12:01:39 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 15 Apr 2008 12:01:39 +0300 From: Kostik Belousov To: d@delphij.net Message-ID: <20080415090138.GK18958@deviant.kiev.zoral.com.ua> References: <48027F56.9010302@delphij.net> <20080414095539.GD18958@deviant.kiev.zoral.com.ua> <4803B0EC.1060901@delphij.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="fLj60tP2PZ34xyqD" Content-Disposition: inline In-Reply-To: <4803B0EC.1060901@delphij.net> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.4 X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on skuns.kiev.zoral.com.ua X-Scanner-Signature: eacc24c597fa83a26e5f02f00d1ff66c X-DrWeb-checked: yes X-SpamTest-Envelope-From: kostikbel@gmail.com X-SpamTest-Group-ID: 00000000 X-SpamTest-Info: Profiles 2627 [Apr 15 2008] X-SpamTest-Info: helo_type=3 X-SpamTest-Info: {received from trusted relay: not dialup} X-SpamTest-Method: none X-SpamTest-Method: Local Lists X-SpamTest-Rate: 0 X-SpamTest-Status: Not detected X-SpamTest-Status-Extended: not_detected X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0255], KAS30/Release Cc: FreeBSD Current Subject: Re: [PATCH] fdopendir(3) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Apr 2008 09:01:54 -0000 --fLj60tP2PZ34xyqD Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Apr 14, 2008 at 12:30:52PM -0700, Xin LI wrote: > Kostik Belousov wrote: > >On Sun, Apr 13, 2008 at 02:47:02PM -0700, Xin LI wrote: > >>Hi, > >> > >>Any objection for the attached patch which implements fdopendir(3) that= =20 > >>is found in various other OSes? Basically it splits __opendir2 into tw= o=20 > >>parts, and expose the second part which deals with fd to provide=20 > >>fdopendir(3) functionalities. > > > >There are some problems with the DTF_REWIND and union mounts. > > > >I too implemented the fdopendir in the course of the *at() work after > >the initial Roman Divacky submission. I put my patch at the > >http://people.freebsd.org/~kib/misc/fdopendir.1.patch > > > >I postponed the commit for further testing and some more changes related > >to the committed *at syscalls (mainly man pages, the patch awaits the > >review). >=20 > Some observations. __fdopendir2(). My feeling is that this is not=20 > suitable to separate as a standard alone file as its sole users are=20 > fdopendir() and opendir(), therefore, being static might be more=20 > appropriate. Do you have the intention to use it in somewhere else? If= =20 Being static, it must be present in the same source file with the callers. Since the static libraries (libXXX.a) try to avoid bringing in non-used symbols by separating each symbol in the individual source file, I put the __fdopendir2, opendir and fdopendir into the individual files. Yes, use of the opendir or fdopendir would bring the __fdopendir2 in, but use of the opendir would not expose fdopendir extra. > so we should really repocopy opendir.c to __fdopendir2.c (there is a=20 > minor unnecessary. I do intent to repocopy it. This cannot be represented in the patch. >=20 > Another thing is that the fd =3D=3D -1 && (flags & DTF_REWIND) statement.= =20 > If this would be an internal routine then it sounds like to be better=20 > represented as an assertion. The caller should guarantee that the=20 > assertion hold true (by design), and the runtime check seems to be=20 > unnecessary (that's why I did not added these checks). Agree. >=20 > So I think the major difference between your version and mine is whether= =20 > we wanted to expose __fdopendir2() outside libc? Mine __fdopendir2() is also not exposed for the libc users, since it is not present in the public symbol map. nm DEV/src/lib/libc/libc.so.7 | grep __fdopendir2=20 000c1160 t __fdopendir2 As you see, the symbol is local. --fLj60tP2PZ34xyqD Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (FreeBSD) iEYEARECAAYFAkgEbvIACgkQC3+MBN1Mb4jP5wCggh7z9D6A6TnpCTzoqvP8ekR+ DsgAoO+k/hDLn6k+UgDga4o1zm89AeVq =bWMp -----END PGP SIGNATURE----- --fLj60tP2PZ34xyqD--