Re: [patch] exofs: confusion between kmap() and kmap_atomic() api

From: Boaz Harrosh
Date: Sun May 09 2010 - 06:16:50 EST


On 05/07/2010 12:05 PM, Dan Carpenter wrote:
> For kmap_atomic() we call kunmap_atomic() on the returned pointer.
> That's different from kmap() and kunmap() and so it's easy to get them
> backwards.
>
> Signed-off-by: Dan Carpenter <error27@xxxxxxxxx>
>

Thank you Dan, I'll push it ASAP.

Looks like a bad bug. So this is actually a leak, right? kunmap_atomic
would detect the bad pointer and do nothing?

Thanks again
Boaz

> diff --git a/fs/exofs/dir.c b/fs/exofs/dir.c
> index 4cfab1c..d91e9d8 100644
> --- a/fs/exofs/dir.c
> +++ b/fs/exofs/dir.c
> @@ -608,7 +608,7 @@ int exofs_make_empty(struct inode *inode, struct inode *parent)
> de->inode_no = cpu_to_le64(parent->i_ino);
> memcpy(de->name, PARENT_DIR, sizeof(PARENT_DIR));
> exofs_set_de_type(de, inode);
> - kunmap_atomic(page, KM_USER0);
> + kunmap_atomic(kaddr, KM_USER0);
> err = exofs_commit_chunk(page, 0, chunk_size);
> fail:
> page_cache_release(page);

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