All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arkadiusz Miskiewicz <arekm@maven.pl>
To: Christoph Hellwig <hch@infradead.org>
Cc: xfs@oss.sgi.com
Subject: Re: separate project quota from group quota (questions, design issues)
Date: Sun, 5 Sep 2010 19:24:35 +0200	[thread overview]
Message-ID: <201009051924.36443.arekm@maven.pl> (raw)
In-Reply-To: <20100904233053.GA26586@infradead.org>

On Sunday 05 of September 2010, Christoph Hellwig wrote:
> 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?

Yes. When trying to load existing project quota inode in 
xfs_qm_init_quotainos() I'm doing:

+                       if (!xfs_sb_version_hasseparatepquota(&mp->m_sb)) {
+                               ASSERT(!XFS_IS_GQUOTA_ON(mp));
+                               mp->m_sb.sb_pquotino = mp->m_sb.sb_gquotino;
+                               mp->m_sb.sb_gquotino = 0;
+                       }

While xfs_mod_sb() now does:

        /*                                                                                                                                                   
         * Filesystem has no separatepquota turned on,                                                                                                       
         * so we need to store project quota in group                                                                                                        
         * quota inode on disk.                                                                                                                              
         */                                                                                                                                                  
        if (!xfs_sb_version_hasseparatepquota(&mp->m_sb)) {                                                                                                  
                mp->m_sb.sb_gquotino = mp->m_sb.sb_pquotino;                                                                                                 
                mp->m_sb.sb_pquotino = 0;                                                                                                                    
        }  

       xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb, fields);

 [...]
        /*
         * Restore original in-memory project quota inode state.
         */
        if (!xfs_sb_version_hasseparatepquota(&mp->m_sb)) {                                                                                                  
                mp->m_sb.sb_pquotino = mp->m_sb.sb_gquotino;                                                                                                 
                mp->m_sb.sb_gquotino = 0;                                                                                                                    
        }     

so in-memory sb_pquotaino is always used for project quota (regardless of 
SEPARATEPQUOTA feature) while on-disk is depending on SEPARATEPQUOTA feature 
bit. SB modify part is untested yet.

> > 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.

Ok, I'll add new "upgrade <feature>" command to xfs_db (and call it from 
xfs_admin, too) where for now the only feature will be "separatepquota" one.

-- 
Arkadiusz Miśkiewicz        PLD/Linux Team
arekm / maven.pl            http://ftp.pld-linux.org/

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2010-09-05 17:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-04  8:00 separate project quota from group quota (questions, design issues) Arkadiusz Miskiewicz
2010-09-04 17:13 ` Michael Monnerie
2010-09-04 23:30 ` Christoph Hellwig
2010-09-05 17:24   ` Arkadiusz Miskiewicz [this message]
2010-09-06  1:12     ` Dave Chinner
2010-09-06  6:28       ` Arkadiusz Miskiewicz
2010-09-06  1:16   ` Dave Chinner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201009051924.36443.arekm@maven.pl \
    --to=arekm@maven.pl \
    --cc=hch@infradead.org \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.