lkml.org 
[lkml]   [2006]   [May]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [smartmontools-support]Re: LibPATA code issues / 2.6.16 (previously, 2.6.15.x)
    Date
    On Saturday, 6. May 2006 17:09, Leon Woestenberg wrote:
    > However, for large files where parts may be bad sectors, I am still
    > searching for a way to read, then re-write every physical sector
    > occupied by the file.
    >
    > With the purpose to remap the bad sectors inside large MPEG files (where
    > I would rather have a few zeroed holes than a read error in them).

    This much easier to solve in the player software:
    do {
    ret = read(fd, buffer, size)
    if (ret > 0) {
    playbuffer(buffer, ret)
    } else if (ret < 0) {
    switch(errno) {
    case EIO:
    playbuffer(allzeroesbuffer, size);
    /* skip over this frame because of disk problems */
    lseek(fd, size, SEEK_CUR);
    /* TODO: Handle return or lseek() here */
    }
    }
    } while(ret != 0)

    > Anyone know such tooling exists? I suspect it has to use filesystem
    > specific IOCTL's to query for the blocks involved.

    The (somewhat) portable ioctl() FIBMAP would suffice.
    That way you find out what blocks are this file is mapped to,
    and could add some of these blocks to the badblock list of e2fsck.

    Regards

    Ingo Oeser
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-05-07 14:50    [W:4.075 / U:0.192 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site