From patchwork Sat Oct 15 09:56:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 682514 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3sx0Hc6ZX0z9s2G for ; Sat, 15 Oct 2016 20:57:00 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b=ISrdQy66; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id :mime-version:content-type; q=dns; s=default; b=j+VijtJeZVlAC68M IHa+B+hNdLfDv1xnY1Ytr/c6H0iZsOPmlv5e65cNgkoWl34Qrb5zBHrxCqOX5Rig 4qYMTF5tn5dWA8JBCxeKCy1Q83VoccXO1FlPyRjiRfSczoXLFMtpqBKjRErRUxv4 YsBq3eVc4FScs0b8YCYJR2ptxRE= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id :mime-version:content-type; s=default; bh=RTEunlVCJ0mbFb9swHwaSr +ofMM=; b=ISrdQy661+5JB/R8lS+DA24w1QB/F94yR/vk8ffyC+ipvSYKOHnJV4 wAU7sEmCR18BewZwwvBsNT6sg2XSL30M6o6axlgBbXDyWixQCYVWX+jXn5gU3fwZ 9UDA6WkQNyDzheQF2YlO72XXc1YM5MQBthJ1VNehsYDc7oInnovuc= Received: (qmail 15345 invoked by alias); 15 Oct 2016 09:56:50 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 15326 invoked by uid 89); 15 Oct 2016 09:56:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.2 required=5.0 tests=AWL, BAYES_20, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=Drop, HX-HELO:sk:NAM03-D, sis, isis X-HELO: NAM03-DM3-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; From: Yury Norov To: CC: Yury Norov , James Hogan , Arnd Bergmann Subject: [PATCH] Linux: consolidate rename() Date: Sat, 15 Oct 2016 12:56:19 +0300 Message-ID: <1476525379-2949-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-ClientProxiedBy: AMSPR04CA0030.eurprd04.prod.outlook.com (10.242.87.148) To BN4PR07MB2244.namprd07.prod.outlook.com (10.164.63.150) X-MS-Office365-Filtering-Correlation-Id: d220fc69-df7f-40d2-e32a-08d3f4e1896c X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2244; 2:7FwEJeIKRiOxcR1u8XZYl0x+ewHsNTB0k+ga04c5GHPDlbG/RUmlv9uxnE86y29WkZDhQrpwZJxN14p1+J7bOLm0TEDC9uOICj2Z9/FRWrzGh5F1Y8xKPAFPNYPZqZA+1RRQ1OhhxjXEYmzCzr1RC8VgnsQ0zEi9jj43Vo9lmpTiF06VXiRJqXIpz0PRNVj5ZlUnhm7eeInfm9Eb03/hpw==; 3:lgAi62ZXXVOY4DE6WG7InNfT2bl8NbppuRivbc9qHQYkElve5A7Nc8VfOKKZtQgmzZ0Ix0YzOLPzbcGTXECD450+kFfEn2BvSXzoqPIi/3mi0jDmAVeevikOy8olybvuDfzA3t0giQCcONkbwALE8g==; 25:o6+hQjtaflq8Vnz9y5tYL+WjAC8o+s67Oox6PA3CZBsDBrDXGs1xC3jxhQ7mE1FctklkMnJXNO4O9xpiSeN3h3kc2z6TV8F2vOg4fQspHTFxj+orVN7eom1FrXq9OUJq4I5kj4hh+WFxcsgZ3lJoERMSymjjyv/vtnqcMSc/+5wBz/+SRkd8Vm56Yz+ljhk8U5lFHKd13MoM6SFtvsJmflCk96dAeEUHMyK0DkyQ24aBKwt8qtbyhAbQqmA1vDjOTfEmC0hOZXes3YfxFszEQLWtM1BSEo6G4e2//6zcrUh4BrwxrelMu2e4WCZpY3BHcgP4OXzBdRi5SC7IPeIXXQy3bXdKyjHiZx90lRh7xZAGRDH2zp/A2w4WYxuxhJ4CI/3R0eM/sBqDntrIpaMu+YmrIiWLgUbT8+CWDDChtpKAKdv5mJJ8WRwJStKL34Lx X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN4PR07MB2244; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2244; 31:3qV8HzQbdar0hUfnX45OSPl7gkcQHIgol5NAwVpMzaNmOCIR7n3tniw3bImpskrzvmXm4NutNd1lGAHrQdnik4G4D1LyKo56Cv8XtIJ3rUBDOAhtHUOCAVxKYqItyY+ef6JYxPbRq+KHDHDp8g0vGZarKPgxgvEGIanxOdIxTJDAeDXz6A6J9E3VAzmT5Lkf0cOlg4VzG8XMSqwJS9VhyKKAz9/CYT6uG51NglVIeE1FFkobPfqjfmLBYTeYB7N0; 20:jRWDAcxiscGA60bkCocMmdWRb9RjIsoPUU0FqjoTzZxoCS91Yt0/ttc+aunR/JhLJTUVYQ67puKLzWFUmgn29b0glvVyq+kTWmphjoCy0JYSYoQxMG+RU25LYvt7wt/TRf1fBXxYopVCqjCpnU28u3r4yYWiu+Yix9WFoquWqOCAaOG8Vl4jQ1O1eo4vazCTaiANpP79OvJ3YQFHYfAnqURqrl8ATrI+c/sa8IbyU/SFluUgVSWRl2UFK6VbBrUsJkUmfA1ZzH1L8h81FzGltTfHWkhCUSpoRxoV7R83J0Wey1cZj1QS0xFmoSrtBqEe7Oj7GbaBenzEHKP+s0J0JFGNFyN2l/bYFXc9Q2GqMCPTNXe9np3dJDn1gcxTOC1UUnOyYrwte+TaVciVj6aXgC5MsM+wNocoxAsMlMlZ+uVLl1XNogjKnX3CgyB+UaY66PQrq/aKlssKi+Q8BWOIlHNFMEqvnVUCWURFXev4XfB8HapHDFQf2LD9NC5+OMl7hGApLZosQojtxruOuI4o2j2UwsuNMvYFtqo9aRDOcsJefMu1ipZivF1fLLOnXC8/dQ3YT7JWS1jtwA9GwK+y/0T0fkxhdNtioujaDpedgvM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(22074186197030); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001); SRVR:BN4PR07MB2244; BCL:0; PCL:0; RULEID:; SRVR:BN4PR07MB2244; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2244; 4:SFrgfq6BdOO6fbnZlRoODshmd81PsHNBSOTIHa5cLDWHMUiL0ZjpOhBKkgXMPUe2F3Rjk3k3HTntMtMODyjjmI4isU4vbcmHUkefFJdeLdVOgJDiw9+Y2MgefPaSRXe0Ljcd5xVVSqQ9SJ0JcyUfvS/AXu7tsZxIYUL4SdFzN7GbGsLUUYrTUk++UvNCVZh+qFJhw8XPtX48Bgl29CZO6391loGFYo4jlmEXec+NCkfuM2sThz/XJWznzWPvORfK1+hWdyB+MFYC1FxUBg8pvdGXn1tguVnyr6WskU6H1cCu9HaAfOV/ARCOrSmNggPzPAO+Zu+ZZj+9gu3TJhT05MRC77RWVI2w/0CEBOpMX7tV+QckKRmb4Esvk1xHytx2hbyBcWYW/gqPK2CkQO5GpRKrwdsRRAr934wBTtF8LtqlIvFW4t1szGPNAEr6UDgM3lOZOQZA+hbGsj8O+5CdNeEIB2uOMTPzlXq3zlkPhcU= X-Forefront-PRVS: 00963989E5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(189002)(199003)(106356001)(36756003)(110136003)(42186005)(76506005)(7846002)(105586002)(5660300001)(229853001)(305945005)(2351001)(92566002)(6916009)(7736002)(77096005)(15975445007)(2906002)(6666003)(4326007)(48376002)(50466002)(575784001)(8676002)(19580405001)(66066001)(33646002)(586003)(189998001)(50226002)(101416001)(97736004)(19580395003)(81156014)(6116002)(81166006)(68736007)(47776003)(5003940100001)(50986999)(3846002)(2004002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN4PR07MB2244; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN4PR07MB2244; 23:UvEkhCAT6s90z9Tgia8UNwCx6MNDdfRh12lLzy14I?= =?us-ascii?Q?JieHp37FhK3TzQDTw9qTKBaqsSDOMURVH5o5jGHdwGwiNuY8vM8tJzosoAjX?= =?us-ascii?Q?m1RLz4B3UlnZ3hKOWhWMFej2gNJsmvPvH5UCVDL+B6kwm+JTisgo0+T+1+dn?= =?us-ascii?Q?qoLy/h7+mzd1ub6QmpXp9eH0hCCfDdOHNKUnerbTELtOD11cX5leXbkaUl7z?= =?us-ascii?Q?5ZB4dJuhrhs5dhZ3xEjcQF8dsDchDdyrb/TEu3fDCWnbiHYc1j+okZJybXp9?= =?us-ascii?Q?W+C6499ePd/BQjR1LjqYO8Cp3G/9/exs6NSET0yJGdG3rWYFj4F6wxsfAMbG?= =?us-ascii?Q?pdJ/Tofvq3Sam1eDfXyMWNqRE3R/GV+1YMox+LMlC4zWom+JCTBlRCXbhXJO?= =?us-ascii?Q?Cq3t1StqyKpo5463n7zHx113yLq56J8pHxHZ1p5lITqnzZCqaH55mKyPATbO?= =?us-ascii?Q?uUPpbiME0zXqL0nsDNILmJKAUr/nXvSehci4UCLQs8Ya1JWiNgW1KDn5qvXC?= =?us-ascii?Q?G2OJJHSnj+pO1UN2e1swEfGs+rXm5iSxegaLpwtETRNnB5E2NKsOyDV5B7v2?= =?us-ascii?Q?HTCS7QcN14tRiZkZMJQM/0/xtxWU8g8dnrsZ9+M73VBEmwyBSH1Ozt+pHh1p?= =?us-ascii?Q?Q+rya3IA1CwaDs56e08gPgJ/SHWITG+8pDrghlnh4FYOZkWw4sX9IwgfU6yk?= =?us-ascii?Q?KW7f8rJBIGEZUUvYoU5CdaXWEcduart1B3NIPpVAg5G1+H9m194RtQj58hRO?= =?us-ascii?Q?n0KmJdHo6ZNDCmrb3GYRVcQXZgOapYjWqe3suBDOBqyDXzBFpZZcCBDbbXjR?= =?us-ascii?Q?UBdqHcbK0F3JC8TPsdYrC2CSm3ZSD0CGjSNAlFLm9ZhXy0oNrskbowwlAekL?= =?us-ascii?Q?E9X6ynnOrit6UjBek9QX6VqlzPAHfSexSX38Et6sYbPhvX5eVixE/pwLaxTm?= =?us-ascii?Q?qA/Gnahp1Ota28tmyVI1UiPKslsGPT0dd9zs7SfkLuGm9PmhRmxPiTc3kwgc?= =?us-ascii?Q?hsk6NTnhh0AOthg8mHaJhS/+ulyxv2OIeTxkHhegZRn5S5FgWHoSuDTcS0Be?= =?us-ascii?Q?W99dm6e6YH4eF7MOMCHRM7YvTgZ8q8oamP0neuSzJB6+L9pEl90LarridQ7s?= =?us-ascii?Q?/GZEjdoW8FoDpx8HqOaenY8LdgZ2vmOjlltQKlZrcvQzz+P638yx7FauAWcD?= =?us-ascii?Q?oo1tXsEHoosEcs=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2244; 6:vUNd+pMkbdnzPzXK4btblWokA3idd4uSa5DlAN7IuX5+FHVQKQOf9xqmhJrxR/jvVikTuaI9af/Zd/s2aM4cqpafNTrhK0qXmLzs3bF9TdoqhJ5IYTnYHX97IeMbrgb74NAPuj3Y2IJ7berVMFsMt7WPYgoVjnJO5ZQgYeDtOVqA2SIQl4doYu8DLLi242RvNXca3/dTRE6nmnThlIb5qi61IfLf+U/5HxyiQcjNcjPUbiI7ywT6OoWcaLSNTARb6/+lG2aajh/hyff3I+RteYTpoBtw7IyC7BO8NiFAcNfk/VCT7HDUD/t0+FFvS4tw; 5:9gTeU+LFlGqAeGk6ijBHj6chUAAMxLVKcJIHcK2Xl2Upex1pOd/MkEya7jnnfT8/f+MFzxh1LoDLqXC86mSMzEch+pHlo9Gqh7IasMEMG90PGZxlPV3TRCFi+vicmAMHdREHBohsoV8loCSkw71MtQ==; 24:IqbKNgndcFZA+qmLpbQzYYC/NEw0B5zm6DO6Bqv5kwGnOyYPgP2zZU4uHyDpBRhEXt4N2u3WocZ1VdrKzUzFNUlGMd7XVhFq1c9pXGTRp0A=; 7:PAJbRIj7VznZi7goA/CIme3/0fkTUZYL9YzDkxLxpi+M/4wX90BzOd2/wcw5FODSWOIB2MaWJlGyaBBtpNJnB3tOo5NJXqaGWLOgRzrFvV8SZ3TTtbcCsDYvwLeUaEFbAkycUfBU0glmpuBHjwkLT7LKz+VcjJ+uNeFaNeh3xOXjdNr994nALtGMzlYqcbujGmrUPmKK8x+rzEBkjT2O5lNDp3reNH2gzQNjKfpDn7YQVnATMNR1AXIZjBCuJod4MEC7CDxrXJ8ZEKhXlxmSQncGApTR9afS7hTbUTPVlnf18XP7Nsq8Y7GstNM0cznwLw7s+dy3aSKREFtmrXMUONT9ml3BWQUARpC/Vipv6ZE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2016 09:56:29.6753 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR07MB2244 renameat syscall was deprecated in kernel in patch b0da6d44 (asm-generic: Drop renameat syscall from default list). But glibc is still refers it in rename(). This patch consolidates linux/ and linux/generic/ implementations of rename(), and makes it call sys_renameat2() if kernel exposes it. Tested on arm64 lp64 and ilp32. * sysdeps/unix/sysv/linux/generic/rename.c: Remove * sysdeps/unix/sysv/linux/rename.c: New file. * sysdeps/unix/sysv/linux/syscalls.list: Drop renameat. Signed-off-by: Yury Norov --- sysdeps/unix/sysv/linux/generic/rename.c | 29 --------------------------- sysdeps/unix/sysv/linux/rename.c | 34 ++++++++++++++++++++++++++++++++ sysdeps/unix/sysv/linux/syscalls.list | 1 - 3 files changed, 34 insertions(+), 30 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/generic/rename.c create mode 100644 sysdeps/unix/sysv/linux/rename.c diff --git a/sysdeps/unix/sysv/linux/generic/rename.c b/sysdeps/unix/sysv/linux/generic/rename.c deleted file mode 100644 index 174c147..0000000 --- a/sysdeps/unix/sysv/linux/generic/rename.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Chris Metcalf , 2011. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - . */ - -#include -#include -#include -#include - -/* Rename the file OLD to NEW. */ -int -rename (const char *old, const char *new) -{ - return INLINE_SYSCALL (renameat, 4, AT_FDCWD, old, AT_FDCWD, new); -} diff --git a/sysdeps/unix/sysv/linux/rename.c b/sysdeps/unix/sysv/linux/rename.c new file mode 100644 index 0000000..62a58ae --- /dev/null +++ b/sysdeps/unix/sysv/linux/rename.c @@ -0,0 +1,34 @@ +/* rename() syscall + Copyright (C) 2016 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Chris Metcalf , 2011. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + . */ + +#include +#include +#include +#include + +/* Rename the file OLD to NEW. */ +int +rename (const char *old, const char *new) +{ +#ifdef __NR_renameat2 + return INLINE_SYSCALL (renameat2, 5, AT_FDCWD, old, AT_FDCWD, new, 0); +#else + return INLINE_SYSCALL (renameat, 4, AT_FDCWD, old, AT_FDCWD, new); +#endif +} diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 7ae2541..a2c1060 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -89,7 +89,6 @@ fchownat - fchownat i:isiii fchownat linkat - linkat i:isisi linkat mkdirat - mkdirat i:isi mkdirat readlinkat - readlinkat i:issi readlinkat -renameat - renameat i:isis renameat symlinkat - symlinkat i:sis symlinkat unlinkat - unlinkat i:isi unlinkat