fuse: add FUSE_NO_OPEN_SUPPORT flag to INIT
Here some additional changes to set a capability flag so that clients can
detect when it's appropriate to return -ENOSYS from open.
This amends the following commit introduced in 3.14:
7678ac5061
fuse: support clients that don't implement 'open'
However we can only add the flag to 3.15 and later since there was no
protocol version update in 3.14.
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Cc: <stable@vger.kernel.org> # v3.15+
This commit is contained in:
parent
a800bad366
commit
d7afaec0b5
|
@ -935,7 +935,7 @@ static void fuse_send_init(struct fuse_conn *fc, struct fuse_req *req)
|
||||||
FUSE_SPLICE_WRITE | FUSE_SPLICE_MOVE | FUSE_SPLICE_READ |
|
FUSE_SPLICE_WRITE | FUSE_SPLICE_MOVE | FUSE_SPLICE_READ |
|
||||||
FUSE_FLOCK_LOCKS | FUSE_IOCTL_DIR | FUSE_AUTO_INVAL_DATA |
|
FUSE_FLOCK_LOCKS | FUSE_IOCTL_DIR | FUSE_AUTO_INVAL_DATA |
|
||||||
FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO | FUSE_ASYNC_DIO |
|
FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO | FUSE_ASYNC_DIO |
|
||||||
FUSE_WRITEBACK_CACHE;
|
FUSE_WRITEBACK_CACHE | FUSE_NO_OPEN_SUPPORT;
|
||||||
req->in.h.opcode = FUSE_INIT;
|
req->in.h.opcode = FUSE_INIT;
|
||||||
req->in.numargs = 1;
|
req->in.numargs = 1;
|
||||||
req->in.args[0].size = sizeof(*arg);
|
req->in.args[0].size = sizeof(*arg);
|
||||||
|
|
|
@ -101,6 +101,7 @@
|
||||||
* - add FATTR_CTIME
|
* - add FATTR_CTIME
|
||||||
* - add ctime and ctimensec to fuse_setattr_in
|
* - add ctime and ctimensec to fuse_setattr_in
|
||||||
* - add FUSE_RENAME2 request
|
* - add FUSE_RENAME2 request
|
||||||
|
* - add FUSE_NO_OPEN_SUPPORT flag
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _LINUX_FUSE_H
|
#ifndef _LINUX_FUSE_H
|
||||||
|
@ -229,6 +230,7 @@ struct fuse_file_lock {
|
||||||
* FUSE_READDIRPLUS_AUTO: adaptive readdirplus
|
* FUSE_READDIRPLUS_AUTO: adaptive readdirplus
|
||||||
* FUSE_ASYNC_DIO: asynchronous direct I/O submission
|
* FUSE_ASYNC_DIO: asynchronous direct I/O submission
|
||||||
* FUSE_WRITEBACK_CACHE: use writeback cache for buffered writes
|
* FUSE_WRITEBACK_CACHE: use writeback cache for buffered writes
|
||||||
|
* FUSE_NO_OPEN_SUPPORT: kernel supports zero-message opens
|
||||||
*/
|
*/
|
||||||
#define FUSE_ASYNC_READ (1 << 0)
|
#define FUSE_ASYNC_READ (1 << 0)
|
||||||
#define FUSE_POSIX_LOCKS (1 << 1)
|
#define FUSE_POSIX_LOCKS (1 << 1)
|
||||||
|
@ -247,6 +249,7 @@ struct fuse_file_lock {
|
||||||
#define FUSE_READDIRPLUS_AUTO (1 << 14)
|
#define FUSE_READDIRPLUS_AUTO (1 << 14)
|
||||||
#define FUSE_ASYNC_DIO (1 << 15)
|
#define FUSE_ASYNC_DIO (1 << 15)
|
||||||
#define FUSE_WRITEBACK_CACHE (1 << 16)
|
#define FUSE_WRITEBACK_CACHE (1 << 16)
|
||||||
|
#define FUSE_NO_OPEN_SUPPORT (1 << 17)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CUSE INIT request/reply flags
|
* CUSE INIT request/reply flags
|
||||||
|
|
Loading…
Reference in a new issue