From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751909AbcGSTHt (ORCPT ); Tue, 19 Jul 2016 15:07:49 -0400 Received: from mail-co1nam03on0112.outbound.protection.outlook.com ([104.47.40.112]:27472 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751451AbcGSTHq (ORCPT ); Tue, 19 Jul 2016 15:07:46 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <578E7A79.7080003@hpe.com> Date: Tue, 19 Jul 2016 15:07:37 -0400 From: Waiman Long User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130109 Thunderbird/10.0.12 MIME-Version: 1.0 To: Al Viro CC: Jan Kara , Jeff Layton , "J. Bruce Fields" , Tejun Heo , Christoph Lameter , , , Ingo Molnar , Peter Zijlstra , Andi Kleen , Dave Chinner , Boqun Feng , Scott J Norton , Douglas Hatch Subject: Re: [PATCH v3 4/4] vfs: Use dlock list for superblock's inode list References: <1468604383-40362-1-git-send-email-Waiman.Long@hpe.com> <1468604383-40362-5-git-send-email-Waiman.Long@hpe.com> <20160719052342.GF2356@ZenIV.linux.org.uk> In-Reply-To: <20160719052342.GF2356@ZenIV.linux.org.uk> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.31] X-ClientProxiedBy: SN1PR15CA0006.namprd15.prod.outlook.com (10.163.200.16) To AT5PR84MB0308.NAMPRD84.PROD.OUTLOOK.COM (10.162.138.30) X-MS-Office365-Filtering-Correlation-Id: bf4757e3-0946-4fbd-8665-08d3b007f6d7 X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0308;2:cMEHmteRgRAsZTyV2CpeS5dwkB4FLNaQCyMs1I6oUL7SxzqcuZkfKPifXH/dzFzvLBGOxjLRgnZryZFkAuyWIfBAvtcb6xdz5q2Y8sK1j4ONTsl8exP25ypdtkFmE/9tH7nMyiv5sgMZPrCAk4B+4cZoOt4vWpz7BkNwcdwmbOpZrDduyLRUJz51saHXSUUr;3:Z+DlKm83AWfWPGxKkms6rED1fTGcmmP755OOC8snXw6Zir73kg2MyRJ7WRMeEgI+9wNbr+Ns8eBWi8zzsOp12ZTcR7NKIx23qzcpebY4+OM9A//pYFO4zY3IrHmI2qBt;25:qD9txoPcHWSoEp1wrhXTaKiC045VPQHQ94QvtI5rXjYZjqimO8h3ZS0gDB+AXXcdjDOdgggkmS7c2O3+rZm++ErqU0X1XgRWhWeJUsPWhKeDRM8ehewEtqTsPMv6X3qWdVad5BQv/nFYlhkIZm5hfgVkjeW6b7aAPTmBDG3YZi1e9dAT0dz/V26Lo63gsdAgX3fwRJBQ1QXNra5Ky4xzCbuxkXIjRLHGwU7p1gdRTi1V/5S4H0GbFs8hKa90AOAOcD8S3G8sLv4w8wammjk+WhDpbnp89f+WxY4h1M7Hy6HkNWVOdys7/mg82zIBgXvPk+Y4TBCUOPzyRwAaUq6DwMh7Qce942IJQSpcOH1DprLDl/UhDSWAYwGrHY4eD6B90fWFtvLYUffBZx7UcYA//qZRHEV8U/BfD4VrxSPGvw0=;31:EmC5qWR+CfMThfgRUYLgMAGxYaWJvb2BW7MwfCfuBRMc9Bt0n8btQZrQVXFaIZMTY+hY6y7RFzxvK79pSZFRG6NyG70nAEvWkBjFLBwxk88iYgl/Nl57Yyi7scDA70zmv9fxWf5Dst20qx6PChUHoofkw+QogmbNpB32gjPZHj9cFk5hx/Eo90EzJ6zmqY3HQh1fhXWCkIZvtgR5gDAmxQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0308; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0308;20:vQck05+RtmzZxHKyyaxpNhjRqdQ0HK9dBKU9c9L4yxymcTFVFBuDoKllbGV0OvEgH0Fc6vAI2JTupxmUs+L/H1tyHGd25KmKsjJPMXRJY6IchHTHbdM0NMBczhUFQntWLGNdLAIbe+tqnveI+xr6NYgI+zKw3vKHQELcXKP88P47bUTsZI1BmvcPDetuF4GttYYmGln6eLNCxlSF27yX1o9c38Yv6tFL2sVRGsFDKdwtWTtIqiLQcwkDpenk84P7PGXDHmmtVOmgvJlbLUc5EEBbJMDQxRyFgX4wyn3ekkwUtRTdDwxtU1IPWkVojwjA4EHcPGgTzO8tG8NAVmnpg4QOLRjrapHFgWyQ2wX6MtSvYXcGHruGB2rtB8bPUpQ/wGmdH9iiP1NYEJ/JKsW+2ft0M2qJuuUKWK9gFQgHygojeLiJ7iAYS81B/VzHT5CpTSZdEebFyGbwIGWyoxB2ofAhk8jcQamYjIl6p3mq/17pWMDevIc7fAK2wE+uzlPo;4:VGP52fK6Xa746yNW0We/VF/38Fh8w0yUdlbrdkKdB0a17dJHTa/ry/zIOjVI7e/dToc87ro3tjgA2I2DEivY+VOMZd6W81vP+TDsmIvG2HgvCy0GWziJTaFNQi0AlckNgQqAonETj67T5jEJQooMQgd+G+JQGr/cCh+B54BscYs+pxCSiSzEnSBbBPn83qrSMTJ8PsKIRD6zm0pqtVkBNri6cBiB7En+kcPgRsyIBnwr/9LTlxG/swAbtvn4jWYb4MG5BB/VFZsxM3xYOW+eca5WUlCQVDa7tctq92E+IZdHL5Jts2ZJSikqyI+zqOGnAG8F0vdhQFJZTO1tvR2hwdDkmrFzrqZX0VVEXEC0sm2OwLzS/+ymURpsSynC2hKF4bVd4/PnjVpE7PqtOMtRAA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026);SRVR:AT5PR84MB0308;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0308; X-Forefront-PRVS: 000800954F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(189002)(377454003)(199003)(24454002)(51914003)(8676002)(7846002)(68736007)(36756003)(4326007)(86362001)(2906002)(7736002)(77096005)(83506001)(65816999)(87266999)(19580395003)(50986999)(80316001)(42186005)(305945005)(33656002)(76176999)(54356999)(6116002)(3846002)(65806001)(66066001)(110136002)(47776003)(59896002)(189998001)(117156001)(4001350100001)(97736004)(106356001)(65956001)(105586002)(586003)(92566002)(64126003)(81166006)(230700001)(23756003)(101416001)(2950100001)(50466002)(81156014);DIR:OUT;SFP:1102;SCL:1;SRVR:AT5PR84MB0308;H:[192.168.142.172];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;AT5PR84MB0308;23:e6EiMaBAddCRewpbJ6ZODcwdRTGVpYxYIgaDumR?= =?iso-8859-1?Q?vtcqrARB2e653K2cm+MZPSGtzHVWbT9EMGkgZruBtiegD3Izht9YrmmNmN?= =?iso-8859-1?Q?k7782CQVUGUqzVUxVYPPltTEPyAASNWEQ0e2B3yl0FhGA9bTIYaRLStGHI?= =?iso-8859-1?Q?SDYUD/gfOTBPEaXBPa6cOE1df8rIwSSovxZImPV3XxK5HnX+1T1FJcvEvh?= =?iso-8859-1?Q?nIw8hpOMHjj7v0xHTzK62D66mSEH38QpXz4MeoNEbtvn+1Cgbjy9JU+2X0?= =?iso-8859-1?Q?oAd3abHZLitsZ11FSIqHihR2Z7UKF29Glb9qeA68lx8daVIQZBeR2uoHcz?= =?iso-8859-1?Q?fJh6BWfF8kOGSuExfIgpXnV93jORHoR8N/q1wrYmN7dsqd2/0kRAaJ7PGs?= =?iso-8859-1?Q?LQjTQPvPDVLIWxFXHlV+f4vN1+PjP7dw0HoAVB2rBalZTgHdRU5sIiVk02?= =?iso-8859-1?Q?HNZnyySC84obExTt3oQr765mqjXHjqBXrMS6JGzTh84AbOV+0salsYr8Xh?= =?iso-8859-1?Q?Vw5UILR8Y6vjgPFpHxKPZU64SINT8WIIn3N3W2jyRrI5YdVf1oZR86wnXj?= =?iso-8859-1?Q?XGsb946WiaBQo0tSpLRjv0SbkcBLVTlkBVuWoTatJFZiAYgw86vq4nqgJF?= =?iso-8859-1?Q?LvEv2E/RNh1Vt1XIgTqheCpivRFB5DX7SjsWyh8s6qhhoTgBFC/8rjZLiJ?= =?iso-8859-1?Q?QUFJ3MFRrz/4XDZCEjcW64ri6NAKC9vImb0TX+cGoGLp6A6piA8sTZOLQR?= =?iso-8859-1?Q?u9WMtKmifXJmjTNRFIzBFUAFsY9Ql96vOLjbI6hZ8Oum13b4qBEZL7aJWY?= =?iso-8859-1?Q?rYItJwyR60Y4SmTcRNIyPvcqdgIIWeqGximU1KhlfDbDwoAnmOfuYlbSwQ?= =?iso-8859-1?Q?iFsndyOj2H4EvyORCJdiTazvIXvyVBApTlHp8SEpFJ6lcIdg4OvGs5QZy5?= =?iso-8859-1?Q?q1hUJO1ipaXApWOk/BvSfaFysqgP7WlnksuqoIwRoOwUlcKn9ns/xiXPIO?= =?iso-8859-1?Q?G/onQIrZKnJsWqx/5iik3meRlhFYzz1htJ3ouM1yX/bBswsEkInY7uI5Le?= =?iso-8859-1?Q?j9FqZORAs7ugOYHYJdY2u6IfoyM05NB2LcJ6Uu2JqlGUvocH1BsdknCI2y?= =?iso-8859-1?Q?KJbIH07OFIJXc36ztOqlp6Cl660nye7Aokw1M2PA8bMp7nvdb2PYoQbXCU?= =?iso-8859-1?Q?ypnGAblK4iBKuzQvedFNym2Wtk0PgvjoHJoYIEBGvEXqUbscMfpFMONos/?= =?iso-8859-1?Q?EHHtnqbWoZ5Z+Mbobu6H94RqdLiKLp+uKHJEFE7tRF7wginF6tAWE226wD?= =?iso-8859-1?Q?VHNeh+8BD+lgLdHWiymUN7J+vnxq+8c3ZMMrmgHYouH8Vt/PDgPTeo9CEQ?= =?iso-8859-1?Q?26gl/bww=3D?= X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0308;6:F09THBJsCR0Q6Kpi3uNoWL9KfkuUAyld7uo7AEmNrBZeA/jamhj2bIhPkN9GYz25MUL71RBNOle/zDOQH4U77a82D5mPcBl7Ta4gvpu12yQ8/ZhFvlRU4PUJ6QERRt4/w0MiVzoms43xG+xyTBNK0BKOqmgkESPD7pocHMX4KM8aHLIp4OpD/jofMN6PnE65xFVdSGjfh1tAYDlNOx4KE0DahyqfGgE+qUQ6f2uDhSnpc3lFs4Nc24ak6ZXg1Y4whentq8/rAAUl3HbMkUpvuA2z4fC6jfR/fI9E1ui33/nnx0A2kOD1RSydSo383ipj+6TyBCWZV0dPp5kGdY5N1w==;5:KOXY24oFqmGjob4yIy1txGNuFNyWq0+B+RKcQa7xcnXTmqwXa1Ts+qHu8uTqT/cTgXm9t9H9Zf/+ao2scpaNJtG5CDUvaAz753GYCNzJS1vgfP8drROf+hYlIl7Bkyw5GXyyP6oIDWTD2kPpid5agg==;24:1i8r7mo52ZMsMyKaHWNHsMA9/PRc7ETI2Xyqme4muzCbcvsCMar/ZgS9YsovaNporbCAghVGUH47iGDdhiVuhSvJETmOAM4nv72uWur6MnU=;7:MRSTnvelFFWRVHAXK5qGHT44OMWMg2tVkk/oFp202B7/pvZUl/X0NXa26kvPnSFk9ZpSK0bndD5JYmUzHeJCakAOtqSv0g2XLTZILRBV8VdeiLgNeDWr4DSTmcTiZmt2i6HgJdFmvIIxYksklvy9rYNkJnMA2oEPny/8LawYKavj7sco2ShnqjJSShSo+UwkJQRiMB9ep9XYrmUevEuhRPiLR6vtFqIXljwgXxbDVTNcoEbwkJymVK0KJHZuclAg SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jul 2016 19:07:42.7369 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AT5PR84MB0308 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/19/2016 01:23 AM, Al Viro wrote: > On Fri, Jul 15, 2016 at 01:39:43PM -0400, Waiman Long wrote: >> void iterate_bdevs(void (*func)(struct block_device *, void *), void *arg) >> { >> struct inode *inode, *old_inode = NULL; >> + DEFINE_DLOCK_LIST_ITER(iter); >> >> - spin_lock(&blockdev_superblock->s_inode_list_lock); >> - list_for_each_entry(inode,&blockdev_superblock->s_inodes, i_sb_list) { >> - struct address_space *mapping = inode->i_mapping; >> + while (dlock_list_next(&blockdev_superblock->s_inodes,&iter)) { >> + struct address_space *mapping; >> >> + inode = list_entry(iter.curr, struct inode, i_sb_list); >> + mapping = inode->i_mapping; > TBH, I would very much prefer something like > DEFINE_DLOCK_LIST_ITER(iter,&blockdev_superblock->s_inodes); > > dlist_for_each_entry(inode,&iter, i_sb_list) { > mapping = inode->i_mapping; > Sure. I will make the necessary changes to make it happen. Thanks for the suggestion. >> - spin_unlock(&blockdev_superblock->s_inode_list_lock); >> + spin_unlock(iter.lock); > ... and this might be worth dlist_{un,re}lock(&iter); Good point. Will change the code accordingly. Cheers, Longman