Date: Thu, 17 Jan 2008 14:44:57 -0500 From: David Schultz <das@FreeBSD.ORG> To: Adam <urbansnap@gmail.com> Cc: freebsd-current@FreeBSD.ORG Subject: Re: Reading and Writing to Block from di_spare Message-ID: <20080117194457.GA84887@VARK.MIT.EDU> In-Reply-To: <485228D5-8D0B-4CD5-9FB7-B0D551B172DA@gmail.com>
index | next in thread | previous in thread | raw e-mail
On Thu, Jan 17, 2008, Adam wrote: > 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? Maybe I'm misunderstanding your question, but I don't see how you could expect FreeBSD to have routines to read and write things that don't exist in FreeBSD. :) See extattr(2). It may be possible that the "extra information" you want to store with files can be stored in user space using the relatively standard extended attributes API.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080117194457.GA84887>
