Merge "storageproxy: Report fsync failures with a distinct error code"
This commit is contained in:
commit
67d70ffe03
3 changed files with 6 additions and 2 deletions
|
|
@ -70,6 +70,9 @@ enum storage_cmd {
|
|||
* @STORAGE_ERR_TRANSACT returned by various operations to indicate that current transaction
|
||||
* is in error state. Such state could be only cleared by sending
|
||||
* STORAGE_END_TRANSACTION message.
|
||||
* @STORAGE_ERR_SYNC_FAILURE indicates that the current operation failed to sync
|
||||
* to disk. Only returned if STORAGE_MSG_FLAG_PRE_COMMIT or
|
||||
* STORAGE_MSG_FLAG_POST_COMMIT was set for the request.
|
||||
*/
|
||||
enum storage_err {
|
||||
STORAGE_NO_ERROR = 0,
|
||||
|
|
@ -80,6 +83,7 @@ enum storage_err {
|
|||
STORAGE_ERR_NOT_FOUND = 5,
|
||||
STORAGE_ERR_EXIST = 6,
|
||||
STORAGE_ERR_TRANSACT = 7,
|
||||
STORAGE_ERR_SYNC_FAILURE = 8,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ static int handle_req(struct storage_msg* msg, const void* req, size_t req_len)
|
|||
if (msg->flags & STORAGE_MSG_FLAG_PRE_COMMIT) {
|
||||
rc = storage_sync_checkpoint();
|
||||
if (rc < 0) {
|
||||
msg->result = STORAGE_ERR_GENERIC;
|
||||
msg->result = STORAGE_ERR_SYNC_FAILURE;
|
||||
return ipc_respond(msg, NULL, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -410,7 +410,7 @@ int storage_file_write(struct storage_msg *msg,
|
|||
if (msg->flags & STORAGE_MSG_FLAG_POST_COMMIT) {
|
||||
rc = storage_sync_checkpoint();
|
||||
if (rc < 0) {
|
||||
msg->result = STORAGE_ERR_GENERIC;
|
||||
msg->result = STORAGE_ERR_SYNC_FAILURE;
|
||||
goto err_response;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue