1 2 NetBSD ZFS port TODO 3 4 1) ZVOL part 5 6 * zpool cannot be destroyed -> could not destroy 'test': could not unmount datasets 7 We are leaking descriptor after open -> I'm getting EBUSY from spscfs_open. 8 9 2) ZPL part 10 11 * test zfs_vfsops.c and zfs_vnops.c changes 12 * xattr and acl support is needed for filesystem permisions ? 13 * Check if we are calling vfs_option clear set routines from vfs.c with mnt_updating lock held. 14 * Port zfs_replay.c -> DONE 15 16 3) ZFS part 17 18 * ACL support, xattr calls support 19 * Snapshots support 20 * iSCSI targets support 21 * NFSv3, NFSv4 support 22 * Samba filesystem support 23 * Implement getpages/putpages for zfs, can be done with genfs_* routines but vnode_t need some changes. 24 * zfs_rename support, Working but there are some issues with LOCKDEBUG see comment above zfs_rename. 25 26 27 NetBSD ZFS Integration TODO 28 29 30 Pre-integration tasks. 31 32 DONE why is zfs module deadlocking. 33 DONE try to create a zvol/pool. 34 DONE when creating zvol/pool ok, do minor stress testing. 35 DONE port vfsops and vnodeops. ignore getpages/putpages. 36 DONE lookupname/lookupnameat/nameiat 37 DONE device properties for disk partitions. 38 DONE changes to newfs fsck for zvols. 39 DONE re-read zpool.cache and reconfigure pools. 40 DONE successful unload of the module. 41 DONE implement basic getpages/putpages. 42 DONE callbacks into arc, for reclaim of memory or kernel virtual space. 43 DONE prevent module loading if less than 512MB RAM. 44 - maybe changing the order of arguments for pool_cache constructors. 45 DONE check ioctl handlers for safety (for patch to allow old-style unix ioctl) 46 PDONE port ZFS ACL stuff, enough for POSIX. 47 DONE port zfs_replay.c to NetBSD 48 DONE successfully compile a kernel. 49 - stress testing. 50 DONE rc.d integration for zfs. 51 DONE fix dangling vnode panic, get zfs unmount to work 52 DONE fix zfs_rename bug -> fix should be sent back to sun 53 DONE syncer/atime issues 54 55 Post-integration tasks. 56 57 - device properties for unique device id (driver:model-revision-serial-etc). 58 - use device id to locate disks/partitions 59 PDONE port ZFS snapshot / ctldir stuff. 60 - zfs/nfs integration. 61 - zfs/iscsi integration. 62 - native getpages/putpages. 63 PDONE zfs v22 update ZFS to latest. 64 - Implement *at syscalls correctly. 65 66 Pre netbsd-6.0 tasks 67 - More testing especially zvol, vdev and zfs code snapshot will stay disabled 68 - Get ztest and zdb working 69 - Get zfs properties working 70 71 Post netbsd-6.0 tasks 72 - Update to latest version 73 - Harden zfs, test, survive build.sh on zfs 74 - all Post integration tasks 75 - Write regression test suite 76 - RUMP port (might be very good idea.) 77 78 79 ####### 80 ## List of Know ZFS bugs/issues 81 ####### 82 83 User-land 84 ========= 85 86 1) zpool list ENOMEM error .... fixed in rev 1.3 sunddi.h and rev 1.5 zfs_ioctl.h 87 2) zfs unmount crash in getmntinfo 88 3) ztest TXG dmu commit threshold problem ?? Maybe fixed by replacing atomic functions with mutex. 89 4) ztest vdev resize problem (spa_thread ? ) 90 91 Kernel 92 ====== 93 94 1) Faulted zpool after modload (missing ztest/ dmu_objset) 95 ZDB fails to work with because of this problem. This need to be investigated more. 96 see zdb.c#2904 97 98 2) data lost on filesystem after panic 99 3) Strange panic during zfs_znode_dmu_init 100 4) zpool scrub panic in vdev_open->vdev_disk_open->VOP_IOCTL 101 5) zfs set doesn't work -> zfs set dedup=on, zfs set compression=gzip 102 6) device nodes in /dev/zvol are not created 103 104 105 106 107 108 PDONE = Partialy done. 109