head 1.4; access; symbols netbsd-11-0-RC6:1.3 netbsd-11-0-RC5:1.3 netbsd-11-0-RC4:1.3 netbsd-11-0-RC3:1.3 netbsd-11-0-RC2:1.3 netbsd-11-0-RC1:1.3 perseant-exfatfs-base-20250801:1.3 netbsd-11:1.3.0.60 netbsd-11-base:1.3 netbsd-10-1-RELEASE:1.3 perseant-exfatfs-base-20240630:1.3 perseant-exfatfs:1.3.0.58 perseant-exfatfs-base:1.3 netbsd-8-3-RELEASE:1.3 netbsd-9-4-RELEASE:1.3 netbsd-10-0-RELEASE:1.3 netbsd-10-0-RC6:1.3 netbsd-10-0-RC5:1.3 netbsd-10-0-RC4:1.3 netbsd-10-0-RC3:1.3 netbsd-10-0-RC2:1.3 netbsd-10-0-RC1:1.3 netbsd-10:1.3.0.56 netbsd-10-base:1.3 netbsd-9-3-RELEASE:1.3 cjep_sun2x-base1:1.3 cjep_sun2x:1.3.0.54 cjep_sun2x-base:1.3 cjep_staticlib_x-base1:1.3 netbsd-9-2-RELEASE:1.3 cjep_staticlib_x:1.3.0.52 cjep_staticlib_x-base:1.3 netbsd-9-1-RELEASE:1.3 phil-wifi-20200421:1.3 phil-wifi-20200411:1.3 is-mlppp:1.3.0.50 is-mlppp-base:1.3 phil-wifi-20200406:1.3 netbsd-8-2-RELEASE:1.3 netbsd-9-0-RELEASE:1.3 netbsd-9-0-RC2:1.3 netbsd-9-0-RC1:1.3 phil-wifi-20191119:1.3 netbsd-9:1.3.0.48 netbsd-9-base:1.3 phil-wifi-20190609:1.3 netbsd-8-1-RELEASE:1.3 netbsd-8-1-RC1:1.3 pgoyette-compat-merge-20190127:1.3 pgoyette-compat-20190127:1.3 pgoyette-compat-20190118:1.3 pgoyette-compat-1226:1.3 pgoyette-compat-1126:1.3 pgoyette-compat-1020:1.3 pgoyette-compat-0930:1.3 pgoyette-compat-0906:1.3 netbsd-7-2-RELEASE:1.3 pgoyette-compat-0728:1.3 netbsd-8-0-RELEASE:1.3 phil-wifi:1.3.0.46 phil-wifi-base:1.3 pgoyette-compat-0625:1.3 netbsd-8-0-RC2:1.3 pgoyette-compat-0521:1.3 pgoyette-compat-0502:1.3 pgoyette-compat-0422:1.3 netbsd-8-0-RC1:1.3 pgoyette-compat-0415:1.3 pgoyette-compat-0407:1.3 pgoyette-compat-0330:1.3 pgoyette-compat-0322:1.3 pgoyette-compat-0315:1.3 netbsd-7-1-2-RELEASE:1.3 pgoyette-compat:1.3.0.44 pgoyette-compat-base:1.3 netbsd-7-1-1-RELEASE:1.3 matt-nb8-mediatek:1.3.0.42 matt-nb8-mediatek-base:1.3 perseant-stdc-iso10646:1.3.0.40 perseant-stdc-iso10646-base:1.3 netbsd-8:1.3.0.38 netbsd-8-base:1.3 prg-localcount2-base3:1.3 prg-localcount2-base2:1.3 prg-localcount2-base1:1.3 prg-localcount2:1.3.0.36 prg-localcount2-base:1.3 pgoyette-localcount-20170426:1.3 bouyer-socketcan-base1:1.3 pgoyette-localcount-20170320:1.3 netbsd-7-1:1.3.0.34 netbsd-7-1-RELEASE:1.3 netbsd-7-1-RC2:1.3 netbsd-7-nhusb-base-20170116:1.3 bouyer-socketcan:1.3.0.32 bouyer-socketcan-base:1.3 pgoyette-localcount-20170107:1.3 netbsd-7-1-RC1:1.3 pgoyette-localcount-20161104:1.3 netbsd-7-0-2-RELEASE:1.3 localcount-20160914:1.3 netbsd-7-nhusb:1.3.0.30 netbsd-7-nhusb-base:1.3 pgoyette-localcount-20160806:1.3 pgoyette-localcount-20160726:1.3 pgoyette-localcount:1.3.0.28 pgoyette-localcount-base:1.3 netbsd-7-0-1-RELEASE:1.3 netbsd-7-0:1.3.0.26 netbsd-7-0-RELEASE:1.3 netbsd-7-0-RC3:1.3 netbsd-7-0-RC2:1.3 netbsd-7-0-RC1:1.3 netbsd-6-0-6-RELEASE:1.3 netbsd-6-1-5-RELEASE:1.3 netbsd-7:1.3.0.24 netbsd-7-base:1.3 yamt-pagecache-base9:1.3 yamt-pagecache-tag8:1.3 netbsd-6-1-4-RELEASE:1.3 netbsd-6-0-5-RELEASE:1.3 tls-earlyentropy:1.3.0.22 tls-earlyentropy-base:1.3 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.3 riastradh-drm2-base3:1.3 netbsd-6-1-3-RELEASE:1.3 netbsd-6-0-4-RELEASE:1.3 netbsd-6-1-2-RELEASE:1.3 netbsd-6-0-3-RELEASE:1.3 netbsd-6-1-1-RELEASE:1.3 riastradh-drm2-base2:1.3 riastradh-drm2-base1:1.3 riastradh-drm2:1.3.0.16 riastradh-drm2-base:1.3 netbsd-6-1:1.3.0.20 netbsd-6-0-2-RELEASE:1.3 netbsd-6-1-RELEASE:1.3 netbsd-6-1-RC4:1.3 netbsd-6-1-RC3:1.3 agc-symver:1.3.0.18 agc-symver-base:1.3 netbsd-6-1-RC2:1.3 netbsd-6-1-RC1:1.3 yamt-pagecache-base8:1.3 netbsd-6-0-1-RELEASE:1.3 yamt-pagecache-base7:1.3 matt-nb6-plus-nbase:1.3 yamt-pagecache-base6:1.3 netbsd-6-0:1.3.0.14 netbsd-6-0-RELEASE:1.3 netbsd-6-0-RC2:1.3 tls-maxphys:1.3.0.12 tls-maxphys-base:1.3 matt-nb6-plus:1.3.0.10 matt-nb6-plus-base:1.3 netbsd-6-0-RC1:1.3 yamt-pagecache-base5:1.3 yamt-pagecache-base4:1.3 netbsd-6:1.3.0.8 netbsd-6-base:1.3 yamt-pagecache-base3:1.3 yamt-pagecache-base2:1.3 yamt-pagecache:1.3.0.6 yamt-pagecache-base:1.3 cherry-xenmp:1.3.0.4 cherry-xenmp-base:1.3 bouyer-quota2-nbase:1.3 bouyer-quota2:1.3.0.2 bouyer-quota2-base:1.3 matt-mips64-premerge-20101231:1.3 darran-pre-netbsd:1.2 darran-pre-freebsd:1.2 darran-pre-dtrace:1.2 matt-premerge-20091211:1.2; locks; strict; comment @# @; 1.4 date 2025.12.11.07.25.11; author andvar; state Exp; branches; next 1.3; commitid aNNNhHxbYy0xFXlG; 1.3 date 2010.11.30.00.14.42; author haad; state Exp; branches; next 1.2; 1.2 date 2009.10.06.08.47.59; author haad; state Exp; branches; next 1.1; 1.1 date 2009.08.07.20.57.55; author haad; state Exp; branches; next ; desc @@ 1.4 log @Fix various typos in comments. @ text @ NetBSD ZFS port TODO 1) ZVOL part * zpool cannot be destroyed -> could not destroy 'test': could not unmount datasets We are leaking descriptor after open -> I'm getting EBUSY from spscfs_open. 2) ZPL part * test zfs_vfsops.c and zfs_vnops.c changes * xattr and acl support is needed for filesystem permisions ? * Check if we are calling vfs_option clear set routines from vfs.c with mnt_updating lock held. * Port zfs_replay.c -> DONE 3) ZFS part * ACL support, xattr calls support * Snapshots support * iSCSI targets support * NFSv3, NFSv4 support * Samba filesystem support * Implement getpages/putpages for zfs, can be done with genfs_* routines but vnode_t need some changes. * zfs_rename support, Working but there are some issues with LOCKDEBUG see comment above zfs_rename. NetBSD ZFS Integration TODO Pre-integration tasks. DONE why is zfs module deadlocking. DONE try to create a zvol/pool. DONE when creating zvol/pool ok, do minor stress testing. DONE port vfsops and vnodeops. ignore getpages/putpages. DONE lookupname/lookupnameat/nameiat DONE device properties for disk partitions. DONE changes to newfs fsck for zvols. DONE re-read zpool.cache and reconfigure pools. DONE successful unload of the module. DONE implement basic getpages/putpages. DONE callbacks into arc, for reclaim of memory or kernel virtual space. DONE prevent module loading if less than 512MB RAM. - maybe changing the order of arguments for pool_cache constructors. DONE check ioctl handlers for safety (for patch to allow old-style unix ioctl) PDONE port ZFS ACL stuff, enough for POSIX. DONE port zfs_replay.c to NetBSD DONE successfully compile a kernel. - stress testing. DONE rc.d integration for zfs. DONE fix dangling vnode panic, get zfs unmount to work DONE fix zfs_rename bug -> fix should be sent back to sun DONE syncer/atime issues Post-integration tasks. - device properties for unique device id (driver:model-revision-serial-etc). - use device id to locate disks/partitions PDONE port ZFS snapshot / ctldir stuff. - zfs/nfs integration. - zfs/iscsi integration. - native getpages/putpages. PDONE zfs v22 update ZFS to latest. - Implement *at syscalls correctly. Pre netbsd-6.0 tasks - More testing especially zvol, vdev and zfs code snapshot will stay disabled - Get ztest and zdb working - Get zfs properties working Post netbsd-6.0 tasks - Update to latest version - Harden zfs, test, survive build.sh on zfs - all Post integration tasks - Write regression test suite - RUMP port (might be very good idea.) ####### ## List of Know ZFS bugs/issues ####### User-land ========= 1) zpool list ENOMEM error .... fixed in rev 1.3 sunddi.h and rev 1.5 zfs_ioctl.h 2) zfs unmount crash in getmntinfo 3) ztest TXG dmu commit threshold problem ?? Maybe fixed by replacing atomic functions with mutex. 4) ztest vdev resize problem (spa_thread ? ) Kernel ====== 1) Faulted zpool after modload (missing ztest/ dmu_objset) ZDB fails to work with because of this problem. This need to be investigated more. see zdb.c#2904 2) data lost on filesystem after panic 3) Strange panic during zfs_znode_dmu_init 4) zpool scrub panic in vdev_open->vdev_disk_open->VOP_IOCTL 5) zfs set doesn't work -> zfs set dedup=on, zfs set compression=gzip 6) device nodes in /dev/zvol are not created PDONE = Partialy done. @ 1.3 log @Update TODO for zfs add new tasks, list some know issues and mark some done stuff. iRequested by: agc@@ @ text @d42 1 a42 1 DONE callbacks into arc, for reclaim of memory or kernel virual space. @ 1.2 log @iMark done tasks as done and move *at implementation task to post-import phase. @ text @d59 1 a59 1 - port ZFS snapshot / ctldir stuff. d63 1 a63 1 - update ZFS to latest. d66 41 @ 1.1 log @Add NetBSD Solaris compat code and reachover Makefiles. Most of code written by Andrew Doran some of it by me. This is still work in progress code. There are known issues. Zfs can panic your system still. I will commit integration bits and needed kernel bits later when we fix most obvious bugs. This code need some support from our kernel which I will commit in a separate patch and therefore itnot work yet. Issues: 1) Support for openat/fstatat syscalls. 2) getnewvnode locking against myself panic when reclaiming vnodes 3) Replace solaris taskq with our workqueue which doesn't need to alloc anything during work. 4) Investigate problems with NO_WAIT allocations. Oked by core@@ and ad@@. @ text @d41 1 a41 1 PDONE implement basic getpages/putpages. d45 1 a45 1 - check ioctl handlers for safety (for patch to allow old-style unix ioctl) d50 1 a50 1 PDONE rc.d integration for zfs. a52 1 - implement lookupnameat(), fstatat() and openat() correctly. d64 1 @