]> Git Repo - J-linux.git/commitdiff
Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
authorLinus Torvalds <[email protected]>
Sat, 28 Oct 2023 02:44:58 +0000 (16:44 -1000)
committerLinus Torvalds <[email protected]>
Sat, 28 Oct 2023 02:44:58 +0000 (16:44 -1000)
Pull misc filesystem fixes from Al Viro:
 "Assorted fixes all over the place: literally nothing in common, could
  have been three separate pull requests.

  All are simple regression fixes, but not for anything from this cycle"

* tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  ceph_wait_on_conflict_unlink(): grab reference before dropping ->d_lock
  io_uring: kiocb_done() should *not* trust ->ki_pos if ->{read,write}_iter() failed
  sparc32: fix a braino in fault handling in csum_and_copy_..._user()

1  2 
io_uring/rw.c

diff --combined io_uring/rw.c
index 807d83ab756ec7e34463ee00d1d133700ca8a9f7,08d94fb972f07ced2c3503824de49cb6b7bca4a2..8f68d5ad4564fe7b971f9f0c977276179a713faa
@@@ -339,7 -339,7 +339,7 @@@ static int kiocb_done(struct io_kiocb *
        struct io_rw *rw = io_kiocb_to_cmd(req, struct io_rw);
        unsigned final_ret = io_fixup_rw_res(req, ret);
  
-       if (req->flags & REQ_F_CUR_POS)
+       if (ret >= 0 && req->flags & REQ_F_CUR_POS)
                req->file->f_pos = rw->kiocb.ki_pos;
        if (ret >= 0 && (rw->kiocb.ki_complete == io_complete_rw)) {
                if (!__io_complete_rw_common(req, ret)) {
@@@ -913,6 -913,15 +913,6 @@@ int io_write(struct io_kiocb *req, unsi
                kiocb_start_write(kiocb);
        kiocb->ki_flags |= IOCB_WRITE;
  
 -      /*
 -       * For non-polled IO, set IOCB_DIO_CALLER_COMP, stating that our handler
 -       * groks deferring the completion to task context. This isn't
 -       * necessary and useful for polled IO as that can always complete
 -       * directly.
 -       */
 -      if (!(kiocb->ki_flags & IOCB_HIPRI))
 -              kiocb->ki_flags |= IOCB_DIO_CALLER_COMP;
 -
        if (likely(req->file->f_op->write_iter))
                ret2 = call_write_iter(req->file, kiocb, &s->iter);
        else if (req->file->f_op->write)
This page took 0.061893 seconds and 4 git commands to generate.