File:  [NetBSD Developer Wiki] / wikisrc / projects / project / lfs-quotas.mdwn
Revision 1.1: download - view: text, annotated - select for diffs
Sat Aug 27 03:26:05 2016 UTC (3 years, 3 months ago) by dholland
Branches: MAIN
CVS tags: HEAD
Add a project for quotas in LFS.

[[!template id=project

title="Quotas for LFS"



LFS is currently carrying around both support for the historical quota
format ("quota1") and the recent newer 64-bit in-volume quota format
("quota2") from FFS, but neither is actually connected up or works. In
fact, neither has ever worked -- there is no reason to worry about

Define a new on-disk quota format that shares some of the properties
of both the FFS formats:

* it should be 64-bit (like quota2);

* in LFS there is no reason to have a tree-within-a-file like quota2;
just files indexed directly by uid/gid like quota1 is fine;

* the quota files should be hidden away like in quota2;

* there should be explicit support for deleting quota entries like

* some of the additional bits in quota2, like default value handling,
should be retained.

Implement the quota system by folding together the existing copies of
the quota1 and quota2 code and writing as little new code as
possible. Note that while the "ulfs" code should have more or less
complete quota support and all the necessary hooks in place, you'll
have to add quota hooks to the native lfs code.

You will also need to figure out (before you start coding) what if any
special steps need to be taken to make sure that the quota files on
disk end up consistent as segments are written out. This may require
additional logic like the existing DIROP logic, which would likely be
a pain.

Add an option to newfs_lfs to enable quotas. Then add code to fsck_lfs
to crosscheck and correct the usage amounts.  Also add logic in
tunefs_lfs to turn quotas on and off. (It's ok to require a fsck
afterwards when turning quotas on to compute the current usage

(Note that as of this writing no tunefs_lfs program exists -- that
will have to be corrected too.)


CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb