[dm-devel] dm-raid1 - error handling?

Ondrej Palkovsky ondrap at penguin.cz
Tue Dec 4 16:53:06 UTC 2007


I have been browsing through source code of dm-raid1.c (kernel 2.6.23.1) 
and this seems to me weird.
Function write_callback in dm-raid1.c - what is it supposed to do? 
First, the if (error) block seems
like just one big NOP, second it looks like any error slips undetected.  
Am I correct or is there some logic I am not aware of?

Ondrej

{
.. declarations etc...
    if (error) {
        /*
         * only error the io if all mirrors failed.
         * FIXME: bogus
         */
        uptodate = 0;
        for (i = 0; i < ms->nr_mirrors; i++)
            if (!test_bit(i, &error)) {
                uptodate = 1;
                break;
            }
    }
    bio_endio(bio, bio->bi_size, 0);
} - end of function





More information about the dm-devel mailing list