From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6768DE77199 for ; Wed, 8 Jan 2025 18:40:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AD3ED6B007B; Wed, 8 Jan 2025 13:40:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A83186B0083; Wed, 8 Jan 2025 13:40:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 94AF16B0085; Wed, 8 Jan 2025 13:40:31 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 747D26B007B for ; Wed, 8 Jan 2025 13:40:31 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 10782A138A for ; Wed, 8 Jan 2025 18:40:31 +0000 (UTC) X-FDA: 82985150262.16.1C7D382 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by imf14.hostedemail.com (Postfix) with ESMTP id 18B2110001F for ; Wed, 8 Jan 2025 18:40:28 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="PBJ6t/eO"; spf=pass (imf14.hostedemail.com: domain of isaacmanjarres@google.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=isaacmanjarres@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736361629; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=MtXSgCoPknXUV18KTNBhK6DwFGfPYSbawI86wtxvN+U=; b=bNn64UzQVkswDnLqbatKgPyORKZRylTFgxHP8mPdyGIpqO0ULAqcrD5oyBLlUwDJUudBeB VY89j+wnhGugwPeE3RXqSA3vWRKPmqNjnmZpOMR9dPaXdz0io3yHE3q76NQ2KbNhK6oz4K Gyn64WkGUGNu1xEwXaOwnmlD/dKpXys= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736361629; a=rsa-sha256; cv=none; b=0PMFAdi+APz+kaFfaGWanrxZfSMeum+ibBCvjMIHdM0U8a27Oo1+jr7CYaj8QYjo3nN+gB s9XMfbp9btnqcN/x+glGQUBb3E7IH+pH2MGcePBLrpSvXkzX0CqHLWkiNU4+l/GR8k7CIf 3eZV1YxOBymTzTXrwobMCD36v0S54kg= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="PBJ6t/eO"; spf=pass (imf14.hostedemail.com: domain of isaacmanjarres@google.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=isaacmanjarres@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-219f6ca9a81so8495ad.1 for ; Wed, 08 Jan 2025 10:40:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1736361628; x=1736966428; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=MtXSgCoPknXUV18KTNBhK6DwFGfPYSbawI86wtxvN+U=; b=PBJ6t/eOjYUok7x4ZNWnQ1QaIQHGos1zbqUh4yFfwKk3+sH2+ClBKCVbHhFWd1Rhzg aS2FySeZ9Flb9YFoniWc12SyCFv3UwlAxTnukDpiB5zojh2R+H3vGq3ZFsLQxYU5HX0r kHrJo/HVdAS7wqNqPLzxiZL6BTpXJqQrBWpkLnmicV8pqt5FkUHFPBDkmf8/UzIod79x eLNxtvVbq6p/AOZNzj/X2m9uvcZeJ72ZaNgs11QLqQPklyyEOzUs4NIhwRa61eDQ7Wuo a6CKS4sXm/c/wNhtrtSFBLZjYJnwhIiiIlzQ1jaBS3oqUORBCigJZZhz7ws5FzNOqfL7 op0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736361628; x=1736966428; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MtXSgCoPknXUV18KTNBhK6DwFGfPYSbawI86wtxvN+U=; b=JgmendQ4PQtYqR59fP8Cfzd56bxxUFBy/9sjxtI8SBH9JT6Mu1IEz8ASm5JNSdvKpr 32hhmyEo+7bpLnS4yKSgX4AIXiaMv6pTrazc/qE51Qawq4+WAUAPBD1IKbxc84DB8R3e xATkeUX/pRhq8w7KrSAAIlA1jujMU65iJ34D7eqM7xRTVV04PaKQvzBntql/9YwOuiRn cU6I/3c9i5Iy1z6WYMgeBxhDVMxSGqB/wEq3LmgykIsR8BvaxSOsn65ARcWZ7p+aPmjt 6EMAEMu6YwRpaDSyI27tg6jjMmPsM95j8n2bBX4lRoD097XJviskaPuhCpceXSJRDKwV FSJw== X-Forwarded-Encrypted: i=1; AJvYcCV5kcWZCslurG5W8Sx9xGt9D4JLIImN+FEPk8q4MLv0y+JrbHjj0VWpbmABkw1gYt6d3FLS8e0AjA==@kvack.org X-Gm-Message-State: AOJu0YypNN8bmDPJNtGB15J/CyaEflz8Ya6MsTisu+2AxUkR6XkehmL7 761sKEwhcuoy+KjR9zQZGE+KkcZ4/r4FsVc5W8GGgQxMZeddWAroWrzV6ZW9sw== X-Gm-Gg: ASbGncs8/+vUo49aEATGOZ81N+rciVxmnrMSk+xn8fHL/sIRD7QZCme1Q0rN8VBTeL/ iToVl9YY8Lh7lzJAIEHwWIsQjOPXdxfQyLyxktpv9ihDbE4thtgoiqx+CzfqfArpzbZQqsmx1dX NeCyQhIux8+sW/rFzTSRa5Q+4/nqpGxohnjiRbeaX2S35c/J4LCiM71MbD9bft8zX6kxBs6mavZ JEMhfekmrAnyM18gyTwjUDzrE9t8zWnIVyDMhpif90CKwG/mVf9rEDQ X-Google-Smtp-Source: AGHT+IGyT4yIZnpuUdJ+unZ/TVEwIeNLMGKjSePXMeLbBRfO0FLc2xjsqLeQ+b2RLyKS/+8GNGEOXQ== X-Received: by 2002:a17:902:d484:b0:215:772c:fa82 with SMTP id d9443c01a7336-21a853bb5f6mr2546675ad.3.1736361627492; Wed, 08 Jan 2025 10:40:27 -0800 (PST) Received: from google.com ([2620:15c:2d:3:e514:4b22:2740:5ec1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-219dc9d9481sm329138945ad.135.2025.01.08.10.40.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jan 2025 10:40:26 -0800 (PST) Date: Wed, 8 Jan 2025 10:40:22 -0800 From: Isaac Manjarres To: Alice Ryhl Cc: lorenzo.stoakes@oracle.com, Andrew Morton , kaleshsingh@google.com, jstultz@google.com, surenb@google.com, kernel-team@android.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/2] mm/memfd: Refactor and cleanup the logic in memfd_create() Message-ID: References: <20250107184804.4074147-1-isaacmanjarres@google.com> <20250107184804.4074147-2-isaacmanjarres@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 18B2110001F X-Stat-Signature: tjcyjhx97mm5kptjtwmjeqy3twhdanxc X-Rspam-User: X-HE-Tag: 1736361628-33352 X-HE-Meta: U2FsdGVkX1+0WJMIXjIgZDYavjzKpGnsfzXklAsvcKHwWgrJNCz4mfS32LWRHV8Br5vYahCzC1QHG1D2qwRqdVFYiScq30vx+UtuNkCRiB2p2IWlSZqHDd1DALfPBy7WNPGAbwf6f44a2SY6CmwWRKJUyrx9t9mEXX0SkpcUtUOFspFSFCxeZvjXRlWvJ/zfeTWdNdDJ/869qMCA3WP3tsXBYs+HPo0jJss4Zcy4seCnT74gJBnGXc4a9f7PIpr0at2FNMmtPEwnTVOtPpDIT3jhZwlsjMR1TNS4FAdN/O+rEgelnIyZmOU8Vs8KSMCO0Mt+dmBamnTwkUU+GdXcfVGitDORl41RF1vIOKxTdOUdNGRcAuNHGeawFIOCdyuZ7/1SgOq0JWe2UZcOcdkgmaC+V6XYkPgUbXQzmslg6zkpBFnwI4VGwNO6+6HDYg797Vd4mfPBCw2+PzHlgAZLjqQ2rA2jDirjvl7SxLPb+BvIvkmYTDwq+/WO2iyfpoO8/imcNfUXrl1z+qtUC9sAo/53JXFogAIESUbbiTIYyyX7lp6hy0YBNxw7X4Lg0yYWbAHH1amiq4axgl3iAK7IuX7ZU1b4NhcFhHujYOXoAR4d59SW2hHD4te1QUYoLZpgnotbcQOvfmxc3dsPp0Yk/wwlkuKfLhEFUG2e4woWdCkfo5l5CSFQwPMc2Zf2NkxLS4+xlqfXmQSACY8GibswHMn0gi5C1vAahrAzFpr+mOanwDTZTu8on6X3vZieFapCQ8+oE5p576011Z2mD8m8EP7meiCc7vgQyU3o9F9xRwV2v8ORVP/DaruVbp7RzmSPfv3ctEB0Ib1NkF1PCxZwDcPqGLHeqRu6wSVNV2Fv0E/Og1nU6GcPsuzlusTMMCHJY5sGqTRxTxXxvoL5cdG96M0cqhSoQuM+f2/U+dWdp8dgxHvSKB5GnrEEX832LGpJI7oZMuW/KjTxeTqlXmo g2Pok/pG K98IW3pdosguclf++uLHspznqTeEHIFaoBYjx2R+rI/LSvgpGt6RmcfQgu/yintE91QRdprTl4gpcpDr9VVP52N2rjiVXhNgXqcf0inH6PS43h17H4zJZFLaUmCWa45ylrVlzqFJBEZ/R/mZxb1fBA+32Gb/lxViwUmjw/me0fy9wbOkmtB3oeG/xmVwfH0GpZSBaUuh9eb+t7VbJ59NpPW9Q+/dDHlQjWK1RX+WPv54oCPK0pIj1UCAaIas8DWXgLoT5xeFrIFPpmY0zF7L97CxdKuI8cQBwg9hnfenZsgj1ykO2k93sTeekcfUb5zvRvwjeRl+nLjrkZkp6ttd7WWOfc/WwokaaINpM4I7BRX8BdN7rFMgYjzcCKUTJXEdPCC536BWspBhwC6Jb5ht4T4qZjT1eMxGT3UzU9UZHExMa3LE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.132863, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, Jan 08, 2025 at 02:31:58PM +0100, Alice Ryhl wrote: > On Tue, Jan 7, 2025 at 7:48 PM Isaac J. Manjarres > wrote: > > +SYSCALL_DEFINE2(memfd_create, > > + const char __user *, uname, > > + unsigned int, flags) > > +{ > > + struct file *file; > > + int fd; > > + char *name; > > + > > + name = memfd_create_name(uname); > > + if (IS_ERR(name)) > > + return PTR_ERR(name); > > + > > + file = memfd_file_create(name, flags); > > + /* name is not needed beyond this point. */ > > kfree(name); > > - return error; > > + if (IS_ERR(file)) > > + return PTR_ERR(file); > > + > > + fd = get_unused_fd_flags((flags & MFD_CLOEXEC) ? O_CLOEXEC : 0); > > + if (fd >= 0) > > + fd_install(fd, file); > > + else > > + fput(file); > > You changed the order so that get_unused_fd_flags() happens after > creating the file, so the error path now does fput(file) instead of > put_unused_fd(fd). Is there a reason for this? I would generally > assume that calling get_unused_fd_flags() first is better. Thanks for taking a look at this, Alice! I changed the order so that the code had a more logical structure where we create objects and use them right away, as opposed to getting an fd, then creating the file to associate with that file descriptor, and then actually associating it. I also structured the code to get rid of the gotos in this function to make it easier to follow. It also made sense to me to fold the flags validation into memfd_file_create() since that's where the flags are used the most anyway, and it also makes sense to validate the flags first, so reordering the file creation and fd creation allowed me to do that. I'm open to restoring the order back to how it was though. Is there a reason for why get_unused_fd_flags() first is better? Thanks, Isaac