[DO NOT MERGE] Use FUSE_SHORTCIRCUIT if available

am: 738e0dcf0a

Change-Id: I9de236b53b4f4f449de65bfb856771278b92fa9e
This commit is contained in:
Thierry Strudel 2016-09-26 21:23:02 +00:00 committed by android-build-merger
commit 5f4db94228
1 changed files with 17 additions and 0 deletions

View File

@ -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;