From: Volker Lendecke Date: Wed, 20 Apr 2016 11:27:07 +0000 (+0200) Subject: dbwrap_ctdb: Fix ENOENT->NT_STATUS_NOT_FOUND X-Git-Tag: talloc-2.1.7~127 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cce6b677ff90ef361c45a7b8ad3d482908c3c4a7;p=thirdparty%2Fsamba.git dbwrap_ctdb: Fix ENOENT->NT_STATUS_NOT_FOUND Bug: https://bugzilla.samba.org/show_bug.cgi?id=11844 Signed-off-by: Volker Lendecke Reviewed-by: Andreas Schneider Autobuild-User(master): Volker Lendecke Autobuild-Date(master): Tue Apr 26 14:34:14 CEST 2016 on sn-devel-144 --- diff --git a/source3/lib/dbwrap/dbwrap_ctdb.c b/source3/lib/dbwrap/dbwrap_ctdb.c index 1e4df09a219..532240d1565 100644 --- a/source3/lib/dbwrap/dbwrap_ctdb.c +++ b/source3/lib/dbwrap/dbwrap_ctdb.c @@ -1298,6 +1298,16 @@ static NTSTATUS db_ctdb_parse_record(struct db_context *db, TDB_DATA key, ret = ctdbd_parse(messaging_ctdbd_connection(), ctx->db_id, key, state.ask_for_readonly_copy, parser, private_data); if (ret != 0) { + if (ret == ENOENT) { + /* + * This maps to + * NT_STATUS_OBJECT_NAME_NOT_FOUND. Our upper + * layers expect NT_STATUS_NOT_FOUND for "no + * record around". We need to convert dbwrap + * to 0/errno away from NTSTATUS ... :-) + */ + return NT_STATUS_NOT_FOUND; + } return map_nt_error_from_unix(ret); } return NT_STATUS_OK;