Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Jul 2016 13:38:44 +0800
From:      Sepherosa Ziehau <sepherosa@gmail.com>
To:        "Andrey V. Elsukov" <ae@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org,  svn-src-head@freebsd.org
Subject:   Re: svn commit: r303019 - head/sys/geom
Message-ID:  <CAMOc5czB6dYE2db5LTwTFGaxi=xD90m_z-0Vr%2BK5u7Af77bbUA@mail.gmail.com>
In-Reply-To: <201607190536.u6J5aLl7015268@repo.freebsd.org>
References:  <201607190536.u6J5aLl7015268@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks!

On Tue, Jul 19, 2016 at 1:36 PM, Andrey V. Elsukov <ae@freebsd.org> wrote:
> Author: ae
> Date: Tue Jul 19 05:36:21 2016
> New Revision: 303019
> URL: https://svnweb.freebsd.org/changeset/base/303019
>
> Log:
>   Use g_resize_provider() to change the size of GEOM_DISK provider,
>   when it is being opened. This should fix the possible loss of a resize
>   event when disk capacity changed.
>
>   PR:           211028
>   Reported by:  Dexuan Cui <decui at microsoft dot com>
>   MFC after:    3 weeks
>
> Modified:
>   head/sys/geom/geom_disk.c
>
> Modified: head/sys/geom/geom_disk.c
> ==============================================================================
> --- head/sys/geom/geom_disk.c   Tue Jul 19 04:56:59 2016        (r303018)
> +++ head/sys/geom/geom_disk.c   Tue Jul 19 05:36:21 2016        (r303019)
> @@ -126,7 +126,6 @@ g_disk_access(struct g_provider *pp, int
>                         if (error != 0)
>                                 return (error);
>                 }
> -               pp->mediasize = dp->d_mediasize;
>                 pp->sectorsize = dp->d_sectorsize;
>                 if (dp->d_maxsize == 0) {
>                         printf("WARNING: Disk drive %s%d has no d_maxsize\n",
> @@ -143,6 +142,7 @@ g_disk_access(struct g_provider *pp, int
>                 pp->stripeoffset = dp->d_stripeoffset;
>                 pp->stripesize = dp->d_stripesize;
>                 dp->d_flags |= DISKFLAG_OPEN;
> +               g_resize_provider(pp, dp->d_mediasize);
>         } else if ((pp->acr + pp->acw + pp->ace) > 0 && (r + w + e) == 0) {
>                 if (dp->d_close != NULL) {
>                         error = dp->d_close(dp);
> _______________________________________________
> svn-src-all@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-all
> To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"



-- 
Tomorrow Will Never Die



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAMOc5czB6dYE2db5LTwTFGaxi=xD90m_z-0Vr%2BK5u7Af77bbUA>