notify: Fix ordering of events in notifyd
authorShilpa Krishnareddy <skrishnareddy@panzura.com>
Tue, 25 Apr 2017 14:59:45 +0000 (16:59 +0200)
committerVolker Lendecke <vl@samba.org>
Wed, 26 Apr 2017 15:02:58 +0000 (17:02 +0200)
In notifyd_trigger_parser() while initializing notify_event_msg values from
notify_trigger_msg, 'when' value is ignored. So the smbd process does not get
correct 'when' value and this is causing issues during qsort in
notify_marshall_changes(). Because of this issue, smb2.notify.dir test was
failing.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=12756
Signed-off-by: Shilpa Krishnareddy <skrishnareddy@panzura.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Wed Apr 26 17:02:58 CEST 2017 on sn-devel-144

source3/smbd/notifyd/notifyd.c

index 33a875a37320f86a6aa9922825b36cfc22ca3e5b..f02ccfa11d37d31c63ee739e8581382030a65d8a 100644 (file)
@@ -735,7 +735,8 @@ static void notifyd_trigger_parser(TDB_DATA key, TDB_DATA data,
 
 {
        struct notifyd_trigger_state *tstate = private_data;
-       struct notify_event_msg msg = { .action = tstate->msg->action };
+       struct notify_event_msg msg = { .action = tstate->msg->action,
+                                       .when = tstate->msg->when };
        struct iovec iov[2];
        size_t path_len = key.dsize;
        struct notifyd_instance *instances = NULL;