Date: Mon, 20 Jun 2011 23:04:42 -0700 From: Xin LI <delphij@delphij.net> To: "Andrey V. Elsukov" <bu7cher@yandex.ru> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Xin LI <delphij@FreeBSD.org> Subject: Re: svn commit: r223356 - head/sbin/geom/class/part Message-ID: <4E00347A.80407@delphij.net> In-Reply-To: <4E00263C.4040802@yandex.ru> References: <201106210446.p5L4k0IZ080002@svn.freebsd.org> <4E00263C.4040802@yandex.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 06/20/11 22:03, Andrey V. Elsukov wrote: > On 21.06.2011 8:46, Xin LI wrote: >> Author: delphij >> Date: Tue Jun 21 04:46:00 2011 >> New Revision: 223356 >> URL: http://svn.freebsd.org/changeset/base/223356 >> >> Log: >> Mod the offset padding by alignment. Without this change we may >> pad too much when underlying GEOM object have a zero stripesize. > > No. In any way offset value could not be greater than mediasize. I don't think this changeset do anything with mediasize? > And it do nothing when alignment value is 1. No, an alignment value of 1 makes offset = 0, which is the intended behavior. Or did I misunderstood the code? Thanks in advance! >> MFC after: 1 month > > I did not MFC'd these changes yet. > >> Modified: >> head/sbin/geom/class/part/geom_part.c >> >> Modified: head/sbin/geom/class/part/geom_part.c >> ============================================================================== >> --- head/sbin/geom/class/part/geom_part.c Tue Jun 21 04:06:39 2011 (r223355) >> +++ head/sbin/geom/class/part/geom_part.c Tue Jun 21 04:46:00 2011 (r223356) >> @@ -362,7 +362,7 @@ gpart_autofill_resize(struct gctl_req *r >> goto done; >> } >> >> - offset = pp->lg_stripeoffset / pp->lg_sectorsize; >> + offset = (pp->lg_stripeoffset / pp->lg_sectorsize) % alignment; >> last = (off_t)strtoimax(find_geomcfg(gp, "last"), NULL, 0); >> LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { >> s = find_provcfg(pp, "index"); >> @@ -497,7 +497,7 @@ gpart_autofill(struct gctl_req *req) >> alignment = len; >> >> /* Adjust parameters to stripeoffset */ >> - offset = pp->lg_stripeoffset / pp->lg_sectorsize; >> + offset = (pp->lg_stripeoffset / pp->lg_sectorsize) % alignment; >> start = ALIGNUP(start + offset, alignment); >> if (size > alignment) >> size = ALIGNDOWN(size, alignment); >> >> > > - -- Xin LI <delphij@delphij.net> https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (FreeBSD) iQEcBAEBCAAGBQJOADR6AAoJEATO+BI/yjfBG5gH/2AFDv/cyvUXM16C5GBKjj8m XOqqRziAPz8VsICXjFLBdx0wxguYAB7Dr4U8krUgH0rOMIUXuew6lNmjQxfW2TQd 66o8XMTe9WdV28SZcJDJWpU5vAD2lQcGs88AjJt4fbtndHte3XN1kjBdZ6DpmMLw gdbn1iU836DFTE4kMdOhNb+h4RRbGNNx8QJ0jJO0RNrIUMy+w/dbgGUTqjYm6hTj vbZlA41QxSEx/cTDH7puje3/E9j9cIaOo3sCNpk1YrnVF7Syzn7arBruCmpDEVsN NIGVbD+WMvS4VxLK1Vwb6C1G6nYmf74fHDmkcwV4sg5iUw8V2SS6AO73ml9I/7U= =nfFW -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E00347A.80407>