Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp250757pxu; Tue, 13 Oct 2020 23:37:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJySO9D874lutzu6Mh8ls67oANfGKhbrry0tQFsGRCzOts+WlinGkYP8gHelvavQI2fMaoJr X-Received: by 2002:aa7:c1d7:: with SMTP id d23mr3481314edp.205.1602657473607; Tue, 13 Oct 2020 23:37:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602657473; cv=none; d=google.com; s=arc-20160816; b=vXKrvDiqv/EmiHjygAfzTzGNnc0UX9XBP/GOgL12EmNwh6RCmJkGI99l01Oq8831X/ KrKTwRW1vw5jjjDBsfBjtiYc9LpyQZnO8bn8+CJxUvJMdrPWJQKlblWNnviqaSMXU/kd fiH4EYu/MDadMjsibxqETb8WHPiSz4KmrtzyFD9fXc+nfewnwpHq3OzYwCCESCbsuBCU mStvdhSn0bZmFp4onNzttZqkrEAxpG3zOum8QUb7zGfcXm6WklDtIJi1pkV2t3zEIRoH Xnj1LG4nGUsDcIgtA8nw8k1m9hFB50cNWZpZ5b3Vp+XLwK6gqBG9ezkM7szHv+ljhyOx 3NRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=Dpznq1bVtHuTvkgZ0V3uOe64d8urDDLe1UJMO63b1Hs=; b=faFhcz6MKHmVAWNKD6CtNLHIzJGyEgrt2l3EF79pOFhhBu8a+cZhK5n/tppMAttj0O +5n20xyOsPza2nHS0Bk26g3C0ycSYGq/QL8ROTpOCimU6m1hHWmlOFmC+6/ophtU1Y9Z MRp9s9MI2vQM30LyTvPmmEkNaQCMbhtCEsSRoqfiwuly081BJOvEOFj9xT7Jgc1RW7Eo cl8THSMisOF6qbh1yKIZtGKMjRHwbhoJQjBOz/gwbns3d6ktpr+byxhUj1aHNGi33dhW UZpc2FBRfu0fBJNILKrclivYtYroIJ0UAbtMXvWxMYJ1b2FQUpPwG4lMjcwdXZ+bLBEv a9WQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rasmusvillemoes.dk header.s=google header.b=B7TVlQ2c; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v22si1540623eds.304.2020.10.13.23.37.25; Tue, 13 Oct 2020 23:37:53 -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=@rasmusvillemoes.dk header.s=google header.b=B7TVlQ2c; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727397AbgJMVEZ (ORCPT + 99 others); Tue, 13 Oct 2020 17:04:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40570 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726652AbgJMVEY (ORCPT ); Tue, 13 Oct 2020 17:04:24 -0400 Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A728C0613D2 for ; Tue, 13 Oct 2020 14:04:24 -0700 (PDT) Received: by mail-ed1-x543.google.com with SMTP id g4so960186edk.0 for ; Tue, 13 Oct 2020 14:04:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=Dpznq1bVtHuTvkgZ0V3uOe64d8urDDLe1UJMO63b1Hs=; b=B7TVlQ2cGFtisTvY81goMmv1p7zhU8tVopK6OyjfNs0BEU7T2p+ZQfOnQmGLPH176X Ddx44SpYCO2gquP5hbMHKic8xHREKYmC0yPabTFE1gplCRX/1peJ9ZrQtrX6RdXv81VN K4JPq9b14w6YErYoiaxnLTBoSOxjd8Vw7AzCY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=Dpznq1bVtHuTvkgZ0V3uOe64d8urDDLe1UJMO63b1Hs=; b=tplTX9ThZO9TFPuQfuTfAfrFDycTylF2xj7Rlu8MlCm45P3+C7m2xIGsjSyjOpXjZX 8ls/FFnpdPmZIYG0myzPxhmQhI50E7o3EtMbkxyp7RxCJTn8Ca+VyVw6HuhJEKn0QyNN 2/4kWGpVmULZGdOiBgCq4aezEXH7rTOmIHtOhCEmEnmFd/UvpbMhUTf0C4lhOngFxLR8 7f992cjvbw7hul+dIKW9ZA5DCb3FiD8wxTDOqwAwyWJ1a7XV+dbrak9qVJWyVNj85oma Z4tKRZ2WokD7ZhCMPJC6dibh6x581iKyLwdNe7Gc7qZcRAPmWKoOUs610R9HEuTbcida fq7Q== X-Gm-Message-State: AOAM532I+Ww0mOx4CNv93juPP07TYmdPdRQ85VoA8UtYiX8QjRHWulzP x5dlJMlWrzcBw+5HN+Xn+R6otg== X-Received: by 2002:aa7:d143:: with SMTP id r3mr1636703edo.103.1602623062929; Tue, 13 Oct 2020 14:04:22 -0700 (PDT) Received: from [192.168.1.149] (5.186.115.188.cgn.fibianet.dk. [5.186.115.188]) by smtp.gmail.com with ESMTPSA id f23sm543444ejd.5.2020.10.13.14.04.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 13 Oct 2020 14:04:22 -0700 (PDT) Subject: Re: [PATCH 1/2] fs, close_range: add flag CLOSE_RANGE_CLOEXEC To: Christian Brauner , Giuseppe Scrivano Cc: linux-kernel@vger.kernel.org, viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, containers@lists.linux-foundation.org References: <20201013140609.2269319-1-gscrivan@redhat.com> <20201013140609.2269319-2-gscrivan@redhat.com> <20201013205427.clvqno24ctwxbuyv@wittgenstein> From: Rasmus Villemoes Message-ID: <22ff41f8-c009-84f4-849b-a807b7382253@rasmusvillemoes.dk> Date: Tue, 13 Oct 2020 23:04:21 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20201013205427.clvqno24ctwxbuyv@wittgenstein> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 13/10/2020 22.54, Christian Brauner wrote: > On Tue, Oct 13, 2020 at 04:06:08PM +0200, Giuseppe Scrivano wrote: > > Hey Guiseppe, > > Thanks for the patch! > >> When the flag CLOSE_RANGE_CLOEXEC is set, close_range doesn't >> immediately close the files but it sets the close-on-exec bit. > > Hm, please expand on the use-cases a little here so people know where > and how this is useful. Keeping the rationale for a change in the commit > log is really important. > > I think I don't have quarrels with this patch in principle but I wonder > if something like the following wouldn't be easier to follow: > > diff --git a/fs/file.c b/fs/file.c > index 21c0893f2f1d..872a4098c3be 100644 > --- a/fs/file.c > +++ b/fs/file.c > @@ -672,6 +672,32 @@ int __close_fd(struct files_struct *files, unsigned fd) > } > EXPORT_SYMBOL(__close_fd); /* for ksys_close() */ > > +static inline void __range_cloexec(struct files_struct *cur_fds, > + unsigned int fd, unsigned max_fd) > +{ > + struct fdtable *fdt; > + spin_lock(&cur_fds->file_lock); > + fdt = files_fdtable(cur_fds); > + while (fd <= max_fd) > + __set_close_on_exec(fd++, fdt); Doesn't that want to be bitmap_set(fdt->close_on_exec, fd, max_fd - fd + 1) to do word-at-a-time? I assume this would mostly be called with (3, ~0U) as arguments or something like that. Rasmus