if (fs->op.init) {
uint64_t want_ext_default = conn->want_ext;
uint32_t want_default = fuse_lower_32_bits(conn->want_ext);
- int rc;
conn->want = want_default;
fs->user_data = fs->op.init(conn, cfg);
- rc = convert_to_conn_want_ext(conn, want_ext_default,
- want_default);
-
- if (rc != 0) {
- /*
- * This is a grave developer error, but
- * we cannot return an error here, as the function
- * signature does not allow it.
- */
- fuse_log(
- FUSE_LOG_ERR,
- "fuse: Aborting due to invalid conn want flags.\n");
- _exit(EXIT_FAILURE);
- }
+ convert_to_conn_want_ext(conn, want_ext_default, want_default);
}
}
*/
if (conn->want != want_default &&
fuse_lower_32_bits(conn->want_ext) != conn->want) {
- if (conn->want_ext != want_ext_default) {
- fuse_log(FUSE_LOG_ERR,
- "fuse: both 'want' and 'want_ext' are set\n");
+ if (conn->want_ext != want_ext_default)
return -EINVAL;
- }
/* high bits from want_ext, low bits from want */
conn->want_ext = fuse_higher_32_bits(conn->want_ext) |
if (se->op.init) {
uint64_t want_ext_default = se->conn.want_ext;
uint32_t want_default = fuse_lower_32_bits(se->conn.want_ext);
- int rc;
// Apply the first 32 bits of capable_ext to capable
se->conn.capable = fuse_lower_32_bits(se->conn.capable_ext);
* se->conn.want_ext
* Userspace might still use conn.want - we need to convert it
*/
- rc = convert_to_conn_want_ext(&se->conn, want_ext_default,
+ convert_to_conn_want_ext(&se->conn, want_ext_default,
want_default);
- if (rc != 0) {
- fuse_reply_err(req, EPROTO);
- se->error = -EPROTO;
- fuse_session_exit(se);
- return;
- }
}
if (!want_flags_valid(se->conn.capable_ext, se->conn.want_ext)) {