X-Git-Url: https://git.stricted.de/?p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git;a=blobdiff_plain;f=drivers%2Fmtd%2Fmtdchar.c;h=8c0d94b72b63671cae6c1aa51ab30bfa9957da96;hp=16df1e4fb0e94d2efec9542e6114f0593c3ad3bf;hb=2fc2991175bf77395e6b15fe6b2304d3bf72da40;hpb=7015faa7df829876a0f931cd18aa6d7c24a1b581 diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 16df1e4fb0e9..8c0d94b72b63 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c @@ -1,5 +1,5 @@ /* - * $Id: mtdchar.c,v 1.73 2005/07/04 17:36:41 gleixner Exp $ + * $Id: mtdchar.c,v 1.74 2005/08/04 01:05:48 tpoynor Exp $ * * Character-device access to raw MTD devices. * @@ -70,26 +70,23 @@ static loff_t mtd_lseek (struct file *file, loff_t offset, int orig) switch (orig) { case 0: /* SEEK_SET */ - file->f_pos = offset; break; case 1: /* SEEK_CUR */ - file->f_pos += offset; + offset += file->f_pos; break; case 2: /* SEEK_END */ - file->f_pos =mtd->size + offset; + offset += mtd->size; break; default: return -EINVAL; } - if (file->f_pos < 0) - file->f_pos = 0; - else if (file->f_pos >= mtd->size) - file->f_pos = mtd->size - 1; + if (offset >= 0 && offset < mtd->size) + return file->f_pos = offset; - return file->f_pos; + return -EINVAL; }