From: Pan Liu Date: Mon, 14 Nov 2016 10:20:09 +0000 (+0800) Subject: os/filestore: handle EINTR returned by io_getevents() X-Git-Tag: v11.1.0~258^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e71c587ff0db3b8e3b52f18e9744629db354fd0e;p=ceph.git os/filestore: handle EINTR returned by io_getevents() Signed-off-by: Pan Liu --- diff --git a/src/os/fs/FS.cc b/src/os/fs/FS.cc index d2a9f350d343..b25fe07c1aec 100644 --- a/src/os/fs/FS.cc +++ b/src/os/fs/FS.cc @@ -215,7 +215,12 @@ int FS::aio_queue_t::get_next_completed(int timeout_ms, aio_t **paio, int max) timeout_ms / 1000, (timeout_ms % 1000) * 1000 * 1000 }; - int r = io_getevents(ctx, 1, max, event, &t); + + int r = 0; + do { + r = io_getevents(ctx, 1, max, event, &t); + } while (r == -EINTR); + if (r <= 0) { return r; }