ROMFS: Advance destination buffer pointer when reading from a blockdev
authorDavid Howells <dhowells@redhat.com>
Thu, 23 Apr 2009 15:41:18 +0000 (16:41 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 24 Apr 2009 20:28:31 +0000 (13:28 -0700)
RomFS should advance the destination buffer pointer when reading data from a
blockdev source (the data may be split over multiple blocks, each requiring its
own sb_read() call).  Without this, all the data is copied to the beginning of
the output buffer.

Signed-off-by: David Howells <dhowells@redhat.com>
Tested-by: Michal Simek <monstr@monstr.eu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/romfs/storage.c

index 66ce9ddfe5041646852ef15b27fb1df5aa21377a..b3208adf8e71e0be84b46c318209b4c997b61b10 100644 (file)
@@ -120,6 +120,7 @@ static int romfs_blk_read(struct super_block *sb, unsigned long pos,
                        return -EIO;
                memcpy(buf, bh->b_data + offset, segment);
                brelse(bh);
+               buf += segment;
                buflen -= segment;
                pos += segment;
        }