On Fri 22-05-15 17:13:50, Tejun Heo wrote: > This will be used to implement bdi-wide operations which should be > distributed across all its cgroup bdi_writebacks. > > Signed-off-by: Tejun Heo <tj@xxxxxxxxxx> > Cc: Jens Axboe <axboe@xxxxxxxxx> > Cc: Jan Kara <jack@xxxxxxx> One comment below. > @@ -445,6 +500,14 @@ static inline void wb_blkcg_offline(struct blkcg *blkcg) > { > } > > +struct wb_iter { > + int next_id; > +}; > + > +#define bdi_for_each_wb(wb_cur, bdi, iter, start_blkcg_id) \ > + for ((iter)->next_id = (start_blkcg_id); \ > + ({ (wb_cur) = !(iter)->next_id++ ? &(bdi)->wb : NULL; }); ) > + This looks quite confusing. Won't it be easier to understand as: struct wb_iter { } __attribute__ ((unused)); #define bdi_for_each_wb(wb_cur, bdi, iter, start_blkcg_id) \ if (((wb_cur) = (!start_blkcg_id ? &(bdi)->wb : NULL))) Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>