From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932075AbcF2Od2 (ORCPT ); Wed, 29 Jun 2016 10:33:28 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:27651 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752417AbcF2Od0 (ORCPT ); Wed, 29 Jun 2016 10:33:26 -0400 Subject: Re: [PATCH] btrfs: Handle uninitialised inode eviction To: Nikolay Borisov , , References: <1467182801-16948-1-git-send-email-kernel@kyup.com> CC: , , From: Josef Bacik Message-ID: <107fec56-cd51-257d-771b-5aa00bd0ebb1@fb.com> Date: Wed, 29 Jun 2016 10:00:23 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: <1467182801-16948-1-git-send-email-kernel@kyup.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [2620:10d:c091:180::1:3910] X-ClientProxiedBy: BL2PR20CA0008.namprd20.prod.outlook.com (10.167.113.146) To SN2PR15MB0957.namprd15.prod.outlook.com (10.169.191.147) X-MS-Office365-Filtering-Correlation-Id: 7d48240b-cc8a-49ee-e93b-08d3a025b9ce X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB0957;2:vVyhnxVZQWWZWgocSGjlfQkLcaDqOz25k0YEr4ubyxkAoX+h1IafOeFyAP27qKOwncMmzYmcmMsV/Rq8z2GMKzskOs4v94ZxsclVD1g57TLJM+9w8NyBZsp3/Bb+IIJqflfKvgYE9J/C1lm+8KF9Z1jLzr8vKSv0WgNEqTGqZ+GerqWFLm+ST5rEB3dVjF9n;3:r23Bzykxuq+WxJqDivX7HU7eEh5kXzrZopNbAC01BZrSPbLWosqyv49bypVT9v1KVogj4If/xiSHTbFeAPA91H3DBmzXsXmNxF0Us38kZEfknNuRb5WSBekGx6ehaNil X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN2PR15MB0957; X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB0957;25:wBl+mefks2Zer3kqG4joaTYk6ewKNrUP7BXSRky/o797gy8MqC+fYaohBOlkSpitAdd2U1rENZf0Jnfmf9pRBrnhgYkHAzyL3pUrmOus/D0cdo9oGs1aRldekJoLfiqJH5mvB0O1g153U2ZlVtsEFzJvqWtXrIDFTBt1GSnOY9ap/NVZjLl3TNUw7brjWVlKZdlIJYbTKIljCp0nXmTaTuWP4hBRIBK4Qi67NZc431yTylhprhmNLMHnn14xvBd0tZvzOrP18Nco0KW5u8t3kbsavJtRzYYpoFH1mE1FUiuQD73ANuirjLnbYOHHy5guYDV3NByPj5j8/YGjqt3EduMl5aPzxzslyyYOTUtBY0/df7h0aOWkUq3jCaZQJbmfe/m850sQAl6pWLnYf7/FZVNtUj2Evx2bZIwwo3UidEMJ+HKXauWQ5XKf7XI3691ZA+XQE0YkxzzEOeWzTAZia6PVct9liNdcxUajSlcW4jVgouUJZzAUOJOZoPUPEYcEVj4eTAfXKPNu9iCJ0O0EVaLR7euI4j4GUYCkZAwv7r6bu8Crl4mmMnprvISaLXvKlhWKRHyZqQrNhsluiaAmVM5V55NNmPJ82SgNw748ZvB+a80c0r/IcsDn+QbtXe6hYJ0RHqM/1F26/HBOoPXtAU+hpUw6ohG5+mQMeuaDe1P3mdtW4P1GVlj2q13wqIlESYXUqLgNwPMhMCM1aIko3Q==;31:nooglmOMEiE7PPQJeu77LcQPT5v8135au60LgOZb6N9lVH2Cgf/B2ESOvtA4xfoG/YqbRXZ39ZHI3FI3qb28WMwQG9uZzg3CZt/pooW0693ve55QOl6r0ySvToaBPxw56DL3XUGzJunAaZd6+V845QjYR3F60tScZzHRBv0d1l5nyhnfbm+J4FEL4ZhuNV5JZOkXYI1ciBCf37M8NkszFQ== X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB0957;20:q8fFapb3cy6XBsjxhZ4gN+88LV5e7pkmoHgWkCzOZGV/YENBpDZE6yJIouuWQCH9t1B1muRR2I9EYrdOtOr06aMJZgNrO+As/z+O35fNjMJHIISOkG4URTcYVid3cHNnSf9DbNPNmNGxMhIpYWOs7d/VPpRREtFLLJHk/d56DZc=;4:jg4R3DiUrXrDcoGM6zlE4VaJKyrbnsMAYsf/cOfVHUjr+zANRQe0kV2kRZLGEOFk5TEQ7vxlzYw4DUaeCD22fcY4uV8tO02CRyHZooXW3fXywsSFzo7sUemCJB0fWuFhHdHVxyWUZIdqGMA2vznqJbBxq91CWepqpDLWoPIEoHlYpSDfJ0cu4XDH4SmI9/nwi/s1rF75yIQlXHFo9qg3KnmjCzJ+EImhcVAoAWmwAEQ2013lOnpvZL61niPeBn4kvyiMtcHPXX6CGA0s8apzDjxEdyYihGzeuDWItUW3pkvlBoHPdIHHjzUFJ57wcn5mSQEgnjnleDW3K4iMALOH/QsEWzn0k9gu9Zn55+37jEq8WvmuHfy1tC5oBeu9423/pWqd7OBxJEWUipgaBdTQBILL99kcb4NOaKcqz99aGQs= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:SN2PR15MB0957;BCL:0;PCL:0;RULEID:;SRVR:SN2PR15MB0957; X-Forefront-PRVS: 09888BC01D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6069001)(7916002)(24454002)(189002)(377454003)(199003)(33646002)(77096005)(2950100001)(64126003)(86362001)(2201001)(47776003)(54356999)(68736007)(65806001)(65956001)(189998001)(50986999)(76176999)(42186005)(23746002)(101416001)(97736004)(5001770100001)(83506001)(31686004)(4001350100001)(81156014)(81166006)(8676002)(7736002)(106356001)(105586002)(305945005)(2906002)(4326007)(19580395003)(230700001)(19580405001)(586003)(7846002)(6116002)(36756003)(31696002)(50466002)(92566002)(65826006)(3826002);DIR:OUT;SFP:1102;SCL:1;SRVR:SN2PR15MB0957;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;SN2PR15MB0957;23:ril+yib0tLwlZmAmH3bs4LOVDxDDgly3Y+Xyw?= =?Windows-1252?Q?xMOMjqFcojxrtibHIksPlvUgHP6I1o+oB5oVs9ADTKNTLBVwJxQdL7IB?= =?Windows-1252?Q?1EOyxjqeR+lbOpCu03vZlNHN6I1SDzVWoWgMvz1zxjhbk8ZMt477AZw5?= =?Windows-1252?Q?6wNC76F0WEmOFPh1qnLUt6n6NFlfRzVFwqYr3DZTqFnJQWRM8L5JOKcH?= =?Windows-1252?Q?oUi7G1/UpYJjV5mE+4nGtwt/+U6KdMFv+Fy1gg5U464H7SNwCGihdafN?= =?Windows-1252?Q?PyfIJW0baK5632ZJdhvxh3g45JXvefkkbrEQh1oh6nqd8NWsxZmDr356?= =?Windows-1252?Q?IqeQUFriP/m7KYAVwhxxx+asnSg4swN376kzRdDeH0vQuH5CxVHR6A+2?= =?Windows-1252?Q?pDaYJ42gTBkRRPyb71ZgziHLhsRcSfu+oDuyPPfKNLJqjk26ME1h9web?= =?Windows-1252?Q?/pAS+Yb8AUs0C+1q6up96LoGNtaUVLneoubzomvW6pmYg4PuWXrrPL3f?= =?Windows-1252?Q?vIVg9OgorC1nUwzjJpszRPkQRILNfpwPC8ZTK7bDVtiU102wyN1qDurV?= =?Windows-1252?Q?5qMw9op72KrkJofaWHISqp2C9YO71fclzDg6apUjlCLZHWQF9qh/ad3k?= =?Windows-1252?Q?rRBBgBfn99NgFwVtJ7xrJ1vTATLpxA2BrAiEJ4Yz6EPN0p4Gjj874azN?= =?Windows-1252?Q?2duBw1T9h/+EEY99IzV6p5fPWgz1cMaz8MBuFrKmRmQD25izL9miVSGk?= =?Windows-1252?Q?iDjqoCQXRZ46O0fFFMKVEi5tjPOp/sXgqnyJeg0zrKBguYQz6wAwNME8?= =?Windows-1252?Q?hqfq39JP7KzBC1t1py2EQV5alnvBvMxyV8Jr2kb0zZSN0RG/PokorxGy?= =?Windows-1252?Q?KlGE90y3My5crkEKmPzZDGzwjKpdAonMUbWJ4sreQLxRs4Z+L4kopHVx?= =?Windows-1252?Q?PQKm1bF16z9SvAAs08II3AXYAVUrGhFg/D3hW8JO2XHbKLoDptp0l5Kl?= =?Windows-1252?Q?Xi0VUHAE4VkQ3UNbuTqy78VCiSyPZNTsUolabIWyczJTI3EYKGJXw9ff?= =?Windows-1252?Q?cd8P6zz+vGf4LupCuNgDR7ad7cVfUmwwXWs9XuwzQdA68EDtoVNaUUsX?= =?Windows-1252?Q?ZaG9z30yaXHs378rMHnxwkNA2UpFs5lPaZsr5dumIbgrx0kgid9lLmyc?= =?Windows-1252?Q?VvANlMwHGYhieMLKHYj9875ypdO78QLv7vj+I7RGd6ISAds0eJePWHKX?= =?Windows-1252?Q?ZBjTaUU9rgLl9g/oAYlxY5IA+vN0jKC5GvFhIL3LZ3oRQfX4ZylvW33X?= =?Windows-1252?Q?hxWqbtmuEuSkJZthJetAR0AskZfPfm26JdRFMdGiSDW0IAay9HPMrND/?= =?Windows-1252?Q?aMKZj2FFamJ?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB0957;6:BuRDE79cgS4BVAq089n+Rvk5aVSxwFZ/BWv/WqmKFmXHLoX1usfE5t8Gm6Tp9lRXiPje1HJLs1/bcfXpzxuylWHPn3bxAO+H0Q/jmORESBguOat5SqMrqGrOjBQR62g1ezJeiyCAfEsx7iBEc7q7Vt4Rq/wLs113VKCZdr6o36wZXNOMZauUEDKMozZaZ0ki3cRednGeHBq5OS3ti2vek6ZJS/ar8X8L7Y1OdneIWfHJ8Fant6fLcK5HZD8Ba4JGV44sRyL2HnnARSt9uCak3JaiErZ1dWs78ZQMl4JAPU0=;5:NDNB/dBCPbUh2xa52y/lT1GSiO95MPTlJ+hsQhvC6xVPjO5kjqpxZ6kLXJP7yJ4piWiVe+4+QsiNZXXpOWW8P//CVad8EXQi/TfWZXIaz+hLo8vsEOXzKCZZC6wxnh+jb2p3/2ZxnaNDf/R/WBjCxA==;24:mpBV8nq54tJsaIXDtGgFVZGdAxnj3U3mURXyblxETpv1OBLCIJUO09u0D4G6iHfyqYMcPFxLSQW4xmAh9oeyO4bsEDU23t4rwqCv8h/JYgE=;7:+93Dbu/OkfvoS5aowowKwVUih3LJRlIf3n1U3S3QFFio5VWlzQSztce8bcVpaJHlTyv4f0z7iqFCvrGo0xqq1szN2CsnsmYwML6gIBG5Dz02AkQf5cJuKuSwhP3UVp1Uph9B76bf40UcJUBbg+yk1kNy8xBoZ5g7dA1cwP9A2I/tOloEQ8czZlDHeMHN66WjCDrh8wUnSOin6SJljwTTVyUk5EQHRm+yOVjCPwX4eTPpFLdXJyGOEYvPkdNCLmIr SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB0957;20:MgU990ClTf5c3f444+mnJHqwQja/Wpg7nQ/adj3ec64Otm9t42IBi7xP8nQnA4sn9IrNGvncEFFb1rQCo+8g5Om8qu7BFuhGoqsMoPIblqQfp8148bWhUBpTNhdx7u4NsJFLg2ZVh5y30yxQKFpIBh3xwHKRxh9Xxgp/hgMIiyA= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2016 14:00:27.2854 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR15MB0957 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-06-29_08:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/29/2016 02:46 AM, Nikolay Borisov wrote: > The code flow in btrfs_new_inode allows for btrfs_evict_inode to be > called with not fully initialised inode (e.g. ->root member not > being set). This can happen when btrfs_set_inode_index in > btrfs_new_inode fails, which in turn would call iput for the newly > allocated inode. This in turn leads to vfs calling into btrfs_evict_inode. > This leads to null pointer dereference. To handle this situation check whether > the passed inode has root set and just free it in case it doesn't. > > Signed-off-by: Nikolay Borisov Reviewed-by: Josef Bacik Thanks, Josef