smbd: don't log success as error
authorPhilipp Gesang <philipp.gesang@intra2net.com>
Fri, 11 Sep 2020 07:55:18 +0000 (09:55 +0200)
committerKarolin Seeger <kseeger@samba.org>
Wed, 16 Sep 2020 08:20:34 +0000 (08:20 +0000)
In 58bc493c77 the check for NT_STATUS_OK was removed, causing
smbd to spam syslog with misleading ``failure`` messages:

    Sep 11 03:57:54 mail smbd[4813]:   remove_share_mode_lease: leases_db_del failed: NT_STATUS_OK
    Sep 11 03:58:54 mail smbd[4813]:   remove_share_mode_lease: leases_db_del failed: NT_STATUS_OK
    Sep 11 03:59:54 mail smbd[4813]:   remove_share_mode_lease: leases_db_del failed: NT_STATUS_OK
    Sep 11 04:00:03 mail smbd[4798]:   remove_share_mode_lease: leases_db_del failed: NT_STATUS_OK
    Sep 11 04:00:05 mail smbd[4798]:   remove_share_mode_lease: leases_db_del failed: NT_STATUS_OK

Reinstate the check; the code now follows the error handling
logic as in 4.13.

Signed-off-by: Philipp Gesang <philipp.gesang@intra2net.com>
Autobuild-User(v4-11-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-11-test): Wed Sep 16 08:20:34 UTC 2020 on sn-devel-184

source3/locking/locking.c

index 5272a3dc829dd94ad33d8f4cb8e7fa07595b643f..4aeee0819a0e26b3c140c05fa95a84efa5b27efd 100644 (file)
@@ -704,17 +704,20 @@ static void remove_share_mode_lease(struct share_mode_data *d,
        }
 
        {
-               int level = DBGLVL_DEBUG;
                NTSTATUS status;
 
                status = leases_db_del(&e->client_guid,
                                       &e->lease_key,
                                       &d->id);
-               if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
-                       level = DBGLVL_ERR;
+               if (!NT_STATUS_IS_OK(status)) {
+                       int level = DBGLVL_DEBUG;
+
+                       if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
+                               level = DBGLVL_ERR;
+                       }
+                       DBG_PREFIX(level, ("leases_db_del failed: %s\n",
+                                  nt_errstr(status)));
                }
-               DBG_PREFIX(level, ("leases_db_del failed: %s\n",
-                          nt_errstr(status)));
        }
 }