mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
vfs: check bh->b_blocknr only if BH_Mapped is set
Check bh->b_blocknr only if BH_Mapped is set. akpm: I doubt if b_blocknr is ever uninitialised here, but it could conceivably cause a problem if we're doing a lookup for block zero. Signed-off-by: Nikanth Karthikesan <knikanth@suse.de> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9a896c9a48
commit
97f76d3d19
@ -199,13 +199,13 @@ __find_get_block_slow(struct block_device *bdev, sector_t block)
|
||||
head = page_buffers(page);
|
||||
bh = head;
|
||||
do {
|
||||
if (bh->b_blocknr == block) {
|
||||
if (!buffer_mapped(bh))
|
||||
all_mapped = 0;
|
||||
else if (bh->b_blocknr == block) {
|
||||
ret = bh;
|
||||
get_bh(bh);
|
||||
goto out_unlock;
|
||||
}
|
||||
if (!buffer_mapped(bh))
|
||||
all_mapped = 0;
|
||||
bh = bh->b_this_page;
|
||||
} while (bh != head);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user