mirror of
https://github.com/lkl/linux.git
synced 2025-12-18 23:53:03 +09:00
Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
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()
This commit is contained in:
@@ -453,5 +453,5 @@ ccslow: cmp %g1, 0
|
|||||||
* we only bother with faults on loads... */
|
* we only bother with faults on loads... */
|
||||||
|
|
||||||
cc_fault:
|
cc_fault:
|
||||||
ret
|
retl
|
||||||
clr %o0
|
clr %o0
|
||||||
|
|||||||
@@ -861,8 +861,8 @@ int ceph_wait_on_conflict_unlink(struct dentry *dentry)
|
|||||||
if (!d_same_name(udentry, pdentry, &dname))
|
if (!d_same_name(udentry, pdentry, &dname))
|
||||||
goto next;
|
goto next;
|
||||||
|
|
||||||
|
found = dget_dlock(udentry);
|
||||||
spin_unlock(&udentry->d_lock);
|
spin_unlock(&udentry->d_lock);
|
||||||
found = dget(udentry);
|
|
||||||
break;
|
break;
|
||||||
next:
|
next:
|
||||||
spin_unlock(&udentry->d_lock);
|
spin_unlock(&udentry->d_lock);
|
||||||
|
|||||||
@@ -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);
|
struct io_rw *rw = io_kiocb_to_cmd(req, struct io_rw);
|
||||||
unsigned final_ret = io_fixup_rw_res(req, ret);
|
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;
|
req->file->f_pos = rw->kiocb.ki_pos;
|
||||||
if (ret >= 0 && (rw->kiocb.ki_complete == io_complete_rw)) {
|
if (ret >= 0 && (rw->kiocb.ki_complete == io_complete_rw)) {
|
||||||
if (!__io_complete_rw_common(req, ret)) {
|
if (!__io_complete_rw_common(req, ret)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user