ovl: use kiocb_{start,end}_write() helpers
Use helpers instead of the open coded dance to silence lockdep warnings. Suggested-by: Jan Kara <jack@suse.cz> Signed-off-by: Amir Goldstein <amir73il@gmail.com> Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Jens Axboe <axboe@kernel.dk> Message-Id: <20230817141337.1025891-7-amir73il@gmail.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
8c3cfa80fd
commit
8f7371268a
|
@ -290,10 +290,7 @@ static void ovl_aio_cleanup_handler(struct ovl_aio_req *aio_req)
|
||||||
if (iocb->ki_flags & IOCB_WRITE) {
|
if (iocb->ki_flags & IOCB_WRITE) {
|
||||||
struct inode *inode = file_inode(orig_iocb->ki_filp);
|
struct inode *inode = file_inode(orig_iocb->ki_filp);
|
||||||
|
|
||||||
/* Actually acquired in ovl_write_iter() */
|
kiocb_end_write(iocb);
|
||||||
__sb_writers_acquired(file_inode(iocb->ki_filp)->i_sb,
|
|
||||||
SB_FREEZE_WRITE);
|
|
||||||
file_end_write(iocb->ki_filp);
|
|
||||||
ovl_copyattr(inode);
|
ovl_copyattr(inode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -409,10 +406,6 @@ static ssize_t ovl_write_iter(struct kiocb *iocb, struct iov_iter *iter)
|
||||||
if (!aio_req)
|
if (!aio_req)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
file_start_write(real.file);
|
|
||||||
/* Pacify lockdep, same trick as done in aio_write() */
|
|
||||||
__sb_writers_release(file_inode(real.file)->i_sb,
|
|
||||||
SB_FREEZE_WRITE);
|
|
||||||
aio_req->fd = real;
|
aio_req->fd = real;
|
||||||
real.flags = 0;
|
real.flags = 0;
|
||||||
aio_req->orig_iocb = iocb;
|
aio_req->orig_iocb = iocb;
|
||||||
|
@ -420,6 +413,7 @@ static ssize_t ovl_write_iter(struct kiocb *iocb, struct iov_iter *iter)
|
||||||
aio_req->iocb.ki_flags = ifl;
|
aio_req->iocb.ki_flags = ifl;
|
||||||
aio_req->iocb.ki_complete = ovl_aio_rw_complete;
|
aio_req->iocb.ki_complete = ovl_aio_rw_complete;
|
||||||
refcount_set(&aio_req->ref, 2);
|
refcount_set(&aio_req->ref, 2);
|
||||||
|
kiocb_start_write(&aio_req->iocb);
|
||||||
ret = vfs_iocb_iter_write(real.file, &aio_req->iocb, iter);
|
ret = vfs_iocb_iter_write(real.file, &aio_req->iocb, iter);
|
||||||
ovl_aio_put(aio_req);
|
ovl_aio_put(aio_req);
|
||||||
if (ret != -EIOCBQUEUED)
|
if (ret != -EIOCBQUEUED)
|
||||||
|
|
Loading…
Reference in New Issue