From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753630AbbGXGZk (ORCPT ); Fri, 24 Jul 2015 02:25:40 -0400 Received: from mail-wi0-f181.google.com ([209.85.212.181]:32959 "EHLO mail-wi0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750749AbbGXGZi (ORCPT ); Fri, 24 Jul 2015 02:25:38 -0400 Date: Fri, 24 Jul 2015 08:25:34 +0200 From: Michal Hocko To: Mike Kravetz Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Dave Hansen , Naoya Horiguchi , David Rientjes , Hugh Dickins , Davidlohr Bueso , Aneesh Kumar , Hillf Danton , Christoph Hellwig Subject: Re: [RFC v5 PATCH 8/9] hugetlbfs: add hugetlbfs_fallocate() Message-ID: <20150724062533.GA4622@dhcp22.suse.cz> References: <1435019919-29225-1-git-send-email-mike.kravetz@oracle.com> <1435019919-29225-9-git-send-email-mike.kravetz@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1435019919-29225-9-git-send-email-mike.kravetz@oracle.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I hope this is the current version of the pathc - I somehow got lost in last submissions where the discussion happens in v4 thread. This version seems to have the same issue: --- >>From 04c37a979c5ce8cd39d3243e4e2c12905e4f1e6e Mon Sep 17 00:00:00 2001 From: Michal Hocko Date: Fri, 24 Jul 2015 08:14:32 +0200 Subject: [PATCH] mmotm: hugetlbfs-new-huge_add_to_page_cache-helper-routine-fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hugetlbfs_fallocate relies on CONFIG_NUMA and fails to compile otherwise. This just makes the code compile but it seems it begs for a better solution. fs/hugetlbfs/inode.c: In function ‘hugetlbfs_fallocate’: fs/hugetlbfs/inode.c:578:13: error: ‘struct vm_area_struct’ has no member named ‘vm_policy’ pseudo_vma.vm_policy = ^ fs/hugetlbfs/inode.c:579:4: error: implicit declaration of function ‘mpol_shared_policy_lookup’ [-Werror=implicit-function-declaration] mpol_shared_policy_lookup(&HUGETLBFS_I(inode)->policy, ^ fs/hugetlbfs/inode.c:595:28: error: ‘struct vm_area_struct’ has no member named ‘vm_policy’ mpol_cond_put(pseudo_vma.vm_policy); ^ fs/hugetlbfs/inode.c:601:27: error: ‘struct vm_area_struct’ has no member named ‘vm_policy’ mpol_cond_put(pseudo_vma.vm_policy); Signed-off-by: Michal Hocko --- fs/hugetlbfs/inode.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index d977cae89d29..dfca09218d77 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c @@ -575,9 +575,11 @@ static long hugetlbfs_fallocate(struct file *file, int mode, loff_t offset, } /* Get policy based on index */ +#ifdef CONFIG_NUMA pseudo_vma.vm_policy = mpol_shared_policy_lookup(&HUGETLBFS_I(inode)->policy, index); +#endif /* addr is the offset within the file (zero based) */ addr = index * hpage_size; @@ -592,13 +594,17 @@ static long hugetlbfs_fallocate(struct file *file, int mode, loff_t offset, if (page) { put_page(page); mutex_unlock(&hugetlb_fault_mutex_table[hash]); +#ifdef CONFIG_NUMA mpol_cond_put(pseudo_vma.vm_policy); +#endif continue; } /* Allocate page and add to page cache */ page = alloc_huge_page(&pseudo_vma, addr, avoid_reserve); +#ifdef CONFIG_NUMA mpol_cond_put(pseudo_vma.vm_policy); +#endif if (IS_ERR(page)) { mutex_unlock(&hugetlb_fault_mutex_table[hash]); error = PTR_ERR(page); -- 2.1.4 -- Michal Hocko SUSE Labs