Fix potential race condition in node update

Refs BNC#861527

Processes:

A                        B
Enters locked block      Spins on the lock
Loads node info X
Modifies node info X+a
Exits locked block       Enters locked block
                         Loads node info X
Saves node info X+a      Modifies node info X+b
                         Exits locked block
                         Saves node info X+b

Expected behavior is that B already works with updated info X+a.
Merge pull request #920 from bkutil/fix/race-in-node-update

Fix potential race condition in node update