i gruppi. Così è possibile usare le limitazioni delle quote o sugli utenti o
sui gruppi o su entrambi.
+Dal kernel 4.1, ed inizialmente solo per il filesystem XFS, sono diventate
+disponibili un terzo tipo di quote, dette \textit{project quota}, che
+consentono di applicare delle quote ad un ``\textsl{progetto}'', identificato
+come ramo di albero sotto una directory, per il quale possono essere imposti
+dei limiti (di nuovo in termini di spazio disco o \textit{inode}) per i file
+che ne fanno parte. Si può così porre dei limiti sul contenuto di un ramo di
+albero.
+
Il meccanismo prevede che per ciascun filesystem che supporta le quote disco
(i vari \textit{extN}, \textit{btrfs}, \textit{XFS}, \textit{JFS},
\textit{ReiserFS}) il kernel provveda sia a mantenere aggiornati i dati
-relativi al consumo delle risorse da parte degli utenti e dei gruppi, che a
-far rispettare i limiti imposti dal sistema, con la generazione di un errore
-di \errcode{EDQUOT} per tutte le operazioni sui file che porterebbero ad un
-superamento degli stessi. Si tenga presente che questi due compiti sono
-separati, il primo si attiva al montaggio del filesystem con il supporto per
-le quote, il secondo deve essere abilitato esplicitamente.
+relativi al consumo delle risorse da parte degli utenti e dei gruppi (e del
+progetto), che a far rispettare i limiti imposti dal sistema, con la
+generazione di un errore di \errcode{EDQUOT} per tutte le operazioni sui file
+che porterebbero ad un superamento degli stessi. Si tenga presente che questi
+due compiti sono separati, il primo si attiva al montaggio del filesystem con
+il supporto per le quote, il secondo deve essere abilitato esplicitamente.
Per il mantenimento dei dati di consumo delle risorse vengono usati due file
riservati nella directory radice del filesystem su cui si sono attivate le
quote, uno per le quote utente e l'altro per le quote gruppo.\footnote{la cosa
vale per tutti i filesystem tranne \textit{XFS} che mantiene i dati
- internamente.} Con la versione 2 del supporto delle quote, che da anni è
+ internamente, compresi quelli per le \textit{project quota}, che pertanto,
+ essendo questo l'unico filesyste che le supporta, non hanno un file ad esse
+ riservato.} Con la versione 2 del supporto delle quote, che da anni è
l'unica rimasta in uso, questi file sono \texttt{aquota.user} e
\texttt{aquota.group}, in precedenza erano \texttt{quota.user} e
\texttt{quota.group}.
% TODO rivedere gli errori
La funzione richiede che il filesystem sul quale si vuole operare, che deve
-essere specificato con il nome del relativo file di dispositivo
-nell'argomento \param{dev}, sia montato con il supporto delle quote
-abilitato. Per le operazioni che lo richiedono inoltre si dovrà indicare con
-l'argomento \param{id} l'utente o il gruppo (specificati rispettivamente per
-\ids{UID} e \ids{GID}) su cui si vuole operare, o altri dati relativi
-all'operazione. Alcune operazioni più complesse usano infine
-l'argomento \param{addr} per indicare un indirizzo ad un area di memoria il
-cui utilizzo dipende dall'operazione stessa.
+essere specificato con il nome del relativo file di dispositivo nell'argomento
+\param{dev}, sia montato con il supporto delle quote abilitato. Per le
+operazioni che lo richiedono inoltre si dovrà indicare con l'argomento
+\param{id} l'utente o il gruppo o il progetto (specificati rispettivamente per
+\ids{UID}, \ids{GID} o identificativo) su cui si vuole operare,\footnote{nel
+ caso di \textit{project quota} gli identificativi vengono associati alla
+ directory base del progetto nel file \file{/etc/projects}, ed impostati con
+ \cmd{xfs\_quota}, l'argomento è di natura sistemistica e va al di là dello
+ scopo di questo testo.} o altri dati relativi all'operazione. Alcune
+operazioni più complesse usano infine l'argomento \param{addr} per indicare un
+indirizzo ad un area di memoria il cui utilizzo dipende dall'operazione
+stessa.
La funzione prevede la possibilità di eseguire una serie operazioni sulle
quote molto diverse fra loro, la scelta viene effettuata tramite il primo
La macro consente di specificare, oltre al tipo di operazione, da indicare con
l'argomento \param{subcmd}, se questa deve applicarsi alle quote utente o alle
-quote gruppo. Questo viene indicato dall'argomento \param{type} che deve
-essere sempre definito ed assegnato ad uno fra i due valori \const{USRQUOTA} o
-\const{GRPQUOTA}.
+quote gruppo o alle quote progetto. Questo viene indicato dall'argomento
+\param{type} che deve essere sempre definito ed assegnato ad uno fra i valori
+\const{USRQUOTA}, \const{GRPQUOTA} e \const{PRJQUOTA}.
\begin{table}[htb]
\centering