If 'write' is 0, we can avoid a call to spin_lock/spin_unlock.

Signed-off-by: Christophe JAILLET <christophe.jail...@wanadoo.fr>
---
 kernel/umh.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/umh.c b/kernel/umh.c
index 6ff9905250ff..18e5fa4b0e71 100644
--- a/kernel/umh.c
+++ b/kernel/umh.c
@@ -537,14 +537,14 @@ static int proc_cap_handler(struct ctl_table *table, int 
write,
        /*
         * Drop everything not in the new_cap (but don't add things)
         */
-       spin_lock(&umh_sysctl_lock);
        if (write) {
+               spin_lock(&umh_sysctl_lock);
                if (table->data == CAP_BSET)
                        usermodehelper_bset = 
cap_intersect(usermodehelper_bset, new_cap);
                if (table->data == CAP_PI)
                        usermodehelper_inheritable = 
cap_intersect(usermodehelper_inheritable, new_cap);
+               spin_unlock(&umh_sysctl_lock);
        }
-       spin_unlock(&umh_sysctl_lock);
 
        return 0;
 }
-- 
2.14.1

Reply via email to