mirror of https://github.com/trapexit/mergerfs.git
				
				
			
				 3 changed files with 96 additions and 1 deletions
			
			
		| @ -0,0 +1,61 @@ | |||
| /*
 | |||
|    The MIT License (MIT) | |||
| 
 | |||
|    Copyright (c) 2014 Antonio SJ Musumeci <trapexit@spawn.link> | |||
| 
 | |||
|    Permission is hereby granted, free of charge, to any person obtaining a copy | |||
|    of this software and associated documentation files (the "Software"), to deal | |||
|    in the Software without restriction, including without limitation the rights | |||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
|    copies of the Software, and to permit persons to whom the Software is | |||
|    furnished to do so, subject to the following conditions: | |||
| 
 | |||
|    The above copyright notice and this permission notice shall be included in | |||
|    all copies or substantial portions of the Software. | |||
| 
 | |||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
|    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
|    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
|    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
|    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
|    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||
|    THE SOFTWARE. | |||
| */ | |||
| 
 | |||
| #include <fuse.h>
 | |||
| 
 | |||
| #include <unistd.h>
 | |||
| #include <errno.h>
 | |||
| 
 | |||
| #include "ugid.hpp"
 | |||
| #include "fileinfo.hpp"
 | |||
| 
 | |||
| static | |||
| int | |||
| _flush(const int fd) | |||
| { | |||
|   int rv; | |||
| 
 | |||
|   rv = dup(fd); | |||
|   if(rv == -1) | |||
|     errno = EIO; | |||
|   else | |||
|     rv = close(rv); | |||
| 
 | |||
|   return ((rv == -1) ? -errno : 0); | |||
| } | |||
| 
 | |||
| namespace mergerfs | |||
| { | |||
|   namespace flush | |||
|   { | |||
|     int | |||
|     flush(const char            *path, | |||
|           struct fuse_file_info *fi) | |||
|     { | |||
|       const ugid::SetResetGuard ugid; | |||
| 
 | |||
|       return _flush(((FileInfo*)fi->fh)->fd); | |||
|     } | |||
|   } | |||
| } | |||
| @ -0,0 +1,33 @@ | |||
| /*
 | |||
|    The MIT License (MIT) | |||
| 
 | |||
|    Copyright (c) 2014 Antonio SJ Musumeci <trapexit@spawn.link> | |||
| 
 | |||
|    Permission is hereby granted, free of charge, to any person obtaining a copy | |||
|    of this software and associated documentation files (the "Software"), to deal | |||
|    in the Software without restriction, including without limitation the rights | |||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
|    copies of the Software, and to permit persons to whom the Software is | |||
|    furnished to do so, subject to the following conditions: | |||
| 
 | |||
|    The above copyright notice and this permission notice shall be included in | |||
|    all copies or substantial portions of the Software. | |||
| 
 | |||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
|    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
|    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
|    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
|    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
|    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||
|    THE SOFTWARE. | |||
| */ | |||
| 
 | |||
| namespace mergerfs | |||
| { | |||
|   namespace flush | |||
|   { | |||
|     int | |||
|     flush(const char            *path, | |||
|           struct fuse_file_info *fi); | |||
|   } | |||
| } | |||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue