[PATCH] dbwrap_ctdb: Fix ENOENT->NT_STATUS_NOT_FOUND
Volker Lendecke
Volker.Lendecke at SerNet.DE
Tue Apr 26 06:04:45 UTC 2016
Hi!
The bug reporter somewhat confirmed this fixes bug 11844.
Review appreciated!
Thanks, Volker
--
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de
-------------- next part --------------
From a81f25111f9fd21f7174653c0cdc5b416f81f06c Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Wed, 20 Apr 2016 13:27:07 +0200
Subject: [PATCH] dbwrap_ctdb: Fix ENOENT->NT_STATUS_NOT_FOUND
Bug: https://bugzilla.samba.org/show_bug.cgi?id=11844
Signed-off-by: Volker Lendecke <vl at samba.org>
---
source3/lib/dbwrap/dbwrap_ctdb.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/source3/lib/dbwrap/dbwrap_ctdb.c b/source3/lib/dbwrap/dbwrap_ctdb.c
index 93df7ef..d5b8f45 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;
--
1.7.9.5
More information about the samba-technical
mailing list