In place of padding in zfs znode i added a new field. stored an integer value and am able to see saved information. but after reboot it is not there. If i was able to access before reboot so it must be in memory. I think i need to save it to disk. how does one force zfs znode to disk. right now i dont do anything special for it. Just made an ioctl, accessed znode and made changes. example in zfs_ioctl case add_new: zp = VTOZ(vp); zp->z_phys->new_field = 2; return(0); -- This message posted from opensolaris.org
shelly wrote:> In place of padding in zfs znode i added a new field. stored an integer value and am able to see saved information. > > but after reboot it is not there. If i was able to access before reboot so it must be in memory. I think i need to save it to disk. > how does one force zfs znode to disk. > right now i dont do anything special for it. Just made an ioctl, accessed znode and made changes. > > example in zfs_ioctl > > case add_new: > zp = VTOZ(vp); > zp->z_phys->new_field = 2; > return(0);Did you actually add a new field to znode_phys_t or did you take some space from the existing zp_pad[3] ? You can''t just change the size of a znode_phys_t every easily without having major on disk compat issues - that is why there is a pad area. There is a knock on impact to changing the size of a znode_phys_t in that it impacts the size of a dnode_phys_t as well and will interfere with the bonusbuf size. Why are you attempting to add a new field to the znode_phys_t anyway ? What are you attempting to store there ? -- Darren J Moffat