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 46B27C04E69 for ; Wed, 5 Jul 2023 23:19:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A542D8D0002; Wed, 5 Jul 2023 19:19:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A03B88D0001; Wed, 5 Jul 2023 19:19:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8A4C08D0002; Wed, 5 Jul 2023 19:19:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7AA4E8D0001 for ; Wed, 5 Jul 2023 19:19:30 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 360E480226 for ; Wed, 5 Jul 2023 23:19:29 +0000 (UTC) X-FDA: 80979126858.25.94B70EC Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf17.hostedemail.com (Postfix) with ESMTP id 64E0E40002 for ; Wed, 5 Jul 2023 23:19:27 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=b2X6YIL6; spf=pass (imf17.hostedemail.com: domain of dlemoal@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dlemoal@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688599167; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=slKcgiQ5FEofTrznkGRK93lJ2moJwj/7nqB+sNLe2dk=; b=4SdAFVoECD0Cz/LUmNMZ28qdMhwPcBh+wsKEIoW5JlORrzVgxPMLivSPN6LPbeE3y3JLv4 /sbfwIwJ/tc0/F/jIAEQCKUbAr8njedUlLbDmK3S6TwUkm8t0y9ccfGHWq+7pd4O0RaiOl VW46SY2X2LR6/j+RvtoqAs1g0bm3OI8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688599167; a=rsa-sha256; cv=none; b=MpcJsm3TRY3rmbEGQRGzoeXxENsL3kv1B744M+sf/S/7nOtTBGEG2+Vpnc2lNir2sM7RuD I9GOwQMhieALkm8/JX8Fd1x77EX6/eV6GZE5WCy0ljsLWwywkAQZSK1tpWM8gwDrYKlYj7 JIvP5eO3EQwiaDs6KtgAd9TJZa6ldkY= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=b2X6YIL6; spf=pass (imf17.hostedemail.com: domain of dlemoal@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dlemoal@kernel.org; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 3679261820; Wed, 5 Jul 2023 23:19:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D28EAC433C7; Wed, 5 Jul 2023 23:19:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1688599164; bh=KCTloaubNslRR/SoL8UluRoG/IUPJVjSzADYJrfAJHU=; h=Date:Subject:To:References:From:In-Reply-To:From; b=b2X6YIL6Vy56XALQtKdhzhDP4FaYYu72cv/nQy9J7p20qPoaFddY4NYMECi8UiElG KXeBp5mYG0Tr3Z/9dS3G7DFV3U+NrS3kS1Bj4OLdG2oLV7lkerc27aKsKkqjab0O9K FATIdox5v3Da+YKWUBF3YXN3ElwAHoGXAASphNzizKagSfTJcPF38/AQplhEub1AKR LkLgfDZcW1uv2KNe1PZmf257zQ+kLCx4ktYMXGFo0Ya/ipY5JnCfPPINteVMs1bXpn 61eVfSZI95423vo52gH8KvQcVqXg5RZ32hLmWLwnt3Gj7afC9O4NqxdEhtaz5kVF+Y 8axRcbIlbfAZA== Message-ID: <3b403ef1-22e6-0220-6c9c-435e3444b4d3@kernel.org> Date: Thu, 6 Jul 2023 08:19:00 +0900 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v2 08/92] fs: new helper: simple_rename_timestamp Content-Language: en-US To: Jeff Layton , jk@ozlabs.org, arnd@arndb.de, mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu, hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, gregkh@linuxfoundation.org, arve@android.com, tkjos@android.com, maco@android.com, joel@joelfernandes.org, brauner@kernel.org, cmllamas@google.com, surenb@google.com, dennis.dalessandro@cornelisnetworks.com, jgg@ziepe.ca, leon@kernel.org, bwarrum@linux.ibm.com, rituagar@linux.ibm.com, ericvh@kernel.org, lucho@ionkov.net, asmadeus@codewreck.org, linux_oss@crudebyte.com, dsterba@suse.com, dhowells@redhat.com, marc.dionne@auristor.com, viro@zeniv.linux.org.uk, raven@themaw.net, luisbg@kernel.org, salah.triki@gmail.com, aivazian.tigran@gmail.com, ebiederm@xmission.com, keescook@chromium.org, clm@fb.com, josef@toxicpanda.com, xiubli@redhat.com, idryomov@gmail.com, jaharkes@cs.cmu.edu, coda@cs.cmu.edu, jlbec@evilplan.org, hch@lst.de, nico@fluxnic.net, rafael@kernel.org, code@tyhicks.com, ardb@kernel.org, xiang@kernel.org, chao@kernel.org, huyue2@coolpad.com, jefflexu@linux.alibaba.com, linkinjeon@kernel.org, sj1557.seo@samsung.com, jack@suse.com, tytso@mit.edu, adilger.kernel@dilger.ca, jaegeuk@kernel.org, hirofumi@mail.parknet.co.jp, miklos@szeredi.hu, rpeterso@redhat.com, agruenba@redhat.com, richard@nod.at, anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net, mikulas@artax.karlin.mff.cuni.cz, mike.kravetz@oracle.com, muchun.song@linux.dev, dwmw2@infradead.org, shaggy@kernel.org, tj@kernel.org, trond.myklebust@hammerspace.com, anna@kernel.org, chuck.lever@oracle.com, neilb@suse.de, kolga@netapp.com, Dai.Ngo@oracle.com, tom@talpey.com, konishi.ryusuke@gmail.com, anton@tuxera.com, almaz.alexandrovich@paragon-software.com, mark@fasheh.com, joseph.qi@linux.alibaba.com, me@bobcopeland.com, hubcap@omnibond.com, martin@omnibond.com, amir73il@gmail.com, mcgrof@kernel.org, yzaikin@google.com, tony.luck@intel.com, gpiccoli@igalia.com, al@alarsen.net, sfrench@samba.org, pc@manguebit.com, lsahlber@redhat.com, sprasad@microsoft.com, senozhatsky@chromium.org, phillip@squashfs.org.uk, rostedt@goodmis.org, mhiramat@kernel.org, dushistov@mail.ru, hdegoede@redhat.com, djwong@kernel.org, naohiro.aota@wdc.com, jth@kernel.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@linux.dev, song@kernel.org, yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org, sdf@google.com, haoluo@google.com, jolsa@kernel.org, hughd@google.com, akpm@linux-foundation.org, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, john.johansen@canonical.com, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, stephen.smalley.work@gmail.com, eparis@parisplace.org, jgross@suse.com, stern@rowland.harvard.edu, lrh2000@pku.edu.cn, sebastian.reichel@collabora.com, wsa+renesas@sang-engineering.com, quic_ugoswami@quicinc.com, quic_linyyuan@quicinc.com, john@keeping.me.uk, error27@gmail.com, quic_uaggarwa@quicinc.com, hayama@lineo.co.jp, jomajm@gmail.com, axboe@kernel.dk, dhavale@google.com, dchinner@redhat.com, hannes@cmpxchg.org, zhangpeng362@huawei.com, slava@dubeyko.com, gargaditya08@live.com, penguin-kernel@I-love.SAKURA.ne.jp, yifeliu@cs.stonybrook.edu, madkar@cs.stonybrook.edu, ezk@cs.stonybrook.edu, yuzhe@nfschina.com, willy@infradead.org, okanatov@gmail.com, jeffxu@chromium.org, linux@treblig.org, mirimmad17@gmail.com, yijiangshan@kylinos.cn, yang.yang29@zte.com.cn, xu.xin16@zte.com.cn, chengzhihao1@huawei.com, shr@devkernel.io, Liam.Howlett@Oracle.com, adobriyan@gmail.com, chi.minghao@zte.com.cn, roberto.sassu@huawei.com, linuszeng@tencent.com, bvanassche@acm.org, zohar@linux.ibm.com, yi.zhang@huawei.com, trix@redhat.com, fmdefrancesco@gmail.com, ebiggers@google.com, princekumarmaurya06@gmail.com, chenzhongjin@huawei.com, riel@surriel.com, shaozhengchao@huawei.com, jingyuwang_vip@163.com, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, linux-rdma@vger.kernel.org, linux-usb@vger.kernel.org, v9fs@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org, autofs@vger.kernel.org, linux-mm@kvack.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, codalist@coda.cs.cmu.edu, ecryptfs@vger.kernel.org, linux-efi@vger.kernel.org, linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, cluster-devel@redhat.com, linux-um@lists.infradead.org, linux-mtd@lists.infradead.org, jfs-discussion@lists.sourceforge.net, linux-nfs@vger.kernel.org, linux-nilfs@vger.kernel.org, linux-ntfs-dev@lists.sourceforge.net, ntfs3@lists.linux.dev, ocfs2-devel@lists.linux.dev, linux-karma-devel@lists.sourceforge.net, devel@lists.orangefs.org, linux-unionfs@vger.kernel.org, linux-hardening@vger.kernel.org, reiserfs-devel@vger.kernel.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-trace-kernel@vger.kernel.org, linux-xfs@vger.kernel.org, bpf@vger.kernel.org, netdev@vger.kernel.org, apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org, selinux@vger.kernel.org References: <20230705185812.579118-1-jlayton@kernel.org> <20230705185812.579118-3-jlayton@kernel.org> From: Damien Le Moal Organization: Western Digital Research In-Reply-To: <20230705185812.579118-3-jlayton@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 64E0E40002 X-Rspam-User: X-Stat-Signature: n74rueztcufo79tim9r1xerkt8k3pkif X-Rspamd-Server: rspam03 X-HE-Tag: 1688599167-293349 X-HE-Meta: U2FsdGVkX1/Lidg4ZmugeGJ0N/oin4cv9tNFM1QaB7FOmKA0zuIPYlvLSrHQtFqoC/UI+2RNGDAlUttWLCnC1ZGMdFDz9MUhLcbruzYMIyxgt0wBcsLhtf6FAKLw2J+8jVu2emJ89XMHozQWw+5EeLkr4hTv9K3Oob/wVqt2ckcHS32mnASAS8ulqr0JnKYyIfXH/BkjbVKrtFPvtnWMru2L9Pxj5nRrrm22kGhTegf0AxHcQHgMD1K/d6HyPVt1GLVugAC+3lvKaUqawcHL2UzcM7r2RoU/JDij75hWSfjhsXYyWneeYOt0BY141Jn0rC28k+PySMH8f9hURDl/3ZdrLZAx4tSewYD5Yf5Vrs5wRYTPQCoUV9gEtZRJ4SdCot/mpZ6lHMMeSvUlwQeRO9GVOOgLE5++PNr40ddO2CpW4MEqL6OGFWe4oRWIFKR4NMZPYwKgzjoiVI9+UiHhN9N8p5TgNyJmVH5liqx0MimZys0bO77kq+WsVuUykoyoQMxHotdx92y4DhePT5SUn+wl3QECi1nGBswmy1w0ML7/aUHplAgGvnv51pTWMOMS9Ur/4+GtU+xgABRMMbiyr0YHvutPP/S1tMp5JuzXH2AnyC2a/hXkTpKkk1t6XJ5cUU9jbT82FtffAHs9QMBln9SWj7ZIrHcVAiYIOgQglDxQg8BxicWCm6N+jnqwj9LSsvj7fpPdVFm2pCg/qPqKbcGGfXGxavo0Y8iCfBHxl75U9zAe0riKvG0xmCI0nXOEUySZ1YB4RiMyXw2O+PBCB2rLUpxzhf5AKOmE1lCtV68wWrRDCA2bR5QfPEXnQjNSBI2DpWDcnPFaRLRBxWEoRgy9wZcktx8wI17ww8feS1mpbTxjAMxitaRAk2CzWqB9cY2lBAmNuX5Nj3IqIHMQZ4tCwrWEIPg3pXn8ha42FgHUSqvmRtaaaQaWUnSu7FtnNwWPbDLZ7ym+t3ylb6a CnRDk0S1 ccDGFApfLDezhFw1CG5mQ/4BD9A8wdJH7vrgZyBY5nPwprHsLdzzKMaFHZpbaG1gL75NViA7i+9MLbHZbMBPAVOUajXjJFS1l/cMxn0/eCQD/uON1ad2d4a20MD3LgTHSkvbhqUh5pUf2HUA9ytRyBC/ZhtfXGF6IuyajYMKTWTimDwcfhxjl8RavlBOALTpgXTeE3G6Mgyr8HavNEO+9LBoeFw8f0ZheOtBfgRY9C9D5nz6bg03BymCgKF0b59xtnz+TTUYXc20OBRLZuf74X6vURh4NMVmBBbreXpgUZRerrGo81hi+HBXo2hBJCW9wRQepGQg+lwF5YjmySkVNl6x6E9zuwLdECVI7B09D+tO/jY+hjDuZucpkl11vXqkLf7PqYq1aMufhjsvNNuKckj7fKGM1dVBRw/XQAbpOImZA02+0CGoZoMxVt/NCbMf1HJ1FrDoj80292ESXPecPYHMOIayZ46mGWt+S21HAGdWdrLTsjfLpShgPnplFRHAOmjt0RUFnAkHrB13igzXt8dCJfB3VgT1o/+yZdxOYdr54PYyTuoTva6dBYtpeCvePDbE/kbyAcd2oKwZF45BkNzoBYqhG6RVtKRVcz9sqynE8XYACBYAqRUQJdQZ3EZ28WM6a7+TXYX5Anymba8DLsZcye8OxtePUMB4y1f5ulph4HpTIjluO/6wUZchk9qtjfYZDBcU+TWyr6uwJjImyl5DkssI1zMXivTOcCbuFr7i2NK0uBg8MPNErToDFgfSYuquq9P3OC5OoMqd2GaYq8smq3V50frNK5mBWSvqUtmu02hh3e4h5twdLEAelgNYYp7j2cjdjvFsU+/wLbXMIURwtDoegmHDkJI7fEsIcGpTODLIsYWHmCfed+kVViSEidjBU1Jf+Ey0RVmP2I6wxpxBW7xvtnMlFpB/JgtTxQol/csCiUb8CGaydnQvCVW9kWfHX7LkiSQE+Rk6P5HRpgZfho+Ji JiHunzOW qNz1fK5JNjJTh9UD29b/j2rq/vw67bAhItHYwrt6acSq6+rFqOfEBzMR/6up8jtQcdeGE5JfSihPuWxco+Q2Bq7jkApxE4TPi+0Kmn1dv7tqh2R6CvMhgMwDRJMjFBRCrxF/MJ3I25eexMO3PBEaMqs6UF6GcRuOoFThULa/KdRT6ptYDHiEQNKeIMgcrdU1Aw9gICfTPw9jHh4G1xTjcuXS1rnbcN9zBSztVV9+VVFfUz515NnhVKx7IHzDQ3LHseuZQBIxwHDNDxkn0w9qMIMw+94SslSMiJPDu7njNP4MvHSzOj/WbjqpGQilu/7vBQkDl9+/JTFaa7npShTxlQ0bQpZQcxCmzAzCNp8SGf+Yyv3nBCOb5yizp3hEMnJOIpFW/AzPg7uCZ9QlLVGJdYM9+21O4XEuyRLf4a34DaW8nSRsuTRpkReLRi8dt4MeohMv3iImDKO/3Ey210hVOVH9voKTtAaiQ11B0A2xjUPnUEu18mENeuGBoCW2xoA47VC+SGrDoaPD1Bwb9YYl04vGOCPLLcUg/Raq+JUxRdTBivnWePc12ixJC+yFpurlcR+ob1k3BoAVgKejxgy5X3TLV4Nk/C57VfZvFAjpBEMmFyY1cBZsdA5M5cJXADfXR4m+JQGmsNXhJhYPjUI6JGJ8WKdypCC09vZ7eFE2SBvwIacmKTnSUouvgjlTeaFD0dG1RTuaXyqbtIvLH07rkPB2GfKIvTGEQ0gpi6ucTxit7lloYJM4FLsQb8MsukG86BreO++WonsSppNt293ywSqHWqGmLH8Q9y3GbCf85umkRKcrGIRoukEiQgZB6H9FThGjy6/T/7427UWRb7EIYgB5qXKj7qf3XnDGtv1FW11ZLp45gon8kroJUPcaDFbaJSkLJO+y6a1mhgjOW+p/eI+NurXdW1METEpPW+6LuOG+/WWQKW6xWuY43cvN5iHq3BdXeI6Qgi2/NwWb6thx+K3yT/7Zm H9NCoS2a SpjAIDGztGj9CIiCDXApsA4XKFflNQ8Xt0EFLQ0wJx9RWUCnzcokE4ZOzoHBi9haoHeOYWbZyV0yLHkEIbw1T4URm+m1Murdn574O5RfNnpwR1N3fYzqroXkWg0BEozF2XflsoqF19dNfAmouWDm5SSXC53LukjmK5/TocUCB9OhUrczIJy2B/2f3fEsQEASkmJbgQJ4M+LASc5th0octQa2byJ+TG1ebS1dPsatSG+VP3W6e7IVYm/oWmYOvxMvNUoyO4XiiL+fBNT1VjmokXBougAZmAY+gB/VtY40LquMVtS8c3kuqZuIU907LdqwiszdhEp2vG9BMCv0IPVT6r4EYvjuKEAUNJJmi6AtmFN3Y/CoGqYURZKNYANtvVRNVal0lk0u1cMnfmw5N5Myd9n/oLuzWF5QpgkJ8xrCUm+mrCUSXXqEKMSGr5IVfo5VvpsOUimtGPRQy0BTBP5zJvOxwjhdMtRSBtBMc3Bo75g87NZlOkZv3S8g6DGrWGOdfW/DULVkvBWWGZ6sT7UVAGY/26R7gAjlnoP5R4egdIdwrC8kOuwHWPxAQg2Hb9FHNqa5xpiLlCF5k1pa0AKr1Ul30r+aJsFYXt1tV3dr/5Mm/q9T3eNIhl4Xn4klFQaO+JtCNG8HxyuQOFsnpBAmFcQdwUcn9oUQBMMR3+EfX1ZiTyZHGOorW6/18icHEG7UCF4PZvbSwSuAQv15b5x4Pb/0aipWbTrv2mYkHdwukeNWht7zBPjQ1gQabNVhdSNjjSdZcbqP4zCBX66H3vHTQBXgdQ4uG+OkWb+gA0y+qqZXqfsQlMoogpUBIMJ1SocDx0DVuwELxWcpEjv1kco1C/C7I0ipWIsLj9lxd17/gQ4Vn3zEp9fLvS2L1QcbN128U2NK/m4thY8VMB9IDXWQ/QyzpoVvJ9dU1/kvvVXxku60s7M6X+TOdw6gncsmQk4l4vCyFaP7p9m4bdFZg60pkUPpEfVAg P3dZTXXx 0Lv9kiSbAiYs8qXcJ7tgJ4lMcmqBzovMwWleg1+0q3mw9vBadi/yEmKRHWv2uLx7XZ/aYr+jYeOUNs48l3JENSvOwXydlyhY6k1/Lq6tvXaL3gEBEkzrMz1OJJmMGJ/moPO8uEQjjZ2Olsh2BF0VAV6A+SxlOJT76+kYyPN723LkG2ntnNUJWpVV4fnN/OHJMPA7dHpVq3wAUV2RjrDU5f28kRKZUEt744b2FCD/U6UoEn6dZkbYCf4D3788ly6xeSPlkb0kxX/zegsp3UK99gJcLcnPqfdpF6FzXio62E61JPFTZ8AoXoU5oHXEKQk1XdNDMjJLwn6RQ6Qi2lBTK8qmUmPfbzQ5HuTQmOps0zsAy3gr/WLiLS5wDYcsOEgWl62u5TnhzCgo1d6T8a+Aeubs2vybBSSBNBCvIcbz+RFMb9PIfIv2Nzir/+gmcVCq1UxQEB6nxjFIcpvGe3Ian2mEwPHvY1Sq6HXkADHXahEab6XgymgVnrRwr1sMAk/2AGtI/YhnxtaKAcnb9CXccz X-Bogosity: Ham, tests=bogofilter, spamicity=0.000089, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 7/6/23 03:58, Jeff Layton wrote: > A rename potentially involves updating 4 different inode timestamps. Add > a function that handles the details sanely, and convert the libfs.c > callers to use it. > > Signed-off-by: Jeff Layton > --- > fs/libfs.c | 36 +++++++++++++++++++++++++++--------- > include/linux/fs.h | 2 ++ > 2 files changed, 29 insertions(+), 9 deletions(-) > > diff --git a/fs/libfs.c b/fs/libfs.c > index a7e56baf8bbd..9ee79668c909 100644 > --- a/fs/libfs.c > +++ b/fs/libfs.c > @@ -692,6 +692,31 @@ int simple_rmdir(struct inode *dir, struct dentry *dentry) > } > EXPORT_SYMBOL(simple_rmdir); > > +/** > + * simple_rename_timestamp - update the various inode timestamps for rename > + * @old_dir: old parent directory > + * @old_dentry: dentry that is being renamed > + * @new_dir: new parent directory > + * @new_dentry: target for rename > + * > + * POSIX mandates that the old and new parent directories have their ctime and > + * mtime updated, and that inodes of @old_dentry and @new_dentry (if any), have > + * their ctime updated. > + */ > +void simple_rename_timestamp(struct inode *old_dir, struct dentry *old_dentry, > + struct inode *new_dir, struct dentry *new_dentry) > +{ > + struct inode *newino = d_inode(new_dentry); > + > + old_dir->i_mtime = inode_set_ctime_current(old_dir); > + if (new_dir != old_dir) > + new_dir->i_mtime = inode_set_ctime_current(new_dir); > + inode_set_ctime_current(d_inode(old_dentry)); > + if (newino) > + inode_set_ctime_current(newino); > +} > +EXPORT_SYMBOL_GPL(simple_rename_timestamp); > + > int simple_rename_exchange(struct inode *old_dir, struct dentry *old_dentry, > struct inode *new_dir, struct dentry *new_dentry) > { > @@ -707,11 +732,7 @@ int simple_rename_exchange(struct inode *old_dir, struct dentry *old_dentry, > inc_nlink(old_dir); > } > } > - old_dir->i_ctime = old_dir->i_mtime = > - new_dir->i_ctime = new_dir->i_mtime = > - d_inode(old_dentry)->i_ctime = > - d_inode(new_dentry)->i_ctime = current_time(old_dir); > - > + simple_rename_timestamp(old_dir, old_dentry, new_dir, new_dentry); This is somewhat changing the current behavior: before the patch, the mtime and ctime of old_dir, new_dir and the inodes associated with the dentries are always equal. But given that simple_rename_timestamp() calls inode_set_ctime_current() 4 times, the times could potentially be different. I am not sure if that is an issue, but it seems that calling inode_set_ctime_current() once, recording the "now" time it sets and using that value to set all times may be more efficient and preserve the existing behavior. > return 0; > } > EXPORT_SYMBOL_GPL(simple_rename_exchange); > @@ -720,7 +741,6 @@ int simple_rename(struct mnt_idmap *idmap, struct inode *old_dir, > struct dentry *old_dentry, struct inode *new_dir, > struct dentry *new_dentry, unsigned int flags) > { > - struct inode *inode = d_inode(old_dentry); > int they_are_dirs = d_is_dir(old_dentry); > > if (flags & ~(RENAME_NOREPLACE | RENAME_EXCHANGE)) > @@ -743,9 +763,7 @@ int simple_rename(struct mnt_idmap *idmap, struct inode *old_dir, > inc_nlink(new_dir); > } > > - old_dir->i_ctime = old_dir->i_mtime = new_dir->i_ctime = > - new_dir->i_mtime = inode->i_ctime = current_time(old_dir); > - > + simple_rename_timestamp(old_dir, old_dentry, new_dir, new_dentry); > return 0; > } > EXPORT_SYMBOL(simple_rename); > diff --git a/include/linux/fs.h b/include/linux/fs.h > index bdfbd11a5811..14e38bd900f1 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -2979,6 +2979,8 @@ extern int simple_open(struct inode *inode, struct file *file); > extern int simple_link(struct dentry *, struct inode *, struct dentry *); > extern int simple_unlink(struct inode *, struct dentry *); > extern int simple_rmdir(struct inode *, struct dentry *); > +void simple_rename_timestamp(struct inode *old_dir, struct dentry *old_dentry, > + struct inode *new_dir, struct dentry *new_dentry); > extern int simple_rename_exchange(struct inode *old_dir, struct dentry *old_dentry, > struct inode *new_dir, struct dentry *new_dentry); > extern int simple_rename(struct mnt_idmap *, struct inode *, -- Damien Le Moal Western Digital Research