|
@@ -557,9 +557,10 @@ int key_reject_and_link(struct key *key,
|
|
|
if (!test_bit(KEY_FLAG_INSTANTIATED, &key->flags)) {
|
|
|
/* mark the key as being negatively instantiated */
|
|
|
atomic_inc(&key->user->nikeys);
|
|
|
+ key->type_data.reject_error = -error;
|
|
|
+ smp_wmb();
|
|
|
set_bit(KEY_FLAG_NEGATIVE, &key->flags);
|
|
|
set_bit(KEY_FLAG_INSTANTIATED, &key->flags);
|
|
|
- key->type_data.reject_error = -error;
|
|
|
now = current_kernel_time();
|
|
|
key->expiry = now.tv_sec + timeout;
|
|
|
key_schedule_gc(key->expiry + key_gc_delay);
|