Эх сурвалжийг харах

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: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Christoph Hellwig 8 жил өмнө
parent
commit
0b944d3a4b
1 өөрчлөгдсөн 2 нэмэгдсэн , 0 устгасан
  1. 2 0
      fs/aio.c

+ 2 - 0
fs/aio.c

@@ -1460,6 +1460,7 @@ rw_common:
 			return ret;
 		}
 
+		get_file(file);
 		if (rw == WRITE)
 			file_start_write(file);
 
@@ -1467,6 +1468,7 @@ rw_common:
 
 		if (rw == WRITE)
 			file_end_write(file);
+		fput(file);
 		kfree(iovec);
 		break;