or' content='cgit v1.2.2'/>
aboutsummaryrefslogblamecommitdiffstats
path: root/block/ll_rw_blk.c
blob: 99c9ca6d5992ab18b3e40fa201423bd3e36a0055 (plain) (tree)
1
  


























                                                                                    
                         







                                                   
                                                                            




































































































































































































                                                                                  

                                                          

























                                                                                   










                                                                  
                       






                           
                                 



































































                                                                              

                                           















                                                             

                                           






































                                                                           







































































































































































































































































































                                                                                   












                                                                      
                                                                
























































                                                                             

                                   
                      










                                                                          
                                                                
                                                                         



                                                               
                                                              
                                     
                                


                                    































































                                                                         
                                 




                              










                                                                     



                                                          
                                        




                                                                                
                                                                    
                                                                         




























                                                                          
                                                 



                                                                    


                                                                 

                                                                           







                                                  

                                                          



























                                                                      
                


                                                 


                                                                            


                      


                                                                
 


































                                                                           

                                                                            














                                                                  
                     






                          
                      








































































































                                                                                                                             
                                                                       



















                                                                         
                                                                     














                                                                               








































































































































































                                                                                        

                                








                                                                  
                                    















































































                                                                                      
                                                                    




                                
                         































































































































                                                                             

                                 

















































                                                                              
                        

                                              
 

                                                                            








                                                           
                                                
 


                                                  
 
                                                                  



                                                                      











                                                                  
                                    































                                                                               
 

                                                                       







                                                                        



                            
                          


                                  








                                                                          





























                                                            
                                   


                                     
                                                                  










                                                                           

                                       


                                        
                              
                                                              
                                           











                                                                      






                                                                      
 
                  


























                                                                             
                                                                        















                                                              










                                                                         
                                                               



                                         

                              




                                           



                                                                                


                                                        
   
                                                                               
                                                  


                                         
                                                                
                 
 












                                                                          
                                            












                                                                        



                         




                                                                             
                                                      
                         
 



                                                              
 
                                                                


                              

                                       
                                                           








                                                                             
                                           











                                                                           








                                         





                                                                            

                                                                
   

                                                                   
 

                           


                                               




                                                               
                                                       



                                               

                                                       







                                                                             
                                                           
                                                 

                                                     

                                                  
         



                  
                                                                           




                                          

                                     
                                                   
                
                                                        



                                                       


                  



























                                                                           













                                                                               
                                                
 
                                                                           















                                                                         

                                         
 

                                               
 











                                                                       
                                         















                                                                            

                                                                              

                            
                        
                    

                                        


                               
 
                                          






                                                                                 
                                                                 
            
                                                            






                                             
                         




                             
                            




                               











































                                                                                
                                                     
                                  


                                     
                                                         
   
                                                         









                                                      
                 




                                 

                                                                         
                               

                                   
                                       
   
                                                                       
                                                     
 


                                        


                               

                                                   

                                    
 

                                            
 

                                    
 


                                     



                               











                                                                           












                                                                           




                                                             
                                                       


                                                                           
                                            

                                                               
                                                   




                                          











                                                                       
                            
                                                                        






































                                                                         
                                                                           





                                                
                      
                                                         
                










































                                                                          

                               
 




                                                                       
                          













                                                                      

                                      
                                     







                                                                  
                                                    
 


                                                     
                                           




                                         


                                    
          

                                                               
           
                



































































































                                                                               

                                                             















































                                                                             

                                                              
                            
                                                                       
                            




                                              
                             

                               
                             










                                                                       
                                                                      



                                  

                                     
                                                    












                                                                             
                                                                     























                                                                             
                                                                     




                                                            
                                                                    
                        
                         

         
       
          
                                                                     
                                           
           
                                           
 




                                                                          
           











                                                                            
                              










                                                                         
                           


                                             


                                     

                            
                 


















                                                       



                                                   
 




                                                 



























































































                                                                                
                                                                         

                                    



























                                                                         
                         


















                                                                 
                                                      








































                                                                               
                                                                






















































                                                                               
                                                  


                                                                          

         































































































































                                                                              



                                                           




































































































                                                                              
                           

                                   

                             











                                                                           
                                             
  


                                                                          
   
                                                      

                                          

                               
                              

                           



                                                            

                                       



                                                                   

                                      
 


                                  
 





                                                                            
                                                  



                                            
                                           















































































































































































































                                                                                
                            












                                                              
                            








                                             
                                       











































                                                             
/*
 * Copyright (C) 1991, 1992 Linus Torvalds
 * Copyright (C) 1994,      Karl Keyte: Added support for disk statistics
 * Elevator latency, (C) 2000  Andrea Arcangeli <andrea@suse.de> SuSE
 * Queue request tables / lock, selectable elevator, Jens Axboe <axboe@suse.de>
 * kernel-doc documentation started by NeilBrown <neilb@cse.unsw.edu.au> -  July2000
 * bio rewrite, highmem i/o, etc, Jens Axboe <axboe@suse.de> - may 2001
 */

/*
 * This handles all read/write requests to block devices
 */
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/backing-dev.h>
#include <linux/bio.h>
#include <linux/blkdev.h>
#include <linux/highmem.h>
#include <linux/mm.h>
#include <linux/kernel_stat.h>
#include <linux/string.h>
#include <linux/init.h>
#include <linux/bootmem.h>	/* for max_pfn/max_low_pfn */
#include <linux/completion.h>
#include <linux/slab.h>
#include <linux/swap.h>
#include <linux/writeback.h>
#include <linux/blkdev.h>

/*
 * for max sense size
 */
#include <scsi/scsi_cmnd.h>

static void blk_unplug_work(void *data);
static void blk_unplug_timeout(unsigned long data);
static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io);

/*
 * For the allocated request tables
 */
static kmem_cache_t *request_cachep;

/*
 * For queue allocation
 */
static kmem_cache_t *requestq_cachep;

/*
 * For io context allocations
 */
static kmem_cache_t *iocontext_cachep;

static wait_queue_head_t congestion_wqh[2] = {
		__WAIT_QUEUE_HEAD_INITIALIZER(congestion_wqh[0]),
		__WAIT_QUEUE_HEAD_INITIALIZER(congestion_wqh[1])
	};

/*
 * Controlling structure to kblockd
 */
static struct workqueue_struct *kblockd_workqueue; 

unsigned long blk_max_low_pfn, blk_max_pfn;

EXPORT_SYMBOL(blk_max_low_pfn);
EXPORT_SYMBOL(blk_max_pfn);

/* Amount of time in which a process may batch requests */