diff options
Diffstat (limited to 'fs/file.c')
| -rw-r--r-- | fs/file.c | 3 |
1 files changed, 1 insertions, 2 deletions
| @@ -638,8 +638,7 @@ static struct file *__fget(unsigned int fd, fmode_t mask) | |||
| 638 | file = fcheck_files(files, fd); | 638 | file = fcheck_files(files, fd); |
| 639 | if (file) { | 639 | if (file) { |
| 640 | /* File object ref couldn't be taken */ | 640 | /* File object ref couldn't be taken */ |
| 641 | if ((file->f_mode & mask) || | 641 | if ((file->f_mode & mask) || !get_file_rcu(file)) |
| 642 | !atomic_long_inc_not_zero(&file->f_count)) | ||
| 643 | file = NULL; | 642 | file = NULL; |
| 644 | } | 643 | } |
| 645 | rcu_read_unlock(); | 644 | rcu_read_unlock(); |
