xfs
[Top] [All Lists]

Re: separate project quota from group quota (questions, design issues)

To: Arkadiusz Miskiewicz <arekm@xxxxxxxx>
Subject: Re: separate project quota from group quota (questions, design issues)
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Sat, 4 Sep 2010 19:30:53 -0400
Cc: xfs@xxxxxxxxxxx
In-reply-to: <201009041000.55878.arekm@xxxxxxxx>
References: <201009041000.55878.arekm@xxxxxxxx>
User-agent: Mutt/1.5.20 (2009-08-17)
Thanks for doing this work Arek, I think it will be useful for some
users and defintively is cleaners than what we have now.

> I started doing that by splitting every group+project handling code into 
> separate group and project one. Added superblock field for project quota. New 
> feature flag (SEPARATEPQUOTA).

Ok.

> If old filesystem (for SEPARATEQUOTA) is mounted then I'll simply load 
> sb_gquotino into mp->m_sb.sb_pquotino which I think is enough to handle old 
> fs 
> (since new kernel operates on separate structures for project quota).

Do you mean an old filesystem without the SEPARATEQUOTA bit set here?

> New filesystem (without quota inodes allocated yet), when mounted, gets new 
> quota inode allocated for project quota and SEPARATEQUOTA feature bit set.

I think we need the SEPARATEQUOTA bit set explicitly by
mkfs.xfs/xfs_admin.  But once we start using project quotas with the
bit set the above sounds fine.

> Converting old fs to separate quota isn't currently solved. User could need 
> two choices - use old group quota still as group or old group as new project 
> quota. Not sure how to handle these yet. 

We know what sb_gquotino is used for currently from sb_qflags.  If it's
used for group quota we can simply set the SEPARATEQUOTA bit and we're
done.  To convert a filesystem using project quotas to SEPARATEQUOTA
sb_gquotino needs to be cleared and instead the new sb_pquotino field
needs to point to the project quota inode.


Need to go now, I'll answer to your other questions once I had some more
time to review them.

<Prev in Thread] Current Thread [Next in Thread>