fuse: Turn writeback cache on
Introduce a bit kernel and userspace exchange between each-other on the init stage and turn writeback on if the userspace want this and mount option 'allow_wbcache' is present (controlled by fusermount). Also add each writable file into per-inode write list and call the generic_file_aio_write to make use of the Linux page cache engine. Signed-off-by: Maxim Patlasov <MPatlasov@parallels.com> Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
This commit is contained in:
		
					parent
					
						
							
								ea8cd33390
							
						
					
				
			
			
				commit
				
					
						4d99ff8f12
					
				
			
		
					 3 changed files with 21 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -93,6 +93,9 @@
 | 
			
		|||
 *
 | 
			
		||||
 * 7.22
 | 
			
		||||
 *  - add FUSE_ASYNC_DIO
 | 
			
		||||
 *
 | 
			
		||||
 * 7.23
 | 
			
		||||
 *  - add FUSE_WRITEBACK_CACHE
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef _LINUX_FUSE_H
 | 
			
		||||
| 
						 | 
				
			
			@ -128,7 +131,7 @@
 | 
			
		|||
#define FUSE_KERNEL_VERSION 7
 | 
			
		||||
 | 
			
		||||
/** Minor version number of this interface */
 | 
			
		||||
#define FUSE_KERNEL_MINOR_VERSION 22
 | 
			
		||||
#define FUSE_KERNEL_MINOR_VERSION 23
 | 
			
		||||
 | 
			
		||||
/** The node ID of the root inode */
 | 
			
		||||
#define FUSE_ROOT_ID 1
 | 
			
		||||
| 
						 | 
				
			
			@ -219,6 +222,7 @@ struct fuse_file_lock {
 | 
			
		|||
 * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one)
 | 
			
		||||
 * FUSE_READDIRPLUS_AUTO: adaptive readdirplus
 | 
			
		||||
 * FUSE_ASYNC_DIO: asynchronous direct I/O submission
 | 
			
		||||
 * FUSE_WRITEBACK_CACHE: use writeback cache for buffered writes
 | 
			
		||||
 */
 | 
			
		||||
#define FUSE_ASYNC_READ		(1 << 0)
 | 
			
		||||
#define FUSE_POSIX_LOCKS	(1 << 1)
 | 
			
		||||
| 
						 | 
				
			
			@ -236,6 +240,7 @@ struct fuse_file_lock {
 | 
			
		|||
#define FUSE_DO_READDIRPLUS	(1 << 13)
 | 
			
		||||
#define FUSE_READDIRPLUS_AUTO	(1 << 14)
 | 
			
		||||
#define FUSE_ASYNC_DIO		(1 << 15)
 | 
			
		||||
#define FUSE_WRITEBACK_CACHE	(1 << 16)
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * CUSE INIT request/reply flags
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue