Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp6748909pxv; Fri, 30 Jul 2021 01:06:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxtvMzVDeMKo8rkNkM6sSCEWm08eKxemuHymF/bc4CPJbG5u2r0S0ozR9tEpc6WyxXxt2JK X-Received: by 2002:a17:906:3794:: with SMTP id n20mr41671ejc.362.1627632416755; Fri, 30 Jul 2021 01:06:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627632416; cv=none; d=google.com; s=arc-20160816; b=HSpvI7KU/qJx79Hyi3nN+Hkm8+Jml5EqaQSRjcT2hTVLj5QMF1c/anGnoiQwlURx9f X12qn+kJCi60vvG2MD5pbhdxsCSpH5dSISJq+RlZWRdtbN25DLn/OPjTkBCxrK/Mfe8w oOCX1n8Rv/DSa+648gvuqTFq6fGRBgsoXAvr3PjDD1tHOMT6Z4r+o4In+o7baVoKxVOQ w4OoM/wIdrM+UYOr2o9CaYY+c50cdM2v+Bf2CNy4vR9ngD2aV/Ef6kWdi3R8OWZv1HEn wzYqTJV9sHlWzUMg4lrUPRVxavSt3HzHd9aq7iIbPfmYMG2RYgOm2ITP7bgm9GMaN/TP yrTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:message-id:in-reply-to :subject:cc:to:from:date:dkim-signature; bh=MGzbYcDH1nDg768HY0nxSbDVEpHf6CaY6eKAkj1Bcno=; b=kbV2o/kSipHNj2XWSIPt59Ah+czt4H4kp34p1sMhBB8ErGZ0VGrYRME8x0dwwu2D20 6ju6HH1dLgxeHXMrEiMNwrRAAuz4gw2QhgsWqVMpwGQE8KGzontUJIITrq5Rtoj8VM2G 0INrhUS/YkLVBU6WLngdwu16jI1fp6d1nUSsv4baMKw2rToSiuJGzOzVzBnBpEquM9A+ mVEfIs7yrHpuGaazV5spIKEWeo5VwfafmQBv/x0LhSCw7qN6vADt9o6zlAK1hvVgefxk 9erZzUqVXmNCrGYY/O3NW7sn+eTkvHnEljefYIy2GeA/7q1XQr9z5o0707pXSTraI9bA 3fhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=o9CkvmfR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z22si969114edc.206.2021.07.30.01.06.10; Fri, 30 Jul 2021 01:06:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=o9CkvmfR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237905AbhG3ID4 (ORCPT + 99 others); Fri, 30 Jul 2021 04:03:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237956AbhG3IDg (ORCPT ); Fri, 30 Jul 2021 04:03:36 -0400 Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [IPv6:2607:f8b0:4864:20::734]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5916EC0613CF for ; Fri, 30 Jul 2021 01:03:20 -0700 (PDT) Received: by mail-qk1-x734.google.com with SMTP id t68so8640021qkf.8 for ; Fri, 30 Jul 2021 01:03:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:from:to:cc:subject:in-reply-to:message-id:references :mime-version; bh=MGzbYcDH1nDg768HY0nxSbDVEpHf6CaY6eKAkj1Bcno=; b=o9CkvmfR1TcmeOk6LOKvzvte8hfyZYPrZSw2A7Wzr6ScvLcANBE/Yoki51+w9yX2f6 LVZpGnEbwEkqt7Hnt4+bRy/6x7vHr//wG299GJtb3ki0DosAuUEDfoNE2XtI+uUhKWo8 JHPPLfpx8KtKArXuCe/nuOYN+WbhwkFd6C/is1BOTenZhPT2ltWUzirXBxTvUZUS+Eth QpoRVlzDTTDqPnJEkTWpSHqLZy5XfvU0CnPupILljD14KkG6MGijbWyMZkjws6psWPKu It373FYdIqlePn1A4XbdCWvefbcGFvZ9tg5krXyxfwhlI9Zg4rXj4U19/DZ057wpLO/T RdPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:mime-version; bh=MGzbYcDH1nDg768HY0nxSbDVEpHf6CaY6eKAkj1Bcno=; b=VoaCvDEZwCeRqrtBvGJYa4uLL4gTSiiVR8RoLROnBKgEgZYh2g/7kjgNJC6LN0gp4j Qt98righCCe2uYpni5P/PlGRCdVi2T6J3ydWJWIOM2uSN+EJIF6eN4h0L4YzwojPrOjT di3c7XOFnvhkZdcb0AB2XonNIm2Yp85fIp7gR0MeG7aS5uD75jeJDXM+1AQiY8A4YFbc 8m9DWTYpXpzdaA7Py2by8+S10275r4B2Cy0GL0xJiEnLphFy4mBvGsWFkUwVE1ZlY/k2 A7oISD0LTbb+KD80X+9khy2oujCs6gbbI1/vdpSU6zD8FSWKbncQ/J2zNfPLT1ezVpSA hglw== X-Gm-Message-State: AOAM531CvR+aHxtY/Qpk2Vce5rD7HKRTfFc76nIeRbLtqz2JzKWELdaR ijFun6AZjkiz2YvmaTKgxs0W3A== X-Received: by 2002:a37:4042:: with SMTP id n63mr1074442qka.425.1627632199330; Fri, 30 Jul 2021 01:03:19 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id y9sm316166qtw.51.2021.07.30.01.03.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jul 2021 01:03:18 -0700 (PDT) Date: Fri, 30 Jul 2021 01:03:15 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.anvils To: Andrew Morton cc: Hugh Dickins , Shakeel Butt , "Kirill A. Shutemov" , Yang Shi , Miaohe Lin , Mike Kravetz , Michal Hocko , Rik van Riel , Christoph Hellwig , Matthew Wilcox , "Eric W. Biederman" , Alexey Gladkov , Chris Wilson , Matthew Auld , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 13/16] mm: bool user_shm_lock(loff_t size, struct ucounts *) In-Reply-To: <2862852d-badd-7486-3a8e-c5ea9666d6fb@google.com> Message-ID: References: <2862852d-badd-7486-3a8e-c5ea9666d6fb@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org user_shm_lock()'s size_t size was big enough for SysV SHM locking, but not quite big enough for O_LARGEFILE on 32-bit: change to loff_t size. And while changing the prototype, let's use bool rather than int here. Signed-off-by: Hugh Dickins --- include/linux/mm.h | 4 ++-- mm/mlock.c | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 7ca22e6e694a..f1be2221512b 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1713,8 +1713,8 @@ extern bool can_do_mlock(void); #else static inline bool can_do_mlock(void) { return false; } #endif -extern int user_shm_lock(size_t, struct ucounts *); -extern void user_shm_unlock(size_t, struct ucounts *); +extern bool user_shm_lock(loff_t size, struct ucounts *ucounts); +extern void user_shm_unlock(loff_t size, struct ucounts *ucounts); /* * Parameter block passed down to zap_pte_range in exceptional cases. diff --git a/mm/mlock.c b/mm/mlock.c index 16d2ee160d43..7df88fce0fc9 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -813,21 +813,21 @@ SYSCALL_DEFINE0(munlockall) } /* - * Objects with different lifetime than processes (SHM_LOCK and SHM_HUGETLB - * shm segments) get accounted against the user_struct instead. + * Objects with different lifetime than processes (SHM_LOCK and SHM_HUGETLB shm + * segments and F_MEM_LOCK tmpfs) get accounted to the user_namespace instead. */ static DEFINE_SPINLOCK(shmlock_user_lock); -int user_shm_lock(size_t size, struct ucounts *ucounts) +bool user_shm_lock(loff_t size, struct ucounts *ucounts) { unsigned long lock_limit, locked; long memlock; - int allowed = 0; + bool allowed = false; locked = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; lock_limit = rlimit(RLIMIT_MEMLOCK); if (lock_limit == RLIM_INFINITY) - allowed = 1; + allowed = true; lock_limit >>= PAGE_SHIFT; spin_lock(&shmlock_user_lock); memlock = inc_rlimit_ucounts(ucounts, UCOUNT_RLIMIT_MEMLOCK, locked); @@ -840,13 +840,13 @@ int user_shm_lock(size_t size, struct ucounts *ucounts) dec_rlimit_ucounts(ucounts, UCOUNT_RLIMIT_MEMLOCK, locked); goto out; } - allowed = 1; + allowed = true; out: spin_unlock(&shmlock_user_lock); return allowed; } -void user_shm_unlock(size_t size, struct ucounts *ucounts) +void user_shm_unlock(loff_t size, struct ucounts *ucounts) { spin_lock(&shmlock_user_lock); dec_rlimit_ucounts(ucounts, UCOUNT_RLIMIT_MEMLOCK, (size + PAGE_SIZE - 1) >> PAGE_SHIFT); -- 2.26.2