Re: [PATCH] ceph: parallelize object copy in ceph_do_objects_copy()
Alex Markuze <[email protected]>
| Newsgroups | org.kernel.vger.ceph-devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Xiubo, Thanks for the patch, the idea is sound but there are a few correctness issues that need fixing: The drain loop walks past the valid window on error — it dereferences request pointers beyond the tail of the in-flight window, which are either freed or uninitialized depending on where the failure occurred. The window size is read from copyfrom_max_inflight on every iteration. A concurrent sysfs write can change it mid-flight, causing the loop bounds to shift while requests are already in-flight. If a request allocation fails partway through, the error return masks any I/O errors that were already recorded for earlier in-flight requests. There's also a design issue for mid-file copies: parallel writes can modify the destination beyond the position implied by a short source count before the short is detected. Could you respin with these fixed? -- Alex Markuze