Commit d1b0949f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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()
parents 56567a20 dc32464a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -453,5 +453,5 @@ ccslow: cmp %g1, 0
 * we only bother with faults on loads... */

cc_fault:
	ret
	retl
	 clr	%o0
+1 −1
Original line number Diff line number Diff line
@@ -861,8 +861,8 @@ int ceph_wait_on_conflict_unlink(struct dentry *dentry)
		if (!d_same_name(udentry, pdentry, &dname))
			goto next;

		found = dget_dlock(udentry);
		spin_unlock(&udentry->d_lock);
		found = dget(udentry);
		break;
next:
		spin_unlock(&udentry->d_lock);
+1 −1
Original line number Diff line number Diff line
@@ -339,7 +339,7 @@ static int kiocb_done(struct io_kiocb *req, ssize_t ret,
	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)) {