Index: src/wp-includes/user.php
===================================================================
--- src/wp-includes/user.php	(revision 31868)
+++ src/wp-includes/user.php	(working copy)
@@ -1133,13 +1133,31 @@
  */
 function get_blogs_of_user( $user_id, $all = false ) {
 	global $wpdb;
+	static $blogs = array();
 
 	$user_id = (int) $user_id;
 
 	// Logged out users can't have blogs
-	if ( empty( $user_id ) )
+	if ( empty( $user_id ) ) {
 		return array();
+	}
 
+	/**
+	 * Filter a user's blogs array before it is retrieved.
+	 *
+	 * @since 4.1.3
+	 *
+	 * @param array $blogs   An array of blog objects belonging to the user. Default is an empty array.
+	 * @param int   $user_id User ID.
+	 * @param bool  $all     Whether the returned blogs array should contain all blogs, including
+	 *                       those marked 'deleted', 'archived', or 'spam'. Default false.
+	 */
+	$blogs = apply_filters( 'pre_get_blogs_of_user', $blogs, $user_id, $all );
+
+	if ( is_array( $blogs ) && ! empty( $blogs ) ) {
+		return $blogs;
+	}
+
 	$keys = get_user_meta( $user_id );
 	if ( empty( $keys ) )
 		return array();
