diff --git a/fs/file.c b/fs/file.c index 6f6eb2b03af5b1b32ebe026448ad9c8ed2a73396..c6986dce03348b3e0da89335c7853267e9efa8e8 100644 --- a/fs/file.c +++ b/fs/file.c @@ -236,7 +236,8 @@ static inline void __set_close_on_exec(int fd, struct fdtable *fdt) static inline void __clear_close_on_exec(int fd, struct fdtable *fdt) { - __clear_bit(fd, fdt->close_on_exec); + if (test_bit(fd, fdt->close_on_exec)) + __clear_bit(fd, fdt->close_on_exec); } static inline void __set_open_fd(unsigned int fd, struct fdtable *fdt)