.. | .. |
---|
14 | 14 | #include <linux/mnt_namespace.h> |
---|
15 | 15 | #include <linux/user_namespace.h> |
---|
16 | 16 | #include <linux/namei.h> |
---|
17 | | -#include <linux/delay.h> |
---|
18 | 17 | #include <linux/security.h> |
---|
19 | 18 | #include <linux/cred.h> |
---|
20 | 19 | #include <linux/idr.h> |
---|
.. | .. |
---|
322 | 321 | * incremented count after it has set MNT_WRITE_HOLD. |
---|
323 | 322 | */ |
---|
324 | 323 | smp_mb(); |
---|
325 | | - while (READ_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD) { |
---|
326 | | - preempt_enable(); |
---|
327 | | - cpu_chill(); |
---|
328 | | - preempt_disable(); |
---|
329 | | - } |
---|
| 324 | + while (READ_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD) |
---|
| 325 | + cpu_relax(); |
---|
330 | 326 | /* |
---|
331 | 327 | * After the slowpath clears MNT_WRITE_HOLD, mnt_is_readonly will |
---|
332 | 328 | * be set to match its requirements. So we must not load that until |
---|