From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932093AbbLUX7O (ORCPT ); Mon, 21 Dec 2015 18:59:14 -0500 Received: from zeniv.linux.org.uk ([195.92.253.2]:33073 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752329AbbLUXsH (ORCPT ); Mon, 21 Dec 2015 18:48:07 -0500 From: Al Viro To: linux-kernel@vger.kernel.org Cc: Linus Torvalds Subject: [POC][PATCH 48/83] jfs_readdir(): make dirent_buf a pointer Date: Mon, 21 Dec 2015 23:47:21 +0000 Message-Id: <1450741676-5865-48-git-send-email-viro@ZenIV.linux.org.uk> X-Mailer: git-send-email 1.7.7.6 In-Reply-To: <20151221234615.GW20997@ZenIV.linux.org.uk> References: <20151221234615.GW20997@ZenIV.linux.org.uk> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Al Viro Signed-off-by: Al Viro --- fs/jfs/jfs_dtree.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/jfs/jfs_dtree.c b/fs/jfs/jfs_dtree.c index e585852..56d18de 100644 --- a/fs/jfs/jfs_dtree.c +++ b/fs/jfs/jfs_dtree.c @@ -3023,7 +3023,7 @@ int jfs_readdir(struct file *file, struct dir_context *ctx) struct ldtentry *d; struct dtslot *t; int d_namleft, len, outlen; - unsigned long dirent_buf; + void *dirent_buf; char *name_ptr; u32 dir_index; int do_index = 0; @@ -3180,8 +3180,8 @@ int jfs_readdir(struct file *file, struct dir_context *ctx) } } - dirent_buf = __get_free_page(GFP_KERNEL); - if (dirent_buf == 0) { + dirent_buf = (void *)__get_free_page(GFP_KERNEL); + if (!dirent_buf) { DT_PUTPAGE(mp); jfs_warn("jfs_readdir: __get_free_page failed!"); ctx->pos = DIREND; @@ -3198,7 +3198,7 @@ int jfs_readdir(struct file *file, struct dir_context *ctx) for (i = index; i < p->header.nextindex; i++) { d = (struct ldtentry *) & p->slot[stbl[i]]; - if (((long) jfs_dirent + d->namlen + 1) > + if (((void *) jfs_dirent + d->namlen + 1) > (dirent_buf + PAGE_SIZE)) { /* DBCS codepages could overrun dirent_buf */ index = i; @@ -3324,13 +3324,13 @@ skip_one: DT_GETPAGE(ip, bn, mp, PSIZE, p, rc); if (rc) { - free_page((void *)dirent_buf); + free_page(dirent_buf); return rc; } } out: - free_page((void *)dirent_buf); + free_page(dirent_buf); return rc; } -- 2.1.4