rbd: don't revalidate so much
Whenever a header object event causes a mapped rbd image to refresh
its header information, revalidate_disk() is being called.  This was
done in rbd_dev_refresh() outside the control mutex in order to
avoid a lock inversion.  Although a an event like this *might*
indicate the image has changed size, most of the time it does not.
Record the image size before and after the refresh, and only
call revalidate_disk() if it changes.
This resolves:
    http://tracker.ceph.com/issues/4867
Signed-off-by:  Alex Elder <elder@inktank.com>
Reviewed-by:
Alex Elder <elder@inktank.com>
Reviewed-by:  Josh Durgin <josh.durgin@inktank.com>
Josh Durgin <josh.durgin@inktank.com>
Loading
Please register or sign in to comment
