On 11/17/2012 10:02 AM, Dave Chinner wrote:
> On Fri, Nov 16, 2012 at 02:51:04PM +0800, Jeff Liu wrote:
>> Introduce a new xfs_io command: agstate.
>> This command is used to get/set state for a given allocation group.
> xfs_io is not the place for this command.
I was also wonder why we place the agflags command on there since xfs_io is
at examining the regular file I/O paths, but I can not found out a better place
while implementing it.
> A couple of weeks ago I started writing an xfs_spaceman module and
> an ioctl interface for exactly this purpose, I just hadn't got
> around to completing it and the kernel patch to test it so I hadn't
> posted it. Once the userspace release is out of the way, I'll post
> the patches to get xfs_spaceman into xfs_progs, and we can use that
> for this AG control from the start.
> The reason for this is that the AG state in future is going to be a
> lot more complex than just enabling/disabling allocation, and the
> ioctl interface I prototyped supports a lot of that future
Definitely, so that we can have fine-granted AG controls, that's why I didn't
chose to re-base/post the previous agflags patch but proposed the agstate
because the naming would sounds more reasonable.
> The patch is below so you can see what sort of AG control/state
> functionality I think we'll be needing sooner rather than later, and
> the interface I think we should be using...
Ok, I'll waiting for this feature. :)
BTW, Does it sounds make sense if we implement parent pointer support at first?
I propose this because it would reduce many efforts for implementing
command, and reduce the overhead for iterating overall file systems to find out
files which are located at offline AGs.
>> Signed-off-by: Jie Liu <jeff.liu@xxxxxxxxxx>
>> include/xfs_ag.h | 32 ++++++++++++++++++++++++++++----
>> include/xfs_fs.h | 2 ++
>> io/Makefile | 2 +-
>> io/init.c | 1 +
>> 4 files changed, 32 insertions(+), 5 deletions(-)
> FWIW, I think you forgot to include the file that introduces the
> command in the patch :)
Oops! sorry for the mistake.