t v1.2.2'/>
aboutsummaryrefslogblamecommitdiffstats
path: root/fs/dquot.c
blob: 41b9dbd68b0e88e4a466685e1150e262e5d03c59 (plain) (tree)






































































                                                                                     






                              
                             
                           
                                                                 



                                     





















                                                                               
                                                                          
                                                                            
                 



                                                              
                                                                          








                                                                               


                                                                        









                                                                                
                                       





















































































































                                                                                                               
                                                     














                                                                       
                                                     













                                                    

                                      





































                                                                          

                                       



















                                                                                                         

                                         










                                                          
                                       















                                                                                                         
                                         










                                                          
                                    


                                                                     
                                       








                                                                                                         
                                         
           
                                      




                                                                             



                                                                           

                                                               
                                  
 
        
                                 
                                                                     



                                           



























                                                                              














                                                     
                                          







                                                         
                                                                                
























                                                                                
                                            


























                                                                
                                                        








                                                                       




                                           


                                                                                       
                                                             























                                                                  



                                                                          



















                                                                            
                                             








                                                                      
                                                          


                               
                                    



                                         
                                                    








                                        
                                                             











































                                                                                              
                                                                              


















                                                       
                                                    

                                                           
                                               
 











                                                              
                                
                                                   






                                                                              
         
                                 
                        











                                                                                      

                                                                





































                                                                                                                                            












                                                                         




                                                            





                                                         

































                                                                               











                                                                       
                                 















                                                              
                                                
                                                                  

                         
                               
 
                                       

                       
                               

                                
                              
                                                   
                                                                             
                                                      
            

                                                           
                           
                                        

                                                         
                                            

                                                                   
                                        

                                                          
                                        

                                                          
                                            

                                                                    
                                        


                                                           
                                    

                                 
 



                                     















                                                                        

                                                        



                                                                      
                                              







































                                                                               
                                                                             



                       
 
                                                                               



                                       

                                                                             
                                 
                                                              




                                                             












                                                                                                 
                                    





                                                                                   
                                               






                                                                                   
                                                   





                                                                                   
                                               








                                                                                                                  
                                    






                                                                                     
                                                       







                                                                                     
                                                           






                                                                                     
                                                       





















                                                                                                                          

                                                                       





























































                                                                          

                                                                       





                                               
                                                







































                                                                                           

                                                                       


                                             
                                                

























                                                                                     
                                                 










                                                                 

                                                                       

































                                                                      

                                                                       





































                                                                                                       

                                                                       




                                                                
                                                






















































































                                                                                          
                                       
                                                          
                                         




















































                                                                             

                                                         
                                          

                                               



















                                                                                             
                                         




                                                
                                            
                                                                             
                                                                   









                                                                         
                                                          


                                                                          
                                                                                            


                                                                                  
                                                                        
                                                                  
                         
                                              
                                                            

                       
                                            


































                                                                           
                                    
                                    
                                          










                                                                              
                               











                                                          
                                       
                                                                       
                                                 

                                   
                                         
                                      


                                      
                                            






                                  
                                            







                                                                          
                                      














                                                                             
                                                  


                                                    
                                      
                               
            

                                                                         
         
                           






                                                                   

                                                             
 
                              

                  
                                                                      


                                       




                                
                                          


                                                                             
    

                     























                                                                                  
                                                 
                                             
                                                           



                                
                                                   




























































                                                                                                                
                                                 
                                             
                                                           



                                
                                                   







                                                                          
                                                 
                                              
                                                           








                                                 
                                                   







                                                                          
                                                 
                                              
                                                           













                                                                                         
                                                   













































































                                                            
                                 







                                                       
      





























                                                                       
                                         
 
                                                 
                                                                        

                                                                 
                              





















                                                                              
                                             
 




                                                                                    



























                                       
/*
 * Implementation of the diskquota system for the LINUX operating system. QUOTA
 * is implemented using the BSD system call interface as the means of
 * communication with the user level. This file contains the generic routines
 * called by the different filesystems on allocation of an inode or block.
 * These routines take care of the administration needed to have a consistent
 * diskquota tracking system. The ideas of both user and group quotas are based
 * on the Melbourne quota system as used on BSD derived systems. The internal
 * implementation is based on one of the several variants of the LINUX
 * inode-subsystem with added complexity of the diskquota system.
 * 
 * Version: $Id: dquot.c,v 6.3 1996/11/17 18:35:34 mvw Exp mvw $
 * 
 * Author:	Marco van Wieringen <mvw@planets.elm.net>
 *
 * Fixes:   Dmitry Gorodchanin <pgmdsg@ibi.com>, 11 Feb 96
 *
 *		Revised list management to avoid races
 *		-- Bill Hawes, <whawes@star.net>, 9/98
 *
 *		Fixed races in dquot_transfer(), dqget() and dquot_alloc_...().
 *		As the consequence the locking was moved from dquot_decr_...(),
 *		dquot_incr_...() to calling functions.
 *		invalidate_dquots() now writes modified dquots.
 *		Serialized quota_off() and quota_on() for mount point.
 *		Fixed a few bugs in grow_dquots().
 *		Fixed deadlock in write_dquot() - we no longer account quotas on
 *		quota files
 *		remove_dquot_ref() moved to inode.c - it now traverses through inodes
 *		add_dquot_ref() restarts after blocking
 *		Added check for bogus uid and fixed check for group in quotactl.
 *		Jan Kara, <jack@suse.cz>, sponsored by SuSE CR, 10-11/99
 *
 *		Used struct list_head instead of own list struct
 *		Invalidation of referenced dquots is no longer possible
 *		Improved free_dquots list management
 *		Quota and i_blocks are now updated in one place to avoid races
 *		Warnings are now delayed so we won't block in critical section
 *		Write updated not to require dquot lock
 *		Jan Kara, <jack@suse.cz>, 9/2000
 *
 *		Added dynamic quota structure allocation
 *		Jan Kara <jack@suse.cz> 12/2000
 *
 *		Rewritten quota interface. Implemented new quota format and
 *		formats registering.
 *		Jan Kara, <jack@suse.cz>, 2001,2002
 *
 *		New SMP locking.
 *		Jan Kara, <jack@suse.cz>, 10/2002
 *
 *		Added journalled quota support, fix lock inversion problems
 *		Jan Kara, <jack@suse.cz>, 2003,2004
 *
 * (C) Copyright 1994 - 1997 Marco van Wieringen 
 */

#include <linux/errno.h>
#include <linux/kernel.h>