> > 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.
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
|