fcopyfile() performs a read+write cycle on the entire file to be copied.
The python binding invokes this with the GIL held. This causes the GIL
to be held for extended duration causing other python threads to be
blocked on acquiring the GIL when shceduled.
Fixes: http://tracker.ceph.com/issues/74397
Signed-off-by: Venky Shankar <vshankar@redhat.com>
char *_dpath = dpath
mode_t _mode = mode
+ with nogil:
ret = ceph_fcopyfile(self.cluster, _spath, _dpath, _mode)
if ret < 0: