From owner-svn-src-head@FreeBSD.ORG Tue Apr 26 07:50:23 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2A4D9106564A; Tue, 26 Apr 2011 07:50:23 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id AE4EE8FC16; Tue, 26 Apr 2011 07:50:21 +0000 (UTC) Received: by bwz12 with SMTP id 12so443993bwz.13 for ; Tue, 26 Apr 2011 00:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:sender:message-id:date:from:user-agent :mime-version:to:cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=swLLm8VLPa2VdgNxVK6k6qEQ4diKhA/QJerEcAJd6EI=; b=WUf+9pgFkAG2VYJ7ObLx3LCgM20HVvJ5bTre2qRdGpfCOvVHBBJ8f5DtfblLv59TX5 URLWhX+FiqBSFnZWwnWBM0jgDnf3gVvdb5WdbNVYldqA5smIRIlivBf4GpHfYh+46Q/3 r5Amn3XFBQQKg6sJThmA5a9I05Qe4PRN5Jlhg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=w35GqtSLzUuPbOdW1DSH5qgIoE3w+AFw/6Dm7Dl4qhWH6m1V/kikXgByau/aK+E5xr WRnAGthfW7mvrPX5KFagvRCXkMaBSSMRKaK80NfMuMu/0365Oe17wEhqY+nCvdoe6fIU oA2UxYLrAlgpw1knaFseaghe3ptysjKq3fCe0= Received: by 10.204.19.83 with SMTP id z19mr372562bka.191.1303804220741; Tue, 26 Apr 2011 00:50:20 -0700 (PDT) Received: from mavbook.mavhome.dp.ua (pc.mavhome.dp.ua [212.86.226.226]) by mx.google.com with ESMTPS id l1sm3686680bkl.1.2011.04.26.00.50.18 (version=SSLv3 cipher=OTHER); Tue, 26 Apr 2011 00:50:20 -0700 (PDT) Sender: Alexander Motin Message-ID: <4DB67939.6080301@FreeBSD.org> Date: Tue, 26 Apr 2011 10:50:17 +0300 From: Alexander Motin User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.15) Gecko/20110310 Thunderbird/3.1.9 MIME-Version: 1.0 To: Pawel Jakub Dawidek References: <4DB441B0.8020906@FreeBSD.org> <20110425134531.GA4391@garage.freebsd.pl> <50385B7B-7EC8-4BC3-8F88-83F9EB4096FB@bsdimp.com> <4DB5A166.9010302@FreeBSD.org> <67F62848-FAA3-4C46-A95A-DA7C82281898@bsdimp.com> <4DB5B0A9.4030805@FreeBSD.org> <20110426070020.GC2472@garage.freebsd.pl> <4DB6721B.3020600@FreeBSD.org> <20110426073517.GF2472@garage.freebsd.pl> In-Reply-To: <20110426073517.GF2472@garage.freebsd.pl> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, "Bjoern A. Zeeb" , Robert Watson , svn-src-head@freebsd.org, Warner Losh Subject: Re: svn commit: r220982 - in head: . sys/amd64/conf sys/arm/conf sys/conf sys/i386/conf sys/ia64/conf sys/mips/conf sys/mips/malta sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 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: Tue, 26 Apr 2011 07:50:23 -0000 On 26.04.2011 10:35, Pawel Jakub Dawidek wrote: > On Tue, Apr 26, 2011 at 10:19:55AM +0300, Alexander Motin wrote: >> On 26.04.2011 10:00, Pawel Jakub Dawidek wrote: >>> On Mon, Apr 25, 2011 at 08:34:33PM +0300, Alexander Motin wrote: >>>> I've thought about the process of fixing hardcoded provider names there, >>>> and it is absolutely not trivial. If we take the "symlinking" way (patch >>>> is already posted to current@), I think it will be much easier for >>>> everybody, and especially users, if I hack all mentioned above GEOM >>>> classes to ignore adX/adaY difference in provider names. And it should >>>> perfectly fit into remaining time window. >>> >>> Could you be more specific what the hack would do exactly? >> >> I would write some comparison function, which would search both >> names for adX/adaY prefixes, if they found on both arguments, >> trimmed them and compared remaining parts. >> >> I think for usual purpose of name hardcoding device name part is >> less important. Comparing partition names part should be enough. The >> tricky part there is to properly identify device part, so I was >> thinking about specific hack for adX/adaY. > > I was wondering how would you match X and Y, but this is indeed not > important. So on taste we could do (totally untested): > > static bool > provider_name_matches(const char *ppname, const char *hcname) > { > > if (strcmp(ppname, hcname) == 0) > return (true); > if (strncmp(hcname, "ad", 2) != 0 || > hcname[2]< '0' || hcname[2]> '9') { > return (false); > } > if (strncmp(ppname, "ada", 3) != 0 || > ppname[3]< '0' || ppname[3]> '9') { > return (false); > } > /* Skip 'ad[0-9]+'. */ > hcname += 3; > while (hcname[0]>= '0'&& hcname[0]<= '9') > hcname++; > /* Skip 'ada[0-9]+'. > ppname += 4; > while (ppname[0]>= '0'&& ppname[0]<= '9') > ppname++; > > return (strcmp(ppname, hcname) == 0); > } > > That could work. Yes, I was thinking about something like that. May be just symmetric, so it could handle some cases of downgrade. > Another possibility I was thinking of was to create GEOM providers for > both names and orphan the other name once one of them is opened for > writing. I've even implemented patch (posted on current@) with close idea (I was creating extra geom with legacy name), and it will have the same problem: if somebody open any partition on the device with the new name, all legacy names will become inaccessible (busy), and vice versa. It could be not a big problem if it would only be user's choice -- we could say just: "use one or another, not both". But provider could be chosen blindly by some GEOM class, such as glabel, and then it turns into pure lottery. -- Alexander Motin