|
@@ -751,8 +751,9 @@ static inline int zonelist_node_idx(struct zoneref *zoneref)
|
|
|
*
|
|
|
* This function returns the next zone at or below a given zone index that is
|
|
|
* within the allowed nodemask using a cursor as the starting point for the
|
|
|
- * search. The zoneref returned is a cursor that is used as the next starting
|
|
|
- * point for future calls to next_zones_zonelist().
|
|
|
+ * search. The zoneref returned is a cursor that represents the current zone
|
|
|
+ * being examined. It should be advanced by one before calling
|
|
|
+ * next_zones_zonelist again.
|
|
|
*/
|
|
|
struct zoneref *next_zones_zonelist(struct zoneref *z,
|
|
|
enum zone_type highest_zoneidx,
|
|
@@ -768,9 +769,8 @@ struct zoneref *next_zones_zonelist(struct zoneref *z,
|
|
|
*
|
|
|
* This function returns the first zone at or below a given zone index that is
|
|
|
* within the allowed nodemask. The zoneref returned is a cursor that can be
|
|
|
- * used to iterate the zonelist with next_zones_zonelist. The cursor should
|
|
|
- * not be used by the caller as it does not match the value of the zone
|
|
|
- * returned.
|
|
|
+ * used to iterate the zonelist with next_zones_zonelist by advancing it by
|
|
|
+ * one before calling.
|
|
|
*/
|
|
|
static inline struct zoneref *first_zones_zonelist(struct zonelist *zonelist,
|
|
|
enum zone_type highest_zoneidx,
|
|
@@ -795,7 +795,7 @@ static inline struct zoneref *first_zones_zonelist(struct zonelist *zonelist,
|
|
|
#define for_each_zone_zonelist_nodemask(zone, z, zlist, highidx, nodemask) \
|
|
|
for (z = first_zones_zonelist(zlist, highidx, nodemask, &zone); \
|
|
|
zone; \
|
|
|
- z = next_zones_zonelist(z, highidx, nodemask, &zone)) \
|
|
|
+ z = next_zones_zonelist(++z, highidx, nodemask, &zone)) \
|
|
|
|
|
|
/**
|
|
|
* for_each_zone_zonelist - helper macro to iterate over valid zones in a zonelist at or below a given zone index
|