Subject: Re: Journaling for FFS
To: M J Fleming <scs5mjf@comp.leeds.ac.uk>
From: Bill Studenmund <wrstuden@netbsd.org>
List: tech-kern
Date: 10/01/2006 23:08:09
--n8g4imXOkfNTN/H1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Oct 01, 2006 at 11:38:43PM +0100, M J Fleming wrote:
> I understand that this year's Google Summer of Code project to provide=20
> journaling support to FFS wasn't successful, however I feel that the proj=
ect
> is worthwhile and would love to see it come to fruition.
>=20
> What are the issues with licensing with regard to using a compatible on-d=
isk
> format to Solaris' UFS, which is the idea mentioned at=20
> http://www.netbsd.org/contrib/projects.html#j-ffs ?

There should be no issues with licensing with regard to the on-disk=20
format. Licensing would arise if there were either patent or copyright=20
issues involved. I am aware of no patent issues, and the only way=20
copyright issues would arise is from use of material that has a Sun=20
copyright (or someone else's).

That said, I think it's simpler to go with a physical-block journal. Get=20
Dominic Giampaolo's book ("Practical File System Design with the Be File=20
System") and it's well-discussed.

The one thing we'd have issues with will have issues with a logical=20
journal as well, and that's handling unlinked-but-active inodes.

You need two things for a journaling file system addition: 1) you need=20
code to do the journal transactions. Giampaolo's book will give you that,=
=20
at least as an overview. 2) You will need to look at all metadata writes=20
and figure out how to journal them (you'll need this either way). i.e. how=
=20
to inject transactions into the journal. Softdeps can be somewhat helpful=
=20
here as it too will identify metadata update points, though it's only so=20
helpful as you completely DON'T need the dependency stuff in softdeps,=20
which may make it all confusing.

Take care,

Bill

--n8g4imXOkfNTN/H1
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (NetBSD)

iD8DBQFFIKzIWz+3JHUci9cRAj7jAKCBoZK6EbalUyc9h/mg5SGoEKRkbQCfR5jY
gDNV57mHvQDeLzwUOBMAKx4=
=vFRF
-----END PGP SIGNATURE-----

--n8g4imXOkfNTN/H1--