Revert "io_uring/rw: fix missing NOWAIT check for O_DIRECT start write"
This reverts commit bb5321e6e0
.
This commit is contained in:
parent
c09929ddba
commit
4ae2ca820d
1 changed files with 2 additions and 21 deletions
|
@ -3738,25 +3738,6 @@ static int io_write_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
|
||||||
return io_prep_rw(req, sqe, WRITE);
|
return io_prep_rw(req, sqe, WRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool io_kiocb_start_write(struct io_kiocb *req, struct kiocb *kiocb)
|
|
||||||
{
|
|
||||||
struct inode *inode;
|
|
||||||
bool ret;
|
|
||||||
|
|
||||||
if (!(req->flags & REQ_F_ISREG))
|
|
||||||
return true;
|
|
||||||
if (!(kiocb->ki_flags & IOCB_NOWAIT)) {
|
|
||||||
kiocb_start_write(kiocb);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
inode = file_inode(kiocb->ki_filp);
|
|
||||||
ret = sb_start_write_trylock(inode->i_sb);
|
|
||||||
if (ret)
|
|
||||||
__sb_writers_release(inode->i_sb, SB_FREEZE_WRITE);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int io_write(struct io_kiocb *req, unsigned int issue_flags)
|
static int io_write(struct io_kiocb *req, unsigned int issue_flags)
|
||||||
{
|
{
|
||||||
struct iovec inline_vecs[UIO_FASTIOV], *iovec = inline_vecs;
|
struct iovec inline_vecs[UIO_FASTIOV], *iovec = inline_vecs;
|
||||||
|
@ -3803,8 +3784,8 @@ static int io_write(struct io_kiocb *req, unsigned int issue_flags)
|
||||||
if (unlikely(ret))
|
if (unlikely(ret))
|
||||||
goto out_free;
|
goto out_free;
|
||||||
|
|
||||||
if (unlikely(!io_kiocb_start_write(req, kiocb)))
|
if (req->flags & REQ_F_ISREG)
|
||||||
goto copy_iov;
|
kiocb_start_write(kiocb);
|
||||||
kiocb->ki_flags |= IOCB_WRITE;
|
kiocb->ki_flags |= IOCB_WRITE;
|
||||||
|
|
||||||
if (req->file->f_op->write_iter)
|
if (req->file->f_op->write_iter)
|
||||||
|
|
Loading…
Add table
Reference in a new issue