ZFS port to FreeBSD: 2nd patchset available.

Yoshihiro Ota ota at j.email.ne.jp
Mon Mar 5 05:27:14 UTC 2007


On Sun, 4 Mar 2007 13:38:01 +0100
Pawel Jakub Dawidek <pjd at FreeBSD.org> wrote:

> Please report any problems ('it works without problems!' is nice too).
> 
> Good luck.

I just started trying the 1st patchset about a week ago.  There is no reason why not to try the 2nd patchset.

Well, here is how I did it.

1. Since I had the 1st patch sets, void it first via reverse patch.
% patch -R -p0 < zfs_20061117.patch

2. There were some conflict/failure; I deleted them.
% rm files-that-reverse-patch-failed

3. Update source tree to recover deleted files.
% cvs up

4. Apply the 2nd patchset.
% patch -p0 < zfs_20070303.patch

5. I somehow got compile error so that I needed to fix it.
% patch -p0 < zfs-patchset2-fix.diff

atomic_cas_ptr returns (void*) and winner is (dnode_t *).
For some reason, the compiler complained and I needed to cast.

"make kernel" was successful and I rebooted and verified that I could load zfs module.  And then, I ran out of time; I will try it again later.

Thank you for your hard work.

Regards,
Hiro

-------------- next part --------------
--- sys/contrib/opensolaris/uts/common/fs/zfs/dnode.c.orig2	Sun Mar  4 23:09:11 2007
+++ sys/contrib/opensolaris/uts/common/fs/zfs/dnode.c	Sun Mar  4 23:09:32 2007
@@ -605,7 +605,7 @@
 		dnode_t *winner;
 		dn = dnode_create(os, (dnode_phys_t *)db->db.db_data+idx,
 			db, object);
-		winner = atomic_cas_ptr(&children_dnodes[idx], NULL, dn);
+		winner = (dnode_t*)atomic_cas_ptr(&children_dnodes[idx], NULL, dn);
 		if (winner != NULL) {
 			dnode_destroy(dn);
 			dn = winner;




More information about the freebsd-fs mailing list