From: Andrew Morton - nuke nasty gccism, do it the same way as we do it everywhere else - fix leak Cc: Badari Pulavarty Cc: Nick Piggin Cc: William Irwin Signed-off-by: Andrew Morton --- fs/hugetlbfs/inode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff -puN fs/hugetlbfs/inode.c~hugetlbfs-read-support-fix fs/hugetlbfs/inode.c --- a/fs/hugetlbfs/inode.c~hugetlbfs-read-support-fix +++ a/fs/hugetlbfs/inode.c @@ -267,7 +267,9 @@ hugetlbfs_read(struct file *filp, char _ */ ret = hugetlbfs_read_actor(page, offset, buf, len, nr); if (ret < 0) { - retval = retval ? : ret; + if (retval == 0) + retval = ret; + page_cache_release(page); goto out; } _