[DO NOT MERGE] Use FUSE_SHORTCIRCUIT if available
Use a non yet maintainer reviewed kernel patch from QCOM that greatly improves IO speed in case it is available from the device specific kernel headers. Bug: 24216004 Bug: 30222859 Change-Id: I4101d80082c9ad9d042dde5c620ddb309d193d52
This commit is contained in:
parent
29e7e3edb1
commit
738e0dcf0a
|
@ -1221,7 +1221,13 @@ static int handle_open(struct fuse* fuse, struct fuse_handler* handler,
|
|||
}
|
||||
out.fh = ptr_to_id(h);
|
||||
out.open_flags = 0;
|
||||
|
||||
#ifdef FUSE_SHORTCIRCUIT
|
||||
out.lower_fd = h->fd;
|
||||
#else
|
||||
out.padding = 0;
|
||||
#endif
|
||||
|
||||
fuse_reply(fuse, hdr->unique, &out, sizeof(out));
|
||||
return NO_STATUS;
|
||||
}
|
||||
|
@ -1385,7 +1391,13 @@ static int handle_opendir(struct fuse* fuse, struct fuse_handler* handler,
|
|||
}
|
||||
out.fh = ptr_to_id(h);
|
||||
out.open_flags = 0;
|
||||
|
||||
#ifdef FUSE_SHORTCIRCUIT
|
||||
out.lower_fd = -1;
|
||||
#else
|
||||
out.padding = 0;
|
||||
#endif
|
||||
|
||||
fuse_reply(fuse, hdr->unique, &out, sizeof(out));
|
||||
return NO_STATUS;
|
||||
}
|
||||
|
@ -1467,6 +1479,11 @@ static int handle_init(struct fuse* fuse, struct fuse_handler* handler,
|
|||
out.major = FUSE_KERNEL_VERSION;
|
||||
out.max_readahead = req->max_readahead;
|
||||
out.flags = FUSE_ATOMIC_O_TRUNC | FUSE_BIG_WRITES;
|
||||
|
||||
#ifdef FUSE_SHORTCIRCUIT
|
||||
out.flags |= FUSE_SHORTCIRCUIT;
|
||||
#endif
|
||||
|
||||
out.max_background = 32;
|
||||
out.congestion_threshold = 32;
|
||||
out.max_write = MAX_WRITE;
|
||||
|
|
Loading…
Reference in New Issue