[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 Change-Id: I4101d80082c9ad9d042dde5c620ddb309d193d52
diff --git a/sdcard/sdcard.c b/sdcard/sdcard.c index 06452aa..e9aa770 100644 --- a/sdcard/sdcard.c +++ b/sdcard/sdcard.c
@@ -1214,7 +1214,13 @@ } out.fh = ptr_to_id(h); out.open_flags = 0; + +#ifdef FUSE_STACKED_IO + out.lower_fd = h->fd; +#else out.padding = 0; +#endif + fuse_reply(fuse, hdr->unique, &out, sizeof(out)); return NO_STATUS; } @@ -1378,7 +1384,13 @@ } out.fh = ptr_to_id(h); out.open_flags = 0; + +#ifdef FUSE_STACKED_IO + out.lower_fd = -1; +#else out.padding = 0; +#endif + fuse_reply(fuse, hdr->unique, &out, sizeof(out)); return NO_STATUS; } @@ -1460,6 +1472,11 @@ out.major = FUSE_KERNEL_VERSION; out.max_readahead = req->max_readahead; out.flags = FUSE_ATOMIC_O_TRUNC | FUSE_BIG_WRITES; + +#ifdef FUSE_STACKED_IO + out.flags |= FUSE_STACKED_IO; +#endif + out.max_background = 32; out.congestion_threshold = 32; out.max_write = MAX_WRITE;