,       ,   -
    .    .

error = mapping->a ops->readpage(file, page);

   .     
        
  .

SetPageDirty(page) ;

          
writepage ().    ,    ( -
  ),    .  ,  -
 ,     mm/filemap . ,  
.

page =__grab_cache_page(mapping, index, &cached_page, &lru_pvec);

status = a ops->prepare write (file, page, offset, offset+bytes);

page fault ^ filemap_copy_from_user(page, offset, buf, bytes);

status = a ops->commit write(file, page, offset, offset+bytes);

      .   
   ,     .  -
  prepare_write (),     .   -
          .
         commit_write ().

        
-,     -   -
  .        
.     ,       
  .        "-
 ". ,       -
 .

 

           ,
     -,     -
 .           
  (  ,     -
   ,         
          ).

     ,     
    address_space   . 
 address_space      (radix tree), -
    page_tree.         -
.        
       .    -
 ,   find_get_page ()  radix_tree_lookup (),  -
       .

                                             335