Reading and Writing to Block from di_spare

From: Adam <urbansnap_at_gmail.com>
Date: Thu, 17 Jan 2008 09:46:00 -0500
Hi, I am working on a project for where I want to take the standard  
UFS/FFS file system that BSD ships with and add several blocks of  
information to the dinode.  The simplest way of doing it seemed to be  
to allocate blocks to di_spare.  I believe that I have figured out how  
to do that:

ffs_alloc(inode, 0 , 0, (int)(inode->i_fs->fs_bsize), td->td_ucred,  
&addr);
dinode->di_spare[1]=(int64_t)addr;

I'm having problems taking that block address and reading/writing to  
it.   As far as I can tell most of the buffer read routines (getblk,  
bread) seem to be geared toward reading and writing direct and  
indirect blocks in an inode.

How do I read and write a block that is neither a direct nor an  
indirect block?

I apologize in advance if this is has been posted before. I have spent  
a considerable amount of time searching past posts for the solution.

Thanks,
Adam
Received on Thu Jan 17 2008 - 14:12:57 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:26 UTC