if (! rdev->in_sync || rdev->faulty) 
if (! test_bit(In_sync, &rdev->flags) || test_bit(Faulty, &rdev->flags)) 
static struct page *read_sb_page(mddev_t *mddev, long offset, unsigned long index){	/* choose a good rdev and read the page from there */	mdk_rdev_t *rdev;	struct list_head *tmp;	struct page *page = alloc_page(GFP_KERNEL);	sector_t target;	if (!page)		return ERR_PTR(-ENOMEM);	ITERATE_RDEV(mddev, rdev, tmp) {		if (! rdev->in_sync || rdev->faulty)			continue;		target = (rdev->sb_offset << 1) + offset + index * (PAGE_SIZE/512);		if (sync_page_io(rdev->bdev, target, PAGE_SIZE, page, READ)) {			page->index = index;			return page;		}	}	return ERR_PTR(-EIO);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b2d444d7ad975d555bb919601bcdc0e58975a40e/bitmap.c/buggy/drivers/md/bitmap.c