Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Dec 2009 14:10:13 -0800
From:      Xin LI <delphij@gmail.com>
To:        =?UTF-8?Q?Micka=C3=ABl_Maillot?= <mickael.maillot@gmail.com>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: ZFS small fix in arc.c and zvol.c
Message-ID:  <a78074950912291410jd37101agcc6fc7c974f1829d@mail.gmail.com>
In-Reply-To: <ea7b7b810912291246v4a989cd2t357b0a34f99a56e1@mail.gmail.com>
References:  <ea7b7b810912291246v4a989cd2t357b0a34f99a56e1@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

I think we'd better to bring our base code to be more current rather
than picking up individual revisions, diverging further is probably
not a good idea if we see long term cooperation with OpenSolaris as a
goal...

On Tue, Dec 29, 2009 at 12:46 PM, Micka=C3=ABl Maillot
<mickael.maillot@gmail.com> wrote:
> Hi,
>
> /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
> in arc.c, a mutex is not properly detroyed:
>
> --- arc.c.orig =C2=A02009-12-29 21:15:31.192819155 +0100
> +++ arc.c =C2=A0 =C2=A0 =C2=A0 2009-12-29 21:16:58.034271766 +0100
> @@ -3626,6 +3626,7 @@
> =C2=A0 =C2=A0 =C2=A0 =C2=A0mutex_destroy(&arc_mru_ghost->arcs_mtx);
> =C2=A0 =C2=A0 =C2=A0 =C2=A0mutex_destroy(&arc_mfu->arcs_mtx);
> =C2=A0 =C2=A0 =C2=A0 =C2=A0mutex_destroy(&arc_mfu_ghost->arcs_mtx);
> + =C2=A0 =C2=A0 =C2=A0 mutex_destroy(&arc_l2c_only->arcs_mtx);
>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0mutex_destroy(&zfs_write_limit_lock);

Looks like a part of OpenSolaris onnv revision 8214?  Are you having
some specific issue without this patch?

> i dont know if it's ok but in zvol.c
> opensolaris call zvol_size_changed
> just after zil_replay in zvol_create_minor function
>
> --- zvol.c.orig 2009-12-29 21:31:42.111529028 +0100
> +++ zvol.c =C2=A0 =C2=A0 =C2=A02009-12-29 21:32:32.347413297 +0100
> @@ -837,6 +837,7 @@
> =C2=A0 =C2=A0 =C2=A0 =C2=A0zv->zv_volblocksize =3D doi.doi_data_block_siz=
e;
>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0zil_replay(os, zv, &zv->zv_txg_assign, zvol_re=
play_vector, NULL);
> + =C2=A0 =C2=A0 =C2=A0 zvol_size_changed(zv, maj);
>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0/* XXX this should handle the possible i/o err=
or */
> =C2=A0 =C2=A0 =C2=A0 =C2=A0VERIFY(dsl_prop_register(dmu_objset_ds(zv->zv_=
objset),

It seems that the OpenSolaris code has changed a lot and I didn't find
similar change in OpenSolaris (yet).  Do you have a specific revision
number or a tag?

Cheers,
--=20
Xin LI <delphij@delphij.net> http://www.delphij.net



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a78074950912291410jd37101agcc6fc7c974f1829d>