Lines Matching defs:rdev
146 /* choose a good rdev and read the page from there */
148 struct md_rdev *rdev;
151 rdev_for_each(rdev, mddev) {
152 if (! test_bit(In_sync, &rdev->flags)
153 || test_bit(Faulty, &rdev->flags)
154 || test_bit(Bitmap_sync, &rdev->flags))
159 if (sync_page_io(rdev, target,
160 roundup(size, bdev_logical_block_size(rdev->bdev)),
169 static struct md_rdev *next_active_rdev(struct md_rdev *rdev, struct mddev *mddev)
179 * Note that if entered with 'rdev == NULL' to start at the
180 * beginning, we temporarily assign 'rdev' to an address which
181 * isn't really an rdev, but which can be used by
185 if (rdev == NULL)
187 rdev = list_entry(&mddev->disks, struct md_rdev, same_set);
189 /* release the previous rdev and start from there. */
190 rdev_dec_pending(rdev, mddev);
192 list_for_each_entry_continue_rcu(rdev, &mddev->disks, same_set) {
193 if (rdev->raid_disk >= 0 &&
194 !test_bit(Faulty, &rdev->flags)) {
196 atomic_inc(&rdev->nr_pending);
198 return rdev;
207 struct md_rdev *rdev;
213 rdev = NULL;
214 while ((rdev = next_active_rdev(rdev, mddev)) != NULL) {
218 bdev = (rdev->meta_bdev) ? rdev->meta_bdev : rdev->bdev;
232 if (rdev->sb_start + offset + (page->index
234 > rdev->data_offset
236 rdev->sb_start + offset
237 < (rdev->data_offset + mddev->dev_sectors
247 if (rdev->data_offset + mddev->dev_sectors
248 > rdev->sb_start + offset)
251 } else if (rdev->sb_start < rdev->data_offset) {
253 if (rdev->sb_start
256 > rdev->data_offset)
262 md_super_write(mddev, rdev,
263 rdev->sb_start + offset
1906 struct md_rdev *rdev;
1911 rdev_for_each(rdev, mddev)
1912 mddev_create_serial_pool(mddev, rdev, true);
2479 struct md_rdev *rdev;
2495 rdev_for_each(rdev, mddev) {
2496 if (test_bit(WriteMostly, &rdev->flags)) {
2515 rdev_for_each(rdev, mddev)
2516 mddev_create_serial_pool(mddev, rdev, false);