Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b944d3a authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Al Viro
Browse files

aio: hold an extra file reference over AIO read/write operations



Otherwise we might dereference an already freed file and/or inode
when aio_complete is called before we return from the read_iter or
write_iter method.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent a909d3e6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1460,6 +1460,7 @@ static ssize_t aio_run_iocb(struct kiocb *req, unsigned opcode,
			return ret;
		}

		get_file(file);
		if (rw == WRITE)
			file_start_write(file);

@@ -1467,6 +1468,7 @@ static ssize_t aio_run_iocb(struct kiocb *req, unsigned opcode,

		if (rw == WRITE)
			file_end_write(file);
		fput(file);
		kfree(iovec);
		break;