Re: svn commit: r314359 - in head: sbin/geom/class/part sys/geom/part

2017-02-27 Thread Mariusz Zaborski
On Mon, Feb 27, 2017 at 05:54:01PM +, Mariusz Zaborski wrote:
> Author: oshogbo
> Date: Mon Feb 27 17:54:01 2017
> New Revision: 314359
> URL: https://svnweb.freebsd.org/changeset/base/314359
> 
> Log:
>   Add sysctl to control auto resize of the GEOM metadata.
>   
>   Reviewed by:AllanJude
>   Differential Revision:  https://reviews.freebsd.org/D9603
Sorry, I think I should add:
Discussed with: ae

Sorry about that,
Mariusz Zaborski
> 
> Modified:
>   head/sbin/geom/class/part/gpart.8
>   head/sys/geom/part/g_part.c
> 
> Modified: head/sbin/geom/class/part/gpart.8
> ==
> --- head/sbin/geom/class/part/gpart.8 Mon Feb 27 17:50:38 2017
> (r314358)
> +++ head/sbin/geom/class/part/gpart.8 Mon Feb 27 17:54:01 2017
> (r314359)
> @@ -1146,6 +1146,18 @@ variables can be used to control the beh
>  GEOM class.
>  The default value is shown next to each variable.
>  .Bl -tag -width indent
> +.It Va kern.geom.part.auto_resize: No 1
> +This variable controls automatic resize behavior of
> +.Nm
> +GEOM class.
> +When this variable is enable and new size of provider is detected, the schema
> +metadata is resized but all changes are not saved to disk, until
> +.Cm gpart commit
> +is run to confirm changes.
> +This behavior is also reported with diagnostic message:
> +.Sy "GEOM_PART: (provider) was automatically resized."
> +.Sy "Use `gpart commit (provider)` to save changes or `gpart undo 
> (provider)`"
> +.Sy "to revert them."
>  .It Va kern.geom.part.check_integrity : No 1
>  This variable controls the behaviour of metadata integrity checks.
>  When integrity checks are enabled, the
> 
> Modified: head/sys/geom/part/g_part.c
> ==
> --- head/sys/geom/part/g_part.c   Mon Feb 27 17:50:38 2017
> (r314358)
> +++ head/sys/geom/part/g_part.c   Mon Feb 27 17:54:01 2017
> (r314359)
> @@ -135,6 +135,10 @@ static u_int check_integrity = 1;
>  SYSCTL_UINT(_kern_geom_part, OID_AUTO, check_integrity,
>  CTLFLAG_RWTUN, &check_integrity, 1,
>  "Enable integrity checking");
> +static u_int auto_resize = 1;
> +SYSCTL_UINT(_kern_geom_part, OID_AUTO, auto_resize,
> +CTLFLAG_RW, &auto_resize, 1,
> +"Enable auto resize");
>  
>  /*
>   * The GEOM partitioning class.
> @@ -2095,6 +2099,9 @@ g_part_resize(struct g_consumer *cp)
>   G_PART_TRACE((G_T_TOPOLOGY, "%s(%s)", __func__, cp->provider->name));
>   g_topology_assert();
>  
> + if (auto_resize == 0)
> + return;
> +
>   table = cp->geom->softc;
>   if (table->gpt_opened == 0) {
>   if (g_access(cp, 1, 1, 1) != 0)
> ___
> svn-src-head@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


signature.asc
Description: PGP signature


svn commit: r314359 - in head: sbin/geom/class/part sys/geom/part

2017-02-27 Thread Mariusz Zaborski
Author: oshogbo
Date: Mon Feb 27 17:54:01 2017
New Revision: 314359
URL: https://svnweb.freebsd.org/changeset/base/314359

Log:
  Add sysctl to control auto resize of the GEOM metadata.
  
  Reviewed by:  AllanJude
  Differential Revision:https://reviews.freebsd.org/D9603

Modified:
  head/sbin/geom/class/part/gpart.8
  head/sys/geom/part/g_part.c

Modified: head/sbin/geom/class/part/gpart.8
==
--- head/sbin/geom/class/part/gpart.8   Mon Feb 27 17:50:38 2017
(r314358)
+++ head/sbin/geom/class/part/gpart.8   Mon Feb 27 17:54:01 2017
(r314359)
@@ -1146,6 +1146,18 @@ variables can be used to control the beh
 GEOM class.
 The default value is shown next to each variable.
 .Bl -tag -width indent
+.It Va kern.geom.part.auto_resize: No 1
+This variable controls automatic resize behavior of
+.Nm
+GEOM class.
+When this variable is enable and new size of provider is detected, the schema
+metadata is resized but all changes are not saved to disk, until
+.Cm gpart commit
+is run to confirm changes.
+This behavior is also reported with diagnostic message:
+.Sy "GEOM_PART: (provider) was automatically resized."
+.Sy "Use `gpart commit (provider)` to save changes or `gpart undo (provider)`"
+.Sy "to revert them."
 .It Va kern.geom.part.check_integrity : No 1
 This variable controls the behaviour of metadata integrity checks.
 When integrity checks are enabled, the

Modified: head/sys/geom/part/g_part.c
==
--- head/sys/geom/part/g_part.c Mon Feb 27 17:50:38 2017(r314358)
+++ head/sys/geom/part/g_part.c Mon Feb 27 17:54:01 2017(r314359)
@@ -135,6 +135,10 @@ static u_int check_integrity = 1;
 SYSCTL_UINT(_kern_geom_part, OID_AUTO, check_integrity,
 CTLFLAG_RWTUN, &check_integrity, 1,
 "Enable integrity checking");
+static u_int auto_resize = 1;
+SYSCTL_UINT(_kern_geom_part, OID_AUTO, auto_resize,
+CTLFLAG_RW, &auto_resize, 1,
+"Enable auto resize");
 
 /*
  * The GEOM partitioning class.
@@ -2095,6 +2099,9 @@ g_part_resize(struct g_consumer *cp)
G_PART_TRACE((G_T_TOPOLOGY, "%s(%s)", __func__, cp->provider->name));
g_topology_assert();
 
+   if (auto_resize == 0)
+   return;
+
table = cp->geom->softc;
if (table->gpt_opened == 0) {
if (g_access(cp, 1, 1, 1) != 0)
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"