Lines Matching defs:rdev
143 /* choose a good rdev and read the page from there */
150 struct md_rdev *rdev;
152 rdev_for_each(rdev, mddev) {
153 u32 iosize = roundup(size, bdev_logical_block_size(rdev->bdev));
155 if (!test_bit(In_sync, &rdev->flags) ||
156 test_bit(Faulty, &rdev->flags) ||
157 test_bit(Bitmap_sync, &rdev->flags))
160 if (sync_page_io(rdev, sector, iosize, page, REQ_OP_READ, true))
166 static struct md_rdev *next_active_rdev(struct md_rdev *rdev, struct mddev *mddev)
176 * Note that if entered with 'rdev == NULL' to start at the
177 * beginning, we temporarily assign 'rdev' to an address which
178 * isn't really an rdev, but which can be used by
182 if (rdev == NULL)
184 rdev = list_entry(&mddev->disks, struct md_rdev, same_set);
186 /* release the previous rdev and start from there. */
187 rdev_dec_pending(rdev, mddev);
189 list_for_each_entry_continue_rcu(rdev, &mddev->disks, same_set) {
190 if (rdev->raid_disk >= 0 &&
191 !test_bit(Faulty, &rdev->flags)) {
193 atomic_inc(&rdev->nr_pending);
195 return rdev;
224 static int __write_sb_page(struct md_rdev *rdev, struct bitmap *bitmap,
236 bdev = (rdev->meta_bdev) ? rdev->meta_bdev : rdev->bdev;
247 sboff = rdev->sb_start + offset;
248 doff = rdev->data_offset;
266 } else if (rdev->sb_start < rdev->data_offset) {
276 md_super_write(mddev, rdev, sboff + ps, (int) size, page);
286 struct md_rdev *rdev = NULL;
288 while ((rdev = next_active_rdev(rdev, mddev)) != NULL) {
289 if (__write_sb_page(rdev, bitmap, pg_index, page) < 0) {
1977 struct md_rdev *rdev;
1982 rdev_for_each(rdev, mddev)
1983 mddev_create_serial_pool(mddev, rdev, true);
2544 struct md_rdev *rdev;
2560 rdev_for_each(rdev, mddev) {
2561 if (test_bit(WriteMostly, &rdev->flags)) {
2580 rdev_for_each(rdev, mddev)
2581 mddev_create_serial_pool(mddev, rdev, false);