diff options
| author | James Morris <james.l.morris@oracle.com> | 2014-11-19 05:32:12 -0500 |
|---|---|---|
| committer | James Morris <james.l.morris@oracle.com> | 2014-11-19 05:32:12 -0500 |
| commit | b10778a00d40b3d9fdaaf5891e802794781ff71c (patch) | |
| tree | 6ba4cbac86eecedc3f30650e7f764ecf00c83898 /security/keys | |
| parent | 594081ee7145cc30a3977cb4e218f81213b63dc5 (diff) | |
| parent | bfe01a5ba2490f299e1d2d5508cbbbadd897bbe9 (diff) | |
Merge commit 'v3.17' into next
Diffstat (limited to 'security/keys')
| -rw-r--r-- | security/keys/gc.c | 11 | ||||
| -rw-r--r-- | security/keys/key.c | 4 | ||||
| -rw-r--r-- | security/keys/request_key.c | 23 |
3 files changed, 5 insertions, 33 deletions
diff --git a/security/keys/gc.c b/security/keys/gc.c index d3222b6d7d59..9609a7f0faea 100644 --- a/security/keys/gc.c +++ b/security/keys/gc.c | |||
| @@ -92,15 +92,6 @@ static void key_gc_timer_func(unsigned long data) | |||
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | /* | 94 | /* |
| 95 | * wait_on_bit() sleep function for uninterruptible waiting | ||
| 96 | */ | ||
| 97 | static int key_gc_wait_bit(void *flags) | ||
| 98 | { | ||
| 99 | schedule(); | ||
| 100 | return 0; | ||
| 101 | } | ||
| 102 | |||
| 103 | /* | ||
| 104 | * Reap keys of dead type. | 95 | * Reap keys of dead type. |
| 105 | * | 96 | * |
| 106 | * We use three flags to make sure we see three complete cycles of the garbage | 97 | * We use three flags to make sure we see three complete cycles of the garbage |
| @@ -123,7 +114,7 @@ void key_gc_keytype(struct key_type *ktype) | |||
| 123 | schedule_work(&key_gc_work); | 114 | schedule_work(&key_gc_work); |
| 124 | 115 | ||
| 125 | kdebug("sleep"); | 116 | kdebug("sleep"); |
| 126 | wait_on_bit(&key_gc_flags, KEY_GC_REAPING_KEYTYPE, key_gc_wait_bit, | 117 | wait_on_bit(&key_gc_flags, KEY_GC_REAPING_KEYTYPE, |
| 127 | TASK_UNINTERRUPTIBLE); | 118 | TASK_UNINTERRUPTIBLE); |
| 128 | 119 | ||
| 129 | key_gc_dead_keytype = NULL; | 120 | key_gc_dead_keytype = NULL; |
diff --git a/security/keys/key.c b/security/keys/key.c index 8c0092ca0443..e17ba6aefdc0 100644 --- a/security/keys/key.c +++ b/security/keys/key.c | |||
| @@ -27,8 +27,8 @@ DEFINE_SPINLOCK(key_serial_lock); | |||
| 27 | struct rb_root key_user_tree; /* tree of quota records indexed by UID */ | 27 | struct rb_root key_user_tree; /* tree of quota records indexed by UID */ |
| 28 | DEFINE_SPINLOCK(key_user_lock); | 28 | DEFINE_SPINLOCK(key_user_lock); |
| 29 | 29 | ||
| 30 | unsigned int key_quota_root_maxkeys = 200; /* root's key count quota */ | 30 | unsigned int key_quota_root_maxkeys = 1000000; /* root's key count quota */ |
| 31 | unsigned int key_quota_root_maxbytes = 20000; /* root's key space quota */ | 31 | unsigned int key_quota_root_maxbytes = 25000000; /* root's key space quota */ |
| 32 | unsigned int key_quota_maxkeys = 200; /* general key count quota */ | 32 | unsigned int key_quota_maxkeys = 200; /* general key count quota */ |
| 33 | unsigned int key_quota_maxbytes = 20000; /* general key space quota */ | 33 | unsigned int key_quota_maxbytes = 20000; /* general key space quota */ |
| 34 | 34 | ||
diff --git a/security/keys/request_key.c b/security/keys/request_key.c index dc6ed32b7844..bb4337c7ae1b 100644 --- a/security/keys/request_key.c +++ b/security/keys/request_key.c | |||
| @@ -21,24 +21,6 @@ | |||
| 21 | 21 | ||
| 22 | #define key_negative_timeout 60 /* default timeout on a negative key's existence */ | 22 | #define key_negative_timeout 60 /* default timeout on a negative key's existence */ |
| 23 | 23 | ||
| 24 | /* | ||
| 25 | * wait_on_bit() sleep function for uninterruptible waiting | ||
| 26 | */ | ||
| 27 | static int key_wait_bit(void *flags) | ||
| 28 | { | ||
| 29 | schedule(); | ||
| 30 | return 0; | ||
| 31 | } | ||
| 32 | |||
| 33 | /* | ||
| 34 | * wait_on_bit() sleep function for interruptible waiting | ||
| 35 | */ | ||
| 36 | static int key_wait_bit_intr(void *flags) | ||
| 37 | { | ||
| 38 | schedule(); | ||
| 39 | return signal_pending(current) ? -ERESTARTSYS : 0; | ||
| 40 | } | ||
| 41 | |||
| 42 | /** | 24 | /** |
| 43 | * complete_request_key - Complete the construction of a key. | 25 | * complete_request_key - Complete the construction of a key. |
| 44 | * @cons: The key construction record. | 26 | * @cons: The key construction record. |
| @@ -603,10 +585,9 @@ int wait_for_key_construction(struct key *key, bool intr) | |||
| 603 | int ret; | 585 | int ret; |
| 604 | 586 | ||
| 605 | ret = wait_on_bit(&key->flags, KEY_FLAG_USER_CONSTRUCT, | 587 | ret = wait_on_bit(&key->flags, KEY_FLAG_USER_CONSTRUCT, |
| 606 | intr ? key_wait_bit_intr : key_wait_bit, | ||
| 607 | intr ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); | 588 | intr ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); |
| 608 | if (ret < 0) | 589 | if (ret) |
| 609 | return ret; | 590 | return -ERESTARTSYS; |
| 610 | if (test_bit(KEY_FLAG_NEGATIVE, &key->flags)) { | 591 | if (test_bit(KEY_FLAG_NEGATIVE, &key->flags)) { |
| 611 | smp_rmb(); | 592 | smp_rmb(); |
| 612 | return key->type_data.reject_error; | 593 | return key->type_data.reject_error; |
