posix-cpu-timers: Cleanup CPU timers before freeing them during exec
[platform/kernel/linux-starfive.git] / fs / open.c
index 2790aac..8a813fa 100644 (file)
--- a/fs/open.c
+++ b/fs/open.c
@@ -888,10 +888,13 @@ static int do_dentry_open(struct file *f,
        if ((f->f_mode & FMODE_WRITE) &&
             likely(f->f_op->write || f->f_op->write_iter))
                f->f_mode |= FMODE_CAN_WRITE;
+       if ((f->f_mode & FMODE_LSEEK) && !f->f_op->llseek)
+               f->f_mode &= ~FMODE_LSEEK;
        if (f->f_mapping->a_ops && f->f_mapping->a_ops->direct_IO)
                f->f_mode |= FMODE_CAN_ODIRECT;
 
        f->f_flags &= ~(O_CREAT | O_EXCL | O_NOCTTY | O_TRUNC);
+       f->f_iocb_flags = iocb_flags(f);
 
        file_ra_state_init(&f->f_ra, f->f_mapping->host->i_mapping);