diff options
Diffstat (limited to 'include/uapi/linux/fuse.h')
-rw-r--r-- | include/uapi/linux/fuse.h | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h index 60bb2f9f7b74..40b5ca8a1b1f 100644 --- a/include/uapi/linux/fuse.h +++ b/include/uapi/linux/fuse.h | |||
@@ -93,6 +93,14 @@ | |||
93 | * | 93 | * |
94 | * 7.22 | 94 | * 7.22 |
95 | * - add FUSE_ASYNC_DIO | 95 | * - add FUSE_ASYNC_DIO |
96 | * | ||
97 | * 7.23 | ||
98 | * - add FUSE_WRITEBACK_CACHE | ||
99 | * - add time_gran to fuse_init_out | ||
100 | * - add reserved space to fuse_init_out | ||
101 | * - add FATTR_CTIME | ||
102 | * - add ctime and ctimensec to fuse_setattr_in | ||
103 | * - add FUSE_RENAME2 request | ||
96 | */ | 104 | */ |
97 | 105 | ||
98 | #ifndef _LINUX_FUSE_H | 106 | #ifndef _LINUX_FUSE_H |
@@ -128,7 +136,7 @@ | |||
128 | #define FUSE_KERNEL_VERSION 7 | 136 | #define FUSE_KERNEL_VERSION 7 |
129 | 137 | ||
130 | /** Minor version number of this interface */ | 138 | /** Minor version number of this interface */ |
131 | #define FUSE_KERNEL_MINOR_VERSION 22 | 139 | #define FUSE_KERNEL_MINOR_VERSION 23 |
132 | 140 | ||
133 | /** The node ID of the root inode */ | 141 | /** The node ID of the root inode */ |
134 | #define FUSE_ROOT_ID 1 | 142 | #define FUSE_ROOT_ID 1 |
@@ -188,6 +196,7 @@ struct fuse_file_lock { | |||
188 | #define FATTR_ATIME_NOW (1 << 7) | 196 | #define FATTR_ATIME_NOW (1 << 7) |
189 | #define FATTR_MTIME_NOW (1 << 8) | 197 | #define FATTR_MTIME_NOW (1 << 8) |
190 | #define FATTR_LOCKOWNER (1 << 9) | 198 | #define FATTR_LOCKOWNER (1 << 9) |
199 | #define FATTR_CTIME (1 << 10) | ||
191 | 200 | ||
192 | /** | 201 | /** |
193 | * Flags returned by the OPEN request | 202 | * Flags returned by the OPEN request |
@@ -219,6 +228,7 @@ struct fuse_file_lock { | |||
219 | * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one) | 228 | * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one) |
220 | * FUSE_READDIRPLUS_AUTO: adaptive readdirplus | 229 | * FUSE_READDIRPLUS_AUTO: adaptive readdirplus |
221 | * FUSE_ASYNC_DIO: asynchronous direct I/O submission | 230 | * FUSE_ASYNC_DIO: asynchronous direct I/O submission |
231 | * FUSE_WRITEBACK_CACHE: use writeback cache for buffered writes | ||
222 | */ | 232 | */ |
223 | #define FUSE_ASYNC_READ (1 << 0) | 233 | #define FUSE_ASYNC_READ (1 << 0) |
224 | #define FUSE_POSIX_LOCKS (1 << 1) | 234 | #define FUSE_POSIX_LOCKS (1 << 1) |
@@ -236,6 +246,7 @@ struct fuse_file_lock { | |||
236 | #define FUSE_DO_READDIRPLUS (1 << 13) | 246 | #define FUSE_DO_READDIRPLUS (1 << 13) |
237 | #define FUSE_READDIRPLUS_AUTO (1 << 14) | 247 | #define FUSE_READDIRPLUS_AUTO (1 << 14) |
238 | #define FUSE_ASYNC_DIO (1 << 15) | 248 | #define FUSE_ASYNC_DIO (1 << 15) |
249 | #define FUSE_WRITEBACK_CACHE (1 << 16) | ||
239 | 250 | ||
240 | /** | 251 | /** |
241 | * CUSE INIT request/reply flags | 252 | * CUSE INIT request/reply flags |
@@ -343,6 +354,7 @@ enum fuse_opcode { | |||
343 | FUSE_BATCH_FORGET = 42, | 354 | FUSE_BATCH_FORGET = 42, |
344 | FUSE_FALLOCATE = 43, | 355 | FUSE_FALLOCATE = 43, |
345 | FUSE_READDIRPLUS = 44, | 356 | FUSE_READDIRPLUS = 44, |
357 | FUSE_RENAME2 = 45, | ||
346 | 358 | ||
347 | /* CUSE specific operations */ | 359 | /* CUSE specific operations */ |
348 | CUSE_INIT = 4096, | 360 | CUSE_INIT = 4096, |
@@ -421,6 +433,12 @@ struct fuse_rename_in { | |||
421 | uint64_t newdir; | 433 | uint64_t newdir; |
422 | }; | 434 | }; |
423 | 435 | ||
436 | struct fuse_rename2_in { | ||
437 | uint64_t newdir; | ||
438 | uint32_t flags; | ||
439 | uint32_t padding; | ||
440 | }; | ||
441 | |||
424 | struct fuse_link_in { | 442 | struct fuse_link_in { |
425 | uint64_t oldnodeid; | 443 | uint64_t oldnodeid; |
426 | }; | 444 | }; |
@@ -433,10 +451,10 @@ struct fuse_setattr_in { | |||
433 | uint64_t lock_owner; | 451 | uint64_t lock_owner; |
434 | uint64_t atime; | 452 | uint64_t atime; |
435 | uint64_t mtime; | 453 | uint64_t mtime; |
436 | uint64_t unused2; | 454 | uint64_t ctime; |
437 | uint32_t atimensec; | 455 | uint32_t atimensec; |
438 | uint32_t mtimensec; | 456 | uint32_t mtimensec; |
439 | uint32_t unused3; | 457 | uint32_t ctimensec; |
440 | uint32_t mode; | 458 | uint32_t mode; |
441 | uint32_t unused4; | 459 | uint32_t unused4; |
442 | uint32_t uid; | 460 | uint32_t uid; |
@@ -554,6 +572,9 @@ struct fuse_init_in { | |||
554 | uint32_t flags; | 572 | uint32_t flags; |
555 | }; | 573 | }; |
556 | 574 | ||
575 | #define FUSE_COMPAT_INIT_OUT_SIZE 8 | ||
576 | #define FUSE_COMPAT_22_INIT_OUT_SIZE 24 | ||
577 | |||
557 | struct fuse_init_out { | 578 | struct fuse_init_out { |
558 | uint32_t major; | 579 | uint32_t major; |
559 | uint32_t minor; | 580 | uint32_t minor; |
@@ -562,6 +583,8 @@ struct fuse_init_out { | |||
562 | uint16_t max_background; | 583 | uint16_t max_background; |
563 | uint16_t congestion_threshold; | 584 | uint16_t congestion_threshold; |
564 | uint32_t max_write; | 585 | uint32_t max_write; |
586 | uint32_t time_gran; | ||
587 | uint32_t unused[9]; | ||
565 | }; | 588 | }; |
566 | 589 | ||
567 | #define CUSE_INIT_INFO_MAX 4096 | 590 | #define CUSE_INIT_INFO_MAX 4096 |