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

TOMOYO Linux Cross Reference
Linux/include/linux/dm-bufio.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ 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.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/linux/dm-bufio.h (Version linux-6.11.5) and /include/linux/dm-bufio.h (Version linux-4.15.18)


  1 /* SPDX-License-Identifier: GPL-2.0-only */         1 
  2 /*                                                
  3  * Copyright (C) 2009-2011 Red Hat, Inc.          
  4  *                                                
  5  * Author: Mikulas Patocka <mpatocka@redhat.co    
  6  *                                                
  7  * This file is released under the GPL.           
  8  */                                               
  9                                                   
 10 #ifndef _LINUX_DM_BUFIO_H                         
 11 #define _LINUX_DM_BUFIO_H                         
 12                                                   
 13 #include <linux/blkdev.h>                         
 14 #include <linux/types.h>                          
 15                                                   
 16 /*--------------------------------------------    
 17                                                   
 18 struct dm_bufio_client;                           
 19 struct dm_buffer;                                 
 20                                                   
 21 /*                                                
 22  * Flags for dm_bufio_client_create               
 23  */                                               
 24 #define DM_BUFIO_CLIENT_NO_SLEEP 0x1              
 25                                                   
 26 /*                                                
 27  * Create a buffered IO cache on a given devic    
 28  */                                               
 29 struct dm_bufio_client *                          
 30 dm_bufio_client_create(struct block_device *bd    
 31                        unsigned int reserved_b    
 32                        void (*alloc_callback)(    
 33                        void (*write_callback)(    
 34                        unsigned int flags);       
 35                                                   
 36 /*                                                
 37  * Release a buffered IO cache.                   
 38  */                                               
 39 void dm_bufio_client_destroy(struct dm_bufio_c    
 40                                                   
 41 void dm_bufio_client_reset(struct dm_bufio_cli    
 42                                                   
 43 /*                                                
 44  * Set the sector range.                          
 45  * When this function is called, there must be    
 46  * client.                                        
 47  */                                               
 48 void dm_bufio_set_sector_offset(struct dm_bufi    
 49                                                   
 50 /*                                                
 51  * WARNING: to avoid deadlocks, these conditio    
 52  *                                                
 53  * - At most one thread can hold at most "rese    
 54  * - Each other threads can hold at most one b    
 55  * - Threads which call only dm_bufio_get can     
 56  *   buffers.                                     
 57  */                                               
 58                                                   
 59 /*                                                
 60  * Read a given block from disk. Returns point    
 61  * pointer to dm_buffer that can be used to re    
 62  * it dirty.                                      
 63  */                                               
 64 void *dm_bufio_read(struct dm_bufio_client *c,    
 65                     struct dm_buffer **bp);       
 66                                                   
 67 void *dm_bufio_read_with_ioprio(struct dm_bufi    
 68                                 struct dm_buff    
 69                                                   
 70 /*                                                
 71  * Like dm_bufio_read, but return buffer from     
 72  * it. If the buffer is not in the cache, retu    
 73  */                                               
 74 void *dm_bufio_get(struct dm_bufio_client *c,     
 75                    struct dm_buffer **bp);        
 76                                                   
 77 /*                                                
 78  * Like dm_bufio_read, but don't read anything    
 79  * expected that the caller initializes the bu    
 80  */                                               
 81 void *dm_bufio_new(struct dm_bufio_client *c,     
 82                    struct dm_buffer **bp);        
 83                                                   
 84 /*                                                
 85  * Prefetch the specified blocks to the cache.    
 86  * The function starts to read the blocks and     
 87  * I/O to finish.                                 
 88  */                                               
 89 void dm_bufio_prefetch(struct dm_bufio_client     
 90                        sector_t block, unsigne    
 91                                                   
 92 void dm_bufio_prefetch_with_ioprio(struct dm_b    
 93                                 sector_t block    
 94                                 unsigned short    
 95                                                   
 96 /*                                                
 97  * Release a reference obtained with dm_bufio_    
 98  * pointer and dm_buffer pointer is no longer     
 99  */                                               
100 void dm_bufio_release(struct dm_buffer *b);       
101                                                   
102 /*                                                
103  * Mark a buffer dirty. It should be called af    
104  *                                                
105  * In case of memory pressure, the buffer may     
106  * dm_bufio_mark_buffer_dirty, but before dm_b    
107  * dm_bufio_write_dirty_buffers guarantees tha    
108  * the actual writing may occur earlier.          
109  */                                               
110 void dm_bufio_mark_buffer_dirty(struct dm_buff    
111                                                   
112 /*                                                
113  * Mark a part of the buffer dirty.               
114  *                                                
115  * The specified part of the buffer is schedul    
116  * write the specified part of the buffer or i    
117  */                                               
118 void dm_bufio_mark_partial_buffer_dirty(struct    
119                                         unsign    
120                                                   
121 /*                                                
122  * Initiate writing of dirty buffers, without     
123  */                                               
124 void dm_bufio_write_dirty_buffers_async(struct    
125                                                   
126 /*                                                
127  * Write all dirty buffers. Guarantees that al    
128  * to this call are on disk when this call exi    
129  */                                               
130 int dm_bufio_write_dirty_buffers(struct dm_buf    
131                                                   
132 /*                                                
133  * Send an empty write barrier to the device t    
134  */                                               
135 int dm_bufio_issue_flush(struct dm_bufio_clien    
136                                                   
137 /*                                                
138  * Send a discard request to the underlying de    
139  */                                               
140 int dm_bufio_issue_discard(struct dm_bufio_cli    
141                                                   
142 /*                                                
143  * Free the given buffer.                         
144  * This is just a hint, if the buffer is in us    
145  * does nothing.                                  
146  */                                               
147 void dm_bufio_forget(struct dm_bufio_client *c    
148                                                   
149 /*                                                
150  * Free the given range of buffers.               
151  * This is just a hint, if the buffer is in us    
152  * does nothing.                                  
153  */                                               
154 void dm_bufio_forget_buffers(struct dm_bufio_c    
155                                                   
156 /*                                                
157  * Set the minimum number of buffers before cl    
158  */                                               
159 void dm_bufio_set_minimum_buffers(struct dm_bu    
160                                                   
161 unsigned int dm_bufio_get_block_size(struct dm    
162 sector_t dm_bufio_get_device_size(struct dm_bu    
163 struct dm_io_client *dm_bufio_get_dm_io_client    
164 sector_t dm_bufio_get_block_number(struct dm_b    
165 void *dm_bufio_get_block_data(struct dm_buffer    
166 void *dm_bufio_get_aux_data(struct dm_buffer *    
167 struct dm_bufio_client *dm_bufio_get_client(st    
168                                                   
169 /*--------------------------------------------    
170                                                   
171 #endif                                            
172                                                   

~ [ 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