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 3ADADEB64D9 for ; Thu, 6 Jul 2023 15:18:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C71F16B0071; Thu, 6 Jul 2023 11:18:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BF8AE6B0074; Thu, 6 Jul 2023 11:18:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9D5E48D0001; Thu, 6 Jul 2023 11:18:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 8DAAE6B0071 for ; Thu, 6 Jul 2023 11:18:08 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 531B7140BDA for ; Thu, 6 Jul 2023 15:18:08 +0000 (UTC) X-FDA: 80981542656.07.C7D4726 Received: from out02.mta.xmission.com (out02.mta.xmission.com [166.70.13.232]) by imf04.hostedemail.com (Postfix) with ESMTP id ABAA440116 for ; Thu, 6 Jul 2023 15:17:05 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=xmission.com; spf=pass (imf04.hostedemail.com: domain of ebiederm@xmission.com designates 166.70.13.232 as permitted sender) smtp.mailfrom=ebiederm@xmission.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688656626; 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: in-reply-to:in-reply-to:references:references; bh=4J+ECJODsJ+Ikh1a1mcZDQQ79aE9IceamX2qMZ26MRU=; b=xnnHQzLJ42krtxxvffwYRK/yv0L8HJFo8kLENCYeA9O84UJp0AEQsSiqIhJqM5zkEdTpVL Y6NXi1TRRBfYy+/JKNCVykIK3sFOD6s8QoqxdF900zq9rBw/8/bdw8N/5NaJlRYciHLv03 q0WaZzq/wMWkU0TDh+ccKhVhonVTKhI= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=xmission.com; spf=pass (imf04.hostedemail.com: domain of ebiederm@xmission.com designates 166.70.13.232 as permitted sender) smtp.mailfrom=ebiederm@xmission.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688656626; a=rsa-sha256; cv=none; b=ZBvdDIhksn5Yqdgq8Uz/rhJI1/gNFYxl0OSRW5HXET1V9fUFWbWUBhbNzv2uNxrfFKi9Cw BqDBdqERRV6SyDZ21DovJWWm6rH9v3Jrhy2ET64flJdJsfBuMnjW45yqELk7kNXogwf/yJ wjHFvMyDlh3EHVqIU8kwUoPVZpa6EeA= Received: from in01.mta.xmission.com ([166.70.13.51]:40568) by out02.mta.xmission.com with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1qHQio-00FMgf-7e; Thu, 06 Jul 2023 09:16:42 -0600 Received: from ip68-110-29-46.om.om.cox.net ([68.110.29.46]:55228 helo=email.froward.int.ebiederm.org.xmission.com) by in01.mta.xmission.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1qHQim-00AsXt-Fk; Thu, 06 Jul 2023 09:16:41 -0600 From: "Eric W. Biederman" To: Jeff Layton Cc: 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, 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, dlemoal@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> Date: Thu, 06 Jul 2023 10:16:19 -0500 In-Reply-To: (Jeff Layton's message of "Wed, 05 Jul 2023 17:57:46 -0400") Message-ID: <87ilaxgjek.fsf@email.froward.int.ebiederm.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-XM-SPF: eid=1qHQim-00AsXt-Fk;;;mid=<87ilaxgjek.fsf@email.froward.int.ebiederm.org>;;;hst=in01.mta.xmission.com;;;ip=68.110.29.46;;;frm=ebiederm@xmission.com;;;spf=pass X-XM-AID: U2FsdGVkX19hfnilZzLMqG1RlF+DuMto1+nqSkCNAbk= X-SA-Exim-Connect-IP: 68.110.29.46 X-SA-Exim-Mail-From: ebiederm@xmission.com Subject: Re: [PATCH v2 00/89] fs: new accessors for inode->i_ctime X-SA-Exim-Version: 4.2.1 (built Sat, 08 Feb 2020 21:53:50 +0000) X-SA-Exim-Scanned: Yes (on in01.mta.xmission.com) X-Rspamd-Queue-Id: ABAA440116 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: h41x8x78xtz7a746er5bdeux5xn1b9au X-HE-Tag: 1688656625-940570 X-HE-Meta: U2FsdGVkX1+cmd2PKdwXcofZrCP8kQ232p/mhH/bhMMz0n4FiT23MPHdwWbn0Uap68zXWhPEo9/IOX6KMPOmeqoeQFGxjgs1iMKiiEx/dyiXQDNZOlznnhxTojk1gHuymz/4dhYfWH4rqXzzAy0uH2tZN4AMXYqq2NDLanbl62v4amafjTdQksxf/+AgCLymjXVNYEMzSeFFd07GvhduhiqSAQK/kevsPpgiGZZ2lzJX1cdVkLSkVgdOx6zW5LUw0hmizlvcC9BcCrI7ywL8IzDGPgUZZQvcN4SFev5NZGpGu/io4vkWtKH5cFJRiuCcgfrbOOYPgYOTBlyScQrS3gh5wQxl7490Wr8ok9n4hf8HX+m/Lrl0beJ2RUIenPyzOgfXEVcc1HXvN9jIoxI5boJVD/hIb/iuLVjJpkLUhEGqMrOzUOC8v+H+6JmcN9tSjd/HEmzrReAHpSvNZnlNTuXCcwjddjpxbP2JF0AoWZU/8PFJB38ZyKEtxC9cQUaGaKNi/2WsZY6HTHvIjp/40lkCt7NtAiMk2tSN6UKdCLHQJ0fGfLSc5U9oifmQU5y29FuQ9B7zNQGkgz1EHvW49zVZvcFfnJviG6JbI2Cz9cQzjDxKRk79unWFOHuAuCBeVSDZUDpztwkEKLSEZNfHpnHPHxNmZb28k36ZQFkoL78TYNU9lt/14jHNDDLguMhz8f97hT5Smqxlefw2WyCnXgqHr6IXAvdqPeyV1a99DMxQP5qKZnhR3pDBG4csY3aMjGRxcYgbF6Q3JzxYz7J+sqbuxKErSIVhds6Qd/Lw1/oO5MUNULVsz/eJHtHbkor6y5prp8WCIduiUsoAUjKGugeB0NeYcwGMmFi+FZj51+As0u/fI/RfwN0wxaezbc1x9UXc/3RMcqMQeWq7w/pDFnVGcEc9LclGhbyIbn81HB8LyExo3cwYecmL5vjIslfwb3y+UwSBtlffsf6b4mT NA/ymL8/ C5uiKwI6gQ6WNlRyViRkoyahURVl+G9e9XaDsLMRF80vSPAs4x3HqjBLU+/7siNzT5PFMul8GFiDTCooR1jTFUmd+LAJ9+s3bylJreQm6+a3pj70zn0KKJx9ca4izg/oCnYH2IBShavZRg6u4jIgKmQQXp/K7OxN7TVhL9swx4kav+0QNniLjPu4piGGDEMRi7k2JcAAAz8EiHdNk53T1wXllWIlYkHi68q5SsbObKJXZNxmT8+n2cDits7kIik7assZoKcVZfIk9R7qG7luTpc9KiD3NfX5UopFhzgZWsNHIvIT/yD1NPqQi7YGU0lVeIA6w9hmEur9ziFQ3xWgmMihAOLklbixE4ODT6msXqYla/KXAH6oPibYSngjli2oT7FEHKaYarA8lZmfsRjg+7rthgk3TACcTy9aD+fC2f7kRYb6RfJDOxqxQVSiEvf8/+mSOWK6RIQD6hXpr5ko0tJp8GNuXJJFZMkKMPgdL/ap3EOLQ3nabYJjC5GfAdOQuutA3xLA7kCbJ/O/lVuXJaxy8Qq8pjtmHU5XlRIfJ1isIUn9fXJiPlBBSHue5nXtbjk5vn8GeUGjWsnzs3bmgIeu1tvcxpaYq8odVWSG0hUBQUe5fPGLbpLDbU2BPvaqX2yu2UDDC6hnds6tSdl29OZmFamn6NJPcjzjMEYVCmgPpSNCbVgyJb1ELdtFj/uidDzLr/oGeKHTeNJ5WURD5gDCFraexCprOEp286VuqdQDRm3gcExUEXj5D20U5P8mhRWqMB0Fl668EIYRfNcb4RJOY7w2pIgrMl7ihYy7yAo4FD0LccR0CXkJoIo6yHY5g1U2LgXxY9oXvJwDnX/ObsLK0NnFTHm9QD+0w79zD0Y7Wq7UzRBbhmnCs9KbHCbgc0QKjdvnSiKjloozm4kjDfxk6EJz3dcDGMzpooypayn7gDlq3rPCarZ0KvuNV1EGDxXW0fjBZt8KulaC+akYrhXF/BAKy aC0TOfa3 DsDnGAxnm5jwRulbs3x6evkZTQ7lVqL7mG5A21eADYlZV/qlrr7V+tt+wZ0PoLtKffZXX8BA1dD5oshfdQbwAIcwgUGCxiT2ifV1N7wFraVpfh3a+Fq5Z+TXcrkZf7r9zFzhEkO5wXgI7XrKGPUKjlD3Gc+fxc6dIIdAg1EPukTGdbYg9Mahue+fyaSSmZmQLTm6jYXgId7WZAsAvCGqd9az5ogbh0w3Nqfz3uBNxTcQDoK4XPs/Qq9Nlhdhc5w2AQx7n7L4IdRrVn44rIDDWQOZCVm3i0HlJncBY15LfCyoEx4Buc/Mt3Pt7PqzLGvrDacrWxDDvx7zdeVE+cfYN9wQJZoEF5Ged0CLTGKEw9j1RtpkSJrEbJ9IA3r5Ix6IcdPrdArWALttsmU2gdKqhffLembs3N9LdOxgY1eJ3yeLrqhq//USjB5kNcE5XIbujef7pkb+BlO6U4G5XXsT4+XT+xn0EG1qbDboJPFXLjX98DwaR/z4wLF9kIWR6xuf0a0c+s94LU4v6pa/1fLYxU+QiljX7as4RVNA0PNDU0WYkFjM7qohU3Q79SxsCkcN+ZfwfYcPPgaxU8MNPKR0ITZKFNPxRonH6PP4jNYGi6Ol4dRc3ZULwIaDD3cqeZ26gMbbbIJUIgYqQSt9meTLv95YEdPE/aPtJbZWNWMtOa9MYdIeK3HcFFM9Pa+hekTReVkSWfKNvblC2laEzpvcjZt6ZhfaggyUUSB0bFSDDS8SU6xgUCxjAsGl8X6oInRCVQCPmAXkIu2OzS/snEGy7obraMOlVnJme7XHDqEgDBDJbeChWVtKSTGqFFnE3IuZ+s0r8qrZv5jaT+Dh2qErldmwJkTd9e1tfvKxXbISuMlDQ0gsbcXNNUZmomeCDk+NzpXgbG9Ze/idlATtFmRpf0a5mrsVbMhOvGF5y1URWm3YSiunJ40Xkiz1eg9dHHf5W1Pw7SqtzVKujvdcmpPlRpQO4SihB vFsY7sG+ 9lPHrObHvUQnvOkATI4Jl/GKIVtQAw6LX2S4Xd8dl4U9/Xpi6U6a2qMZf7w7mHw93o35EyphLR7Qn4Q9+rLEWkzZjaQ3tp5TmuqtE9l/t8O8nrl5TUqtBOsHhcI9cZLFx6jEpLZwnbNfw7Zl66JyZexiHswo2REvHrFQSuaIvW3YmqQkiIkwhP2nlLiHk7lsIgWhnZGB3wyGXZfvj+a2cvkT1ZYmpAPJ5CuxVw+SrsYpPK5BlMUQI3D2p4f8/KcoYQl0uR4AIgAA1dUf7DoW2PmWqIAChkHBbK+mW4nDrHMM8oKj4JKtntKX0zPQMcIp8omx892mGAmwoBXwdvWBs5yl0CFCoyJN6J3/gKxANIxbQ9I4rqi0siMD0vkpLn3Do6877EaPocF9+d7xFbU+VdYJLYW70n+ZXGQ1UaECjD94bY0giTDYCXwDm3Arva3vPpJbghjraYx+qFJhPvgNFs9Nq9HmSKKpvKe1wfQkgUKJpRamt/YUdpslfOhTB63uOUtweQ5838CVf5D2xbpbqOgtMLhqhQf6pnFk76+vstxWEgK1oO1qPa39QpfbmhaB/Wi8ecTPrplvoyip2x37V8CM2S2vIgaqWPO1cZfYMntRYBzA0K4MkzpMdmWr2nY22HK264LIn+GksTV6Y4RC/Pd7Xsk/71CcY4y5EnUlwQthADuzRshxK7/2HgRTACmpO30WqIwuqbYFL51xgjYw7GcrSkI5S7AW4QOi6HNz/U3KhXkgWWD+KDAwdIHPtONupZAhm6+l6nXdiiZBypOMlF5Qy98HyyqvxGuQBikOVXD7aboi9iUz8oQyFVUQAqol52Ka/AWwKwY8M6gEOU1+80rZIEWYxtW7DIXU7mMjcRhAVkEmfnBAvP/a748MPNTy7ZXHoASAS7QmiJFeymOUVp0WArYqR3TzER6mVDQqQbCgM0PATlMGzQM93QvQqSfm3lDhuDJP6hYk8qCL1JQc9jXQ8BSSK nU1T5Tsn FyhLWh9aIMqcIid2Ba6+sZ1z5olGCp6g94RlZwqoGlAnf3xweRNNmzkULVCWlIFn7cnaDMCOtPD7u+69Aq4RpOUZkAUjMln4erwcOb6jupbnTYI1qTn3bIz5JK55lAVDgiCFTYxm2CzI9G2b6IUqPeK+H6eHtTcnp+yDGWbZW8GqsaU79ZqJn7u9J8id9a8KEaOwnFUcY9i7G4lSVj4KG/Zzhf856kSOO9DF/uUfGBKA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Jeff Layton writes: > On Wed, 2023-07-05 at 14:58 -0400, Jeff Layton wrote: >> v2: >> - prepend patches to add missing ctime updates >> - add simple_rename_timestamp helper function >> - rename ctime accessor functions as inode_get_ctime/inode_set_ctime_* >> - drop individual inode_ctime_set_{sec,nsec} helpers >> >> I've been working on a patchset to change how the inode->i_ctime is >> accessed in order to give us conditional, high-res timestamps for the >> ctime and mtime. struct timespec64 has unused bits in it that we can use >> to implement this. In order to do that however, we need to wrap all >> accesses of inode->i_ctime to ensure that bits used as flags are >> appropriately handled. >> >> The patchset starts with reposts of some missing ctime updates that I >> spotted in the tree. It then adds a new helper function for updating the >> timestamp after a successful rename, and new ctime accessor >> infrastructure. >> >> The bulk of the patchset is individual conversions of different >> subsysteme to use the new infrastructure. Finally, the patchset renames >> the i_ctime field to __i_ctime to help ensure that I didn't miss >> anything. >> >> This should apply cleanly to linux-next as of this morning. >> >> Most of this conversion was done via 5 different coccinelle scripts, run >> in succession, with a large swath of by-hand conversions to clean up the >> remainder. >> > > A couple of other things I should note: > > If you sent me an Acked-by or Reviewed-by in the previous set, then I > tried to keep it on the patch here, since the respun patches are mostly > just renaming stuff from v1. Let me know if I've missed any. > > I've also pushed the pile to my tree as this tag: > > https://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git/tag/?h=ctime.20230705 > > In case that's easier to work with. Are there any preliminary patches showing what you want your introduced accessors to turn into? It is hard to judge the sanity of the introduction of wrappers without seeing what the wrappers are ultimately going to do. Eric