diff options
author | Manish Sharma <manishrma@gmail.com> | 2013-09-04 22:31:23 +0530 |
---|---|---|
committer | Phillip Lougher <phillip@squashfs.org.uk> | 2013-09-05 00:13:37 +0100 |
commit | e0125262a2f5cefbfb3804117f8ab16e9ba13e29 (patch) | |
tree | 9c2ba3a01df9a1ab647cfc6105e80f521ff9e9f3 /fs/squashfs | |
parent | 28d7b5684ba98e163ba37779fd09de01fac5261d (diff) | |
download | talos-op-linux-e0125262a2f5cefbfb3804117f8ab16e9ba13e29.tar.gz talos-op-linux-e0125262a2f5cefbfb3804117f8ab16e9ba13e29.zip |
Squashfs: Optimized uncompressed buffer loop
Merged the two for loops. We might get a little gain by overlapping
wait_on_bh and the memcpy operations.
Signed-off-by: Manish Sharma <manishrma@gmail.com>
Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
Diffstat (limited to 'fs/squashfs')
-rw-r--r-- | fs/squashfs/block.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c index fb50652e4e11..41d108ecc9be 100644 --- a/fs/squashfs/block.c +++ b/fs/squashfs/block.c @@ -167,17 +167,14 @@ int squashfs_read_data(struct super_block *sb, void **buffer, u64 index, /* * Block is uncompressed. */ - int i, in, pg_offset = 0; - - for (i = 0; i < b; i++) { - wait_on_buffer(bh[i]); - if (!buffer_uptodate(bh[i])) - goto block_release; - } + int in, pg_offset = 0; for (bytes = length; k < b; k++) { in = min(bytes, msblk->devblksize - offset); bytes -= in; + wait_on_buffer(bh[k]); + if (!buffer_uptodate(bh[k])) + goto block_release; while (in) { if (pg_offset == PAGE_CACHE_SIZE) { page++; |