Received: by 2002:a05:7412:b10a:b0:f3:1519:9f41 with SMTP id az10csp721977rdb; Thu, 30 Nov 2023 17:17:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IH1G5s+rXGamvlDS3FOkaQ3sJ+LF3LHB1GACEBq29rABExOFup7jJso4fwpwYd/1JJj90wb X-Received: by 2002:a05:6a20:d396:b0:189:a6b3:ef7b with SMTP id iq22-20020a056a20d39600b00189a6b3ef7bmr31618972pzb.20.1701393448209; Thu, 30 Nov 2023 17:17:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701393448; cv=none; d=google.com; s=arc-20160816; b=Hd6y1ANWVsi/6gMtHywHipYxOtZQd6rH5dthrCzrnfwi15BC1GxjQy6XKyu1hxr8XA MhxHp/nFZJ2EGLpGEkn4KzDEg2GeK+Fyg/mvbSJb055ZnqIBFbL2764q54lxQbbQHbRW +iT+kg2OSu8jS/wLg9dhlZOYmYAPt2GDd2D5FKeTW24BiqFuPOqkEbMzmsPbpkAN2DAs PZaiY1AdpVTidJ7ne9jO/S1WbAy7VUvqUO8jsXSu4WoVxvl/h15ZnjDKMil24zF5utLQ y5dd/n/WUHEWGarjbGYmu2d+jzmHpA8njfuIZfB9Z8To/LJ1kkpRhHYdF4knOB0HRSb8 yvTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=eB5eDO+vECqQRDjfKoIQyjkESeeuGdTFuGWP5Rh7dm0=; fh=7FgQ4aFuwHgYAcaVRc5O6AB6B5jwjspM9U/qoroaCpU=; b=UUQ23SyBR3SVlbIhbB3jM5At/7qBAuR8CEU2NZZiwkz46Gop7+2vL1QDhCgfBMc0Ei Xg1zUyr0jqlp6O2pTsR05TXXnP6ayvNirPNj9PtkAVci45uofvMaaWL9iZ4tJDBE7N0/ Pu+bwi5nE+hdZSFGhgtg09cu5WmIaIB0Op+yxzQDjBJKvcN57CuEKyvKjEFd4feTvLeP KoeysmxCSUBiYJbj9SIcEk7AInJ+643RN02h5Gi8BG3e9NadZZG7Oq5ggfDXeNNe8VHg q9UatfwzSCx+s+FmlZUNlRC3J6ruPXdJhbKk+HsTsCXfkTn5TTwIwZAsS9lEybSXj6BC yIWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mit.edu header.s=outgoing header.b=IEyq4LA4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mit.edu Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id d1-20020a17090ab30100b002859ad34f7bsi2324462pjr.92.2023.11.30.17.17.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Nov 2023 17:17:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@mit.edu header.s=outgoing header.b=IEyq4LA4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mit.edu Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 05F2680AEFD6; Thu, 30 Nov 2023 17:17:27 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229578AbjLABRL (ORCPT + 99 others); Thu, 30 Nov 2023 20:17:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229448AbjLABRK (ORCPT ); Thu, 30 Nov 2023 20:17:10 -0500 Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A255010D1 for ; Thu, 30 Nov 2023 17:17:16 -0800 (PST) Received: from cwcc.thunk.org (pool-173-48-111-98.bstnma.fios.verizon.net [173.48.111.98]) (authenticated bits=0) (User authenticated as tytso@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 3B11GGe6007037 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 30 Nov 2023 20:16:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=outgoing; t=1701393382; bh=eB5eDO+vECqQRDjfKoIQyjkESeeuGdTFuGWP5Rh7dm0=; h=Date:From:Subject:Message-ID:MIME-Version:Content-Type; b=IEyq4LA47yO+iAFcZJ9YNLbfpgNQR9d58STuOP8rIoCCvZHJeLZ1+rRr5pJLhqVFM kwfvp8PgYglVC2B504CLxRUn2dZTo0FZT16qLRo+w4s5ROEaLf7ObNyine3YC50GS+ p+KtCUWNtZnRaaqTqwQr71wHpTmw8DgqOXlxECfm2p4Pv5fAuQi2vHJ08gAf843Llf uGHMR4v7H23FB3H9YU4fSk+/bs7u3Jh+y5j8WKy0TsV+2CDWScvrmlxBnm2uBDy2qc 2bAtF5OxVyrb44uT1Qdc++tp9G+A2aG8rIvp7affUd/QtG96/DBTKJOWBawn2sp3hW 3lvntBLAbZbGw== Received: by cwcc.thunk.org (Postfix, from userid 15806) id F3DDF15C027C; Thu, 30 Nov 2023 20:16:15 -0500 (EST) Date: Thu, 30 Nov 2023 20:16:15 -0500 From: "Theodore Ts'o" To: Benno Lossin Cc: Greg Kroah-Hartman , Alice Ryhl , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , =?iso-8859-1?Q?Bj=F6rn?= Roy Baron , Andreas Hindborg , Peter Zijlstra , Alexander Viro , Christian Brauner , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Dan Williams , Kees Cook , Matthew Wilcox , Thomas Gleixner , Daniel Xu , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH 1/7] rust: file: add Rust abstraction for `struct file` Message-ID: <20231201011615.GB509422@mit.edu> References: <20231129-alice-file-v1-0-f81afe8c7261@google.com> <20231129-alice-file-v1-1-f81afe8c7261@google.com> <2023113041-bring-vagrancy-a417@gregkh> <2gTL0hxPpSCcVa7uvDLOLcjqd_sgtacZ_6XWaEANBH9Gnz72M1JDmjcWNO9Z7UbIeWNoNqx8y-lb3MAq75pEXL6EQEIED0XLxuHvqaQ9K-g=@proton.me> <20231130155846.GA534667@mit.edu> <25TYokAJ6urAw9GygDDgCcp2mDZT42AF6l8v_u5y-0XZONnHa9kr4Tz_zh30URNuaT-8Q0JnTXgZqeAiinxPEZqzS8StBKyjizZ9e5mysS8=@proton.me> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <25TYokAJ6urAw9GygDDgCcp2mDZT42AF6l8v_u5y-0XZONnHa9kr4Tz_zh30URNuaT-8Q0JnTXgZqeAiinxPEZqzS8StBKyjizZ9e5mysS8=@proton.me> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Thu, 30 Nov 2023 17:17:27 -0800 (PST) On Thu, Nov 30, 2023 at 04:12:14PM +0000, Benno Lossin wrote: > > I don't know about Rust namespacing, but in other languages, how you > > have to especify namespaces tend to be ***far*** more verbose than > > just adding an O_ prefix. > > In this case we already have the `flags` namespace, so I thought about > just dropping the `O_` prefix altogether. Note that in C code, the flags are known to be an integer, and there are times when we assume that it's possible to take the bitfield, and then either (a) or'ing in bitfields from some other "namespace", because it's known that the open flags only use a certain number of the low bits of the integer, or even that O_RDONLY, O_WRONLY, and O_RDWR are 0, 1, and 2, repsectively, and so you can do something like ((flags & 0x03) + 1) such that 1 means "read access", 2 means "write access", and 3 (1|2) is read and write. This may make a programmer used to a type-strict language feel a little dirty, but again, this is a convention going back deckades, back when a PDP-11 had only 32k of words in its address space.... Cheers, - Ted