> > I took a look at both items since this discussion started. And honestly, > > I think 1) is harder that 4), so you're welcome to work on it :) The > > points that make it harder is that, per David's suggestion, there needs > > to be: > > - define two new transaction types > > one new transaction type: > > XFS_TRANS_AGF_FLAGS done > and and extension to xfs_alloc_log_agf(). Is about all that is > needed there. still to do. Will come after the ioctls. > See the patch here: > > http://oss.sgi.com/archives/xfs/2007-04/msg00103.html > > For an example of a very simlar transaction to what is needed > (look at xfs_log_sbcount()) and very similar addition to > the AGF (xfs_btreeblks). > > > - define two new ioctls > > XFS_IOC_ALLOC_ALLOW_AG, parameter xfsagnumber_t. > XFS_IOC_ALLOC_DENY_AG, parameter xfsagnumber_t. almost done. How I'm should I obtain a pointer to an xfs_agf_t from inside the ioctls? I guess that the first step is to get a *bp with xfs_getsb and then an *sbp, but, which function/macro gives me the xfs_agf_t pointer? Sorry, I can't find the way greeping through the code. > > - update the ondisk-format (!), if we want persistence of these flags; > > luckily, there are two spare fields in the AGF structure. > > Better to expand, I think. The AGF is a sector in length - we can > expand the structure as we need to this size without fear, esp. as > the part of the sector outside the structure is guaranteed to be > zero. i.e. we can add a fields flag to the end of the AGF > structure - old filesystems simple read as "no flags set" and > old kernels never look at those bits.... done. > > - check the list of allocation functions that allocate space from the > > AG still to be done. Thaks again for the help.