diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c index e32406d62c0d..f76e2b9452d0 100644 --- a/fs/kernfs/file.c +++ b/fs/kernfs/file.c @@ -348,8 +348,12 @@ static ssize_t kernfs_fop_write_iter(struct kiocb *iocb, struct iov_iter *iter) } ops = kernfs_ops(of->kn); - if (ops->write) + if (ops->write) { + struct mutex *mutex; + mutex = kernfs_open_file_mutex_lock(of->kn); len = ops->write(of, buf, len, iocb->ki_pos); + mutex_unlock(mutex); + } else len = -EINVAL;