From owner-svn-src-head@freebsd.org Wed Aug 2 10:55:52 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5A9DDCD028; Wed, 2 Aug 2017 10:55:52 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 4D587141; Wed, 2 Aug 2017 10:55:52 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id v72AtjsH013497 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 2 Aug 2017 13:55:46 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua v72AtjsH013497 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id v72AtjC2013491; Wed, 2 Aug 2017 13:55:45 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 2 Aug 2017 13:55:45 +0300 From: Konstantin Belousov To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r321920 - head/sys/sys Message-ID: <20170802105545.GB1700@kib.kiev.ua> References: <201708021014.v72AEHEk061037@repo.freebsd.org> <50d380b1-806a-6114-7324-e4cd3d6a2b2f@selasky.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <50d380b1-806a-6114-7324-e4cd3d6a2b2f@selasky.org> User-Agent: Mutt/1.8.3 (2017-05-23) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Aug 2017 10:55:52 -0000 On Wed, Aug 02, 2017 at 12:23:22PM +0200, Hans Petter Selasky wrote: > On 08/02/17 12:14, Konstantin Belousov wrote: > > Author: kib > > Date: Wed Aug 2 10:14:17 2017 > > New Revision: 321920 > > URL: https://svnweb.freebsd.org/changeset/base/321920 > > > > Log: > > Change major()/minor() to work with 64bit dev_t. > > > > Since traditional types for the macros values are int, remove the > > cookie trick and just split the dev_t at the word boundary. > > > > Reported by: Victor Stinner > > PR: 221048 > > Sponsored by: The FreeBSD Foundation > > > > Modified: > > head/sys/sys/types.h > > > > Modified: head/sys/sys/types.h > > ============================================================================== > > --- head/sys/sys/types.h Wed Aug 2 10:12:10 2017 (r321919) > > +++ head/sys/sys/types.h Wed Aug 2 10:14:17 2017 (r321920) > > @@ -364,14 +364,9 @@ __bitcount64(__uint64_t _x) > > > > #include > > > > -/* > > - * minor() gives a cookie instead of an index since we don't want to > > - * change the meanings of bits 0-15 or waste time and space shifting > > - * bits 16-31 for devices that don't use them. > > - */ > > -#define major(x) ((int)(((u_int)(x) >> 8)&0xff)) /* major number */ > > -#define minor(x) ((int)((x)&0xffff00ff)) /* minor number */ > > -#define makedev(x,y) ((dev_t)(((x) << 8) | (y))) /* create dev_t */ > > +#define major(x) ((int)((dev_t)(x) >> 32)) /* major number */ > > +#define minor(x) ((int)((x) & 0xffffffff)) /* minor number */ > > +#define makedev(x, y) (((dev_t)(x) << 32) | (y)) /* create dev_t */ > > > > /* > > * These declarations belong elsewhere, but are repeated here and in > > Hi, > > This change looks like it affects user-space applications? Why is not > the FreeBSD version number bumped? This change is the trailing fix for the ino64 commit. More details are following: main feature of major/minor is the deconstruction of the dev_t into components which can be used to reconstruct original dev_t with makedev(). In other words, if makedev(major(x), minor(x)) != x then the major/minor API is useless. And it was useless right after ino64 commit r318736 and up to the commit you replied to. The fact that nobody complained until the referenced PR, indicates that the API is not actively used (finally). I do not see a need to bump the __FreeBSD_version for this, we do not support older HEADs in any way. This means that we assume that HEAD users always use the latest HEAD. So no bump for such minor fix.