~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/fs/quota/kqid.c

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /fs/quota/kqid.c (Version linux-6.12-rc7) and /fs/quota/kqid.c (Version linux-2.6.0)


  1 // SPDX-License-Identifier: GPL-2.0                 1 
  2 #include <linux/fs.h>                             
  3 #include <linux/quota.h>                          
  4 #include <linux/export.h>                         
  5                                                   
  6 /**                                               
  7  *      qid_eq - Test to see if to kquid value    
  8  *      @left: A qid value                        
  9  *      @right: Another quid value                
 10  *                                                
 11  *      Return true if the two qid values are     
 12  */                                               
 13 bool qid_eq(struct kqid left, struct kqid righ    
 14 {                                                 
 15         if (left.type != right.type)              
 16                 return false;                     
 17         switch(left.type) {                       
 18         case USRQUOTA:                            
 19                 return uid_eq(left.uid, right.    
 20         case GRPQUOTA:                            
 21                 return gid_eq(left.gid, right.    
 22         case PRJQUOTA:                            
 23                 return projid_eq(left.projid,     
 24         default:                                  
 25                 BUG();                            
 26         }                                         
 27 }                                                 
 28 EXPORT_SYMBOL(qid_eq);                            
 29                                                   
 30 /**                                               
 31  *      qid_lt - Test to see if one qid value     
 32  *      @left: The possibly lesser qid value      
 33  *      @right: The possibly greater qid value    
 34  *                                                
 35  *      Return true if left is less than right    
 36  */                                               
 37 bool qid_lt(struct kqid left, struct kqid righ    
 38 {                                                 
 39         if (left.type < right.type)               
 40                 return true;                      
 41         if (left.type > right.type)               
 42                 return false;                     
 43         switch (left.type) {                      
 44         case USRQUOTA:                            
 45                 return uid_lt(left.uid, right.    
 46         case GRPQUOTA:                            
 47                 return gid_lt(left.gid, right.    
 48         case PRJQUOTA:                            
 49                 return projid_lt(left.projid,     
 50         default:                                  
 51                 BUG();                            
 52         }                                         
 53 }                                                 
 54 EXPORT_SYMBOL(qid_lt);                            
 55                                                   
 56 /**                                               
 57  *      from_kqid - Create a qid from a kqid u    
 58  *      @targ: The user namespace we want a qi    
 59  *      @kqid: The kernel internal quota ident    
 60  *                                                
 61  *      Map @kqid into the user-namespace spec    
 62  *      return the resulting qid.                 
 63  *                                                
 64  *      There is always a mapping into the ini    
 65  *                                                
 66  *      If @kqid has no mapping in @targ (qid_    
 67  */                                               
 68 qid_t from_kqid(struct user_namespace *targ, s    
 69 {                                                 
 70         switch (kqid.type) {                      
 71         case USRQUOTA:                            
 72                 return from_kuid(targ, kqid.ui    
 73         case GRPQUOTA:                            
 74                 return from_kgid(targ, kqid.gi    
 75         case PRJQUOTA:                            
 76                 return from_kprojid(targ, kqid    
 77         default:                                  
 78                 BUG();                            
 79         }                                         
 80 }                                                 
 81 EXPORT_SYMBOL(from_kqid);                         
 82                                                   
 83 /**                                               
 84  *      from_kqid_munged - Create a qid from a    
 85  *      @targ: The user namespace we want a qi    
 86  *      @kqid: The kernel internal quota ident    
 87  *                                                
 88  *      Map @kqid into the user-namespace spec    
 89  *      return the resulting qid.                 
 90  *                                                
 91  *      There is always a mapping into the ini    
 92  *                                                
 93  *      Unlike from_kqid from_kqid_munged neve    
 94  *      returns a valid projid.  This makes fr    
 95  *      appropriate for use in places where fa    
 96  *      a qid_t is not a good option.             
 97  *                                                
 98  *      If @kqid has no mapping in @targ the k    
 99  *      overflow identifier is returned.          
100  */                                               
101 qid_t from_kqid_munged(struct user_namespace *    
102 {                                                 
103         switch (kqid.type) {                      
104         case USRQUOTA:                            
105                 return from_kuid_munged(targ,     
106         case GRPQUOTA:                            
107                 return from_kgid_munged(targ,     
108         case PRJQUOTA:                            
109                 return from_kprojid_munged(tar    
110         default:                                  
111                 BUG();                            
112         }                                         
113 }                                                 
114 EXPORT_SYMBOL(from_kqid_munged);                  
115                                                   
116 /**                                               
117  *      qid_valid - Report if a valid value is    
118  *      @qid: The kernel internal quota identi    
119  */                                               
120 bool qid_valid(struct kqid qid)                   
121 {                                                 
122         switch (qid.type) {                       
123         case USRQUOTA:                            
124                 return uid_valid(qid.uid);        
125         case GRPQUOTA:                            
126                 return gid_valid(qid.gid);        
127         case PRJQUOTA:                            
128                 return projid_valid(qid.projid    
129         default:                                  
130                 BUG();                            
131         }                                         
132 }                                                 
133 EXPORT_SYMBOL(qid_valid);                         
134                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php