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 56BF2C00140 for ; Wed, 24 Aug 2022 05:28:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A0452940008; Wed, 24 Aug 2022 01:28:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9B3C1940007; Wed, 24 Aug 2022 01:28:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 806A9940008; Wed, 24 Aug 2022 01:28:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 6A837940007 for ; Wed, 24 Aug 2022 01:28:50 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 40193A0110 for ; Wed, 24 Aug 2022 05:28:50 +0000 (UTC) X-FDA: 79833356820.19.A3147C6 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf11.hostedemail.com (Postfix) with ESMTP id BBDB340002 for ; Wed, 24 Aug 2022 05:28:49 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 27O27Cf5009583; Wed, 24 Aug 2022 05:28:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : content-type : mime-version; s=corp-2022-7-12; bh=KYqe07WMXH7iJFea3wzPmchiGNfcx3B9J3R60FQhnPk=; b=eCvA4dcgi+/ARebctcuprVh3gV2kn8aTqGYoR0mwBOvsal5+ZPRlhEQpE/Zeab1HLWg3 0Xk3fxYI/zi2xMgtbUTbLz3iL+W3FzExjFlOK0n6ID1HN3aHvJVBuR/pElkODzxxgb49 Hoi1T+sMFwK8GVsLsigdm14X0qCKNSLz2arVtHBoGuYWY1iGKORFfR1fCA0uL67rl7Yw ejozGfwbLSZYmd8ps+D8Cq2jxKWJQbt9PQHmTtF0gaFhqkq1iEr7DD0+Y24tsGkB13YR wYZV4e6rgTMrNGeT6Feu0tAhgFm+cR5mIW9JveWOXe3CDm/e2ks7AJatUE1tEVgi+AbO Wg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3j5aww06r6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 24 Aug 2022 05:28:47 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 27O3DawI037046; Wed, 24 Aug 2022 05:28:46 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3j3mkj9sqa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 24 Aug 2022 05:28:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FPdvXZKQSFJCv8+2D4Be2jYwgTzR4DW1JwlfikC6ioBoaNbAFxTtyJoqkkDJnAms8uOWsyvdHgT5ZZdATpmC9dq+KB6pGijoYUxspF1YO6Ex7smb4zL1F5WJpmB+j81rVWS0pnAVTnweeeVq3b+lHfTBqwj/KpnxjnQn5Ahp3S4oP1eykFjku0dKmjhmJ5+Ce/akvNqsm5PpywQ4VhxVyM1lcBirOwZfDNGOVvseVRIT16ya2+LgHvRppziv6yaavgkEv3k/seHW4utA9wDD2//ThB/3puZ+ARwSA0WG5xWe70UitFaDrL863aEV6yOZw9ofhJmPlcN1FFXwBkw9sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KYqe07WMXH7iJFea3wzPmchiGNfcx3B9J3R60FQhnPk=; b=U3+Pk9Z1nBCBYYtS44qVWljVgspRAUasHD16YV4IbPUerdqMbx28k8i++Qjt2aJ0QfLaMchnTbb2CrmsIar8GgksyetNFf9CcjZhrm3nV+UoseoTSappkBEV+S5LwbLWuUSHSZidJXsd+mWNruskG4IINZuoLiWg6QizUwuitF83HqW+GGlUqwTRvnxWYmdBEi1IpOvCfj0uht/lpbmEjl5JzGggsJq/ptITQWn4nATJwtjEKMzwPQzWB/XFt/mAS4M7dpf2WRZGjWwLml15cFwLROOeWub1pmi01fDfONCAg2Bt8Z8dIhWRDent6Kjv+LulJwzD+CigDNq0Z6BLQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KYqe07WMXH7iJFea3wzPmchiGNfcx3B9J3R60FQhnPk=; b=ZcG7f2l8sLl6pADRJbTQ9/WiMCtudo17MlXrPG3RofDJdq/AdP/dRb7EiCT4qOfaSX1ODqyHwD8zllmFDMTJXBvtjdVFy1agI5MZq8fHcONQU/CP9/feaDI+13v/9KQNpzgKILAj8Xnnm5fhUYYfq3iFPCNo3mM0r+eNLULqidQ= Received: from MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) by DM6PR10MB3258.namprd10.prod.outlook.com (2603:10b6:5:1a0::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.20; Wed, 24 Aug 2022 05:28:44 +0000 Received: from MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::209e:de4d:68ea:c026]) by MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::209e:de4d:68ea:c026%3]) with mapi id 15.20.5546.024; Wed, 24 Aug 2022 05:28:44 +0000 Date: Wed, 24 Aug 2022 08:28:26 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Christoph Hellwig Cc: lkp@intel.com, kbuild-all@lists.01.org, Linux Memory Management List , David Sterba , Nikolay Borisov , Johannes Thumshirn Subject: [linux-next:master 2079/2594] fs/btrfs/volumes.c:6546 __btrfs_map_block() error: we previously assumed 'mirror_num_p' could be null (see line 6373) Message-ID: <202208240734.u4Y7Q6sW-lkp@intel.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: MR2P264CA0104.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:33::20) To MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6f0fa439-cd13-428a-6480-08da85918325 X-MS-TrafficTypeDiagnostic: DM6PR10MB3258:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kIYEIPA20mXJppOM5gw5Txo0jrwhQUBdnJirm08np2jcD8EF967NMy6qHeBSXrbAQwu+eVXcB0OqccKM0sBDU5EQ2gmuqKJAOHfP2o09mHuKghtPE9V0GYgdXRbX3eRhDE+mca0e8LoOm15LMq7YviSCaa/Uqvb/IFYjhwDFdMyNUZQdSJcl0Efohsa3z7fmGUXqjOrn4L9SBnc1xx5vkN9KbAxLd7JJJ0PPGePU3yXduQV6bRdF+ArBVArxt43if/1KEoooQasVUcbALNW1rL7VOqr5EfYKjBvAoGkLV6T57adq8hfw/z4idAx2z7AYjpzmgzBXFXT9CCHppfUC1/tAfePqV9jOO4tLG/99Wm7sQ5EJL0ZRhxIgxLEp7rk0VfH060o7P9PXnfpbDI3vKyvMNKQZAomPn57ydFEOZg0afcsq4Ua0R/oBQRq9442DXhQ0YAG1vuvuznUqyUt4v47RLTSNv+Ja3+P90panOUgPoDIlTcTse2VuQG3VOApBd8ZnBLnHT3xWDHdYTAoxoz5hyZo5u5nmUOU7zqKB7OjBaSkxb8tMtPn62ZkdTZrs1deBaNQ+deAdbGZWjU1/Li5eQMssvCj+mDPBRNm6fyk7sjht+0+AjfjpdCol7F1MJrNLsceTtlBJ0HrMpJIPkeyMCU3QbsZPHG1HspYL7JxxgYUCekkcNl9vQkYrgM+5vSnMkpsySFKWEi8g3K6rcSlIFhrIWA0ATjO6aV9UV1CVsbeqKRqgxpk+3Fi7FABiHcJg73yKAmTlGJ6Wir2f3QgBCyF2Zx0/3yPqIi/hb1hYuhn1yMAsoKxa0gDWOR1qLBvsYtxd30cILBnHiDFMgA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1001MB2365.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(346002)(376002)(136003)(396003)(366004)(39860400002)(186003)(38350700002)(41300700001)(1076003)(4326008)(66556008)(6916009)(54906003)(38100700002)(6486002)(966005)(478600001)(316002)(66476007)(66946007)(8676002)(5660300002)(8936002)(83380400001)(4001150100001)(30864003)(2906002)(6506007)(9686003)(52116002)(6512007)(26005)(6666004)(36756003)(44832011)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?p51uxrrg/8WZoC+od3nvWXQRIlRLBZc95svS3ZKg+xxkGImTtK3oqeJzSNwT?= =?us-ascii?Q?u5PqtGZyI/HWNdLgONa5fiHH3/HzrUN6SN03IMwdA99jdj6FUeNeSdrMi1oU?= =?us-ascii?Q?qSFmHX1zaYfDp4yXLsNAEqZu4/Zz61cfHvDR3BFEhB3+HVnmB/8ON7GkBMde?= =?us-ascii?Q?NJRtXtaL1ghAUg2n4/DTYlSg6oWd2/b1OkHaHExX2aCPvkWpreNFPKxKxQVX?= =?us-ascii?Q?9IR37wrmX2gb4NM7wUQRmMbqas/mEAR8giQSUkR9u0UUwGcU7SVweVDujVtD?= =?us-ascii?Q?HTcJTQPO34TINgh7eK16SPeG3qRh8E2yZShGp4zO9fkm1i0wq7/4qdquJTiG?= =?us-ascii?Q?khJ6dpWXqMaCplSfGcwUKOzAE6ntK7paB7u/kqQW11FabwMO5OkoB3u65Qa7?= =?us-ascii?Q?OlcgPnpITasAsaeLeHUqHuUbS3z6mWlB29w934w1xrpTrv64N5kA4+MXjKPT?= =?us-ascii?Q?Vp2i0FDIcQrwHvPXVy/PLm46zA0wVNM3kGS9rhf48UdYJmXYM1emzBQ3esH4?= =?us-ascii?Q?5wlb8BKuD4bHRvFJ5dKUW0gzzZwnBzCO8uLjmKCO64qStOb8H0ugPNsclOR4?= =?us-ascii?Q?7FQRKCcVsZL190SExxAMdAXRwPN3gfOExt8eBCdVt4BL/2VyT3Ewj6lnKqOP?= =?us-ascii?Q?hLLKxP0uOFvAhugwv8ZVT61dul1pgldPhYOMSenFZgzkAXriq9XtvJv7dXRJ?= =?us-ascii?Q?aEoEp3eFSLBCbXtlAgP3gn1+jufBUdqsjeVSy+ulNFBEsx50b6HlA5P7UqTD?= =?us-ascii?Q?GWB7eQROed4dZ4g7gI8Id4K1AlzGFA8WjgFDDXlKaya+wvecxiImX4y9i/Do?= =?us-ascii?Q?BWKOFDWO0Sl9w4UKdj1XUXKBNu73fDMUqLHuBxXww9P4QkBHuDsu1PHyWPHR?= =?us-ascii?Q?qxeyifSY+IStiKEcmQRnXsbne4e4alYYDF8fqGmpQsvhLq21sh6D0mlHDNzW?= =?us-ascii?Q?cotRc6u+Z8vJ7X0yrxLdXE3TOQ38uCDKCK6kB1+EGzxOWLd3ObfRJGp/kOLv?= =?us-ascii?Q?Kq3RvHGBSeR3DrZeibjaQ4G4PuimuHVrdfNAZPxA/akV063fymhnL6k0yL0G?= =?us-ascii?Q?Uc40xUoJKTQcuwuHHxGpYgK9DZxUw04yxt038HdcEuCW8PCgOYKZLH3Mc+I8?= =?us-ascii?Q?YzA1RbIDrWzYIpZu/TZUzzZj9sDcDDQRCUB/KRXVDbqr2BDwQ5BVLdza9DBO?= =?us-ascii?Q?a1LA/EMxtbzSr7rdx63sa9G7eVaj+5pnOXySjSM+tM750ZZ2a2jpKy8IIp1W?= =?us-ascii?Q?RqQD84zvoxPSeRCzKIWsdwsl1QZwv1JVuGlXLB6/nSqfXhJSZ09Ebf2FIjqQ?= =?us-ascii?Q?066EnyRBaGTqexne87t7mPQrsHPblaSir1medPGPFHnF+9IR/U+LasT4hNAP?= =?us-ascii?Q?N2Vo5DI77qf4Ux4fwGc7X4d46js+a29jeR3sRbHSybXPcogYHMUHMZEE2/OB?= =?us-ascii?Q?akKDH0sZ/0qd8Jd0GucUMBc/To43o3yQawhHE6u3QYa4SlMyGDJU+4zmhEvH?= =?us-ascii?Q?cWYxmjGYTvYa1rpBlHFC4/J7BR/r5qPyLjvXJ0R0SS7MTsGNqT4EvUillkV2?= =?us-ascii?Q?BAkS4qNq3Zji/ZbQ/LA9DOsJ+X378jVlX4U6cRs1OfksAkp84zoMqHUsJcmC?= =?us-ascii?Q?kQ=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6f0fa439-cd13-428a-6480-08da85918325 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2365.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2022 05:28:44.5551 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IPC5XlD/RlRdwOtr9ofvdV1UhQyu3Xys+kwIOjJW8NVL7n+bUP5tsvEzQcR4eA0y6LE8JyKJMn6EqqDcJwwS9FUOXwC20yFBK/9c+J04yio= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3258 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-24_02,2022-08-22_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2207270000 definitions=main-2208240022 X-Proofpoint-GUID: TZEx8IXoWay8vOuTCWHIgm59oLy-KARJ X-Proofpoint-ORIG-GUID: TZEx8IXoWay8vOuTCWHIgm59oLy-KARJ ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1661318929; 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: references:dkim-signature; bh=KYqe07WMXH7iJFea3wzPmchiGNfcx3B9J3R60FQhnPk=; b=08Ox6gpQm2UUSzfOP33C06uA8UyFJeWGc4rCfCaTr2p6z8tmBtUmaw3Eqh3sVUi+1I/qIB zc54bS21k1Vcw0wfbIrZg7fkMChutBpThp4EAwy0WnW2MLzgOnTDovZ9u3MxUkU6qSkNae aPYS2A2VQC3Gs2xjCMo4uGGsg4CvAXw= ARC-Authentication-Results: i=2; imf11.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=eCvA4dcg; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ZcG7f2l8; spf=pass (imf11.hostedemail.com: domain of dan.carpenter@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=dan.carpenter@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1661318929; a=rsa-sha256; cv=pass; b=iSL1bWC4b+NlzazRciuoFxx0v5A1g5EWalNXdqSNO/a8vFOPog2ZgugGPGfrASknVL6vvw yJCqFA9TEWaZdd55tmxYEn/6e99Z56k7dg7Iw+bT+RfNoxDWA9bpNQZ40pmdAaM48FZ+oj K40mZZkDeSuTWBsTeOoA3v4pMDybJAk= X-Rspam-User: Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=eCvA4dcg; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ZcG7f2l8; spf=pass (imf11.hostedemail.com: domain of dan.carpenter@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=dan.carpenter@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=oracle.com X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: BBDB340002 X-Stat-Signature: x86m9ztfr1ruaoeona6ocodg6qicgbwb X-HE-Tag: 1661318929-389928 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: tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 05477f3653b82d8b3bcf39d2937d9893124976db commit: 51bf2819055847ce90006a368f8d2c07f408dd33 [2079/2594] btrfs: make the btrfs_io_context allocation in __btrfs_map_block optional config: nios2-randconfig-m031-20220824 (https://download.01.org/0day-ci/archive/20220824/202208240734.u4Y7Q6sW-lkp@intel.com/config) compiler: nios2-linux-gcc (GCC) 12.1.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: fs/btrfs/volumes.c:6546 __btrfs_map_block() error: we previously assumed 'mirror_num_p' could be null (see line 6373) vim +/mirror_num_p +6546 fs/btrfs/volumes.c cf8cddd38bab31b Christoph Hellwig 2016-10-27 6358 static int __btrfs_map_block(struct btrfs_fs_info *fs_info, 51bf2819055847c Christoph Hellwig 2022-08-06 6359 enum btrfs_map_op op, u64 logical, u64 *length, 4c6646117912397 Qu Wenruo 2021-09-15 6360 struct btrfs_io_context **bioc_ret, 51bf2819055847c Christoph Hellwig 2022-08-06 6361 struct btrfs_io_stripe *smap, 51bf2819055847c Christoph Hellwig 2022-08-06 6362 int *mirror_num_p, int need_raid_map) 0b86a832a1f38ab Chris Mason 2008-03-24 6363 { 0b86a832a1f38ab Chris Mason 2008-03-24 6364 struct extent_map *em; 0b86a832a1f38ab Chris Mason 2008-03-24 6365 struct map_lookup *map; 593060d756e0c23 Chris Mason 2008-03-25 6366 u64 stripe_offset; 593060d756e0c23 Chris Mason 2008-03-25 6367 u64 stripe_nr; 53b381b3abeb86f David Woodhouse 2013-01-29 6368 u64 stripe_len; 9d644a623ec48e2 David Sterba 2015-02-20 6369 u32 stripe_index; cff8267228c14e5 David Sterba 2019-05-17 6370 int data_stripes; cea9e4452ebaf18 Chris Mason 2008-04-09 6371 int i; de11cc12df17337 Li Zefan 2011-12-01 6372 int ret = 0; 51bf2819055847c Christoph Hellwig 2022-08-06 @6373 int mirror_num = mirror_num_p ? *mirror_num_p : 0; ^^^^^^^^^^^^ Check for NULL. f2d8d74d7874f8f Chris Mason 2008-04-21 6374 int num_stripes; a236aed14ccb066 Chris Mason 2008-04-29 6375 int max_errors = 0; 2c8cdd6ee4e7f63 Miao Xie 2014-11-14 6376 int tgtdev_indexes = 0; 4c6646117912397 Qu Wenruo 2021-09-15 6377 struct btrfs_io_context *bioc = NULL; 472262f35a6b340 Stefan Behrens 2012-11-06 6378 struct btrfs_dev_replace *dev_replace = &fs_info->dev_replace; 472262f35a6b340 Stefan Behrens 2012-11-06 6379 int dev_replace_is_ongoing = 0; 472262f35a6b340 Stefan Behrens 2012-11-06 6380 int num_alloc_stripes; ad6d620e2a5704f Stefan Behrens 2012-11-06 6381 int patch_the_first_stripe_for_dev_replace = 0; ad6d620e2a5704f Stefan Behrens 2012-11-06 6382 u64 physical_to_patch_in_first_stripe = 0; 53b381b3abeb86f David Woodhouse 2013-01-29 6383 u64 raid56_full_stripe_start = (u64)-1; 89b798ad1b42b1d Nikolay Borisov 2019-06-03 6384 struct btrfs_io_geometry geom; 89b798ad1b42b1d Nikolay Borisov 2019-06-03 6385 4c6646117912397 Qu Wenruo 2021-09-15 6386 ASSERT(bioc_ret); 75fb2e9e49c1bff David Sterba 2018-08-03 6387 ASSERT(op != BTRFS_MAP_DISCARD); 0b3d4cd371edb6c Liu Bo 2017-03-14 6388 420343131970fd2 Michal Rostecki 2021-01-27 6389 em = btrfs_get_chunk_map(fs_info, logical, *length); 420343131970fd2 Michal Rostecki 2021-01-27 6390 ASSERT(!IS_ERR(em)); 420343131970fd2 Michal Rostecki 2021-01-27 6391 43c0d1a5e117954 Qu Wenruo 2021-04-13 6392 ret = btrfs_get_io_geometry(fs_info, em, op, logical, &geom); 89b798ad1b42b1d Nikolay Borisov 2019-06-03 6393 if (ret < 0) 89b798ad1b42b1d Nikolay Borisov 2019-06-03 6394 return ret; 0b86a832a1f38ab Chris Mason 2008-03-24 6395 95617d69326ce38 Jeff Mahoney 2015-06-03 6396 map = em->map_lookup; 593060d756e0c23 Chris Mason 2008-03-25 6397 89b798ad1b42b1d Nikolay Borisov 2019-06-03 6398 *length = geom.len; 89b798ad1b42b1d Nikolay Borisov 2019-06-03 6399 stripe_len = geom.stripe_len; 89b798ad1b42b1d Nikolay Borisov 2019-06-03 6400 stripe_nr = geom.stripe_nr; 89b798ad1b42b1d Nikolay Borisov 2019-06-03 6401 stripe_offset = geom.stripe_offset; 89b798ad1b42b1d Nikolay Borisov 2019-06-03 6402 raid56_full_stripe_start = geom.raid56_stripe_offset; cff8267228c14e5 David Sterba 2019-05-17 6403 data_stripes = nr_data_stripes(map); 593060d756e0c23 Chris Mason 2008-03-25 6404 cb5583dd52fab46 David Sterba 2018-09-07 6405 down_read(&dev_replace->rwsem); 472262f35a6b340 Stefan Behrens 2012-11-06 6406 dev_replace_is_ongoing = btrfs_dev_replace_is_ongoing(dev_replace); 53176dde0acd8fa David Sterba 2018-04-05 6407 /* 53176dde0acd8fa David Sterba 2018-04-05 6408 * Hold the semaphore for read during the whole operation, write is 53176dde0acd8fa David Sterba 2018-04-05 6409 * requested at commit time but must wait. 53176dde0acd8fa David Sterba 2018-04-05 6410 */ 472262f35a6b340 Stefan Behrens 2012-11-06 6411 if (!dev_replace_is_ongoing) cb5583dd52fab46 David Sterba 2018-09-07 6412 up_read(&dev_replace->rwsem); 472262f35a6b340 Stefan Behrens 2012-11-06 6413 ad6d620e2a5704f Stefan Behrens 2012-11-06 6414 if (dev_replace_is_ongoing && mirror_num == map->num_stripes + 1 && 2b19a1fef7be743 Liu Bo 2017-03-14 6415 !need_full_stripe(op) && dev_replace->tgtdev != NULL) { 5ab56090b8824c7 Liu Bo 2017-03-14 6416 ret = get_extra_mirror_from_replace(fs_info, logical, *length, 5ab56090b8824c7 Liu Bo 2017-03-14 6417 dev_replace->srcdev->devid, 5ab56090b8824c7 Liu Bo 2017-03-14 6418 &mirror_num, 5ab56090b8824c7 Liu Bo 2017-03-14 6419 &physical_to_patch_in_first_stripe); 5ab56090b8824c7 Liu Bo 2017-03-14 6420 if (ret) ad6d620e2a5704f Stefan Behrens 2012-11-06 6421 goto out; 5ab56090b8824c7 Liu Bo 2017-03-14 6422 else 94a97dfeb61e32a Zhao Lei 2015-12-09 6423 patch_the_first_stripe_for_dev_replace = 1; ad6d620e2a5704f Stefan Behrens 2012-11-06 6424 } else if (mirror_num > map->num_stripes) { ad6d620e2a5704f Stefan Behrens 2012-11-06 6425 mirror_num = 0; ad6d620e2a5704f Stefan Behrens 2012-11-06 6426 } ad6d620e2a5704f Stefan Behrens 2012-11-06 6427 f2d8d74d7874f8f Chris Mason 2008-04-21 6428 num_stripes = 1; cea9e4452ebaf18 Chris Mason 2008-04-09 6429 stripe_index = 0; fce3bb9a1bd4927 Li Dongyang 2011-03-24 6430 if (map->type & BTRFS_BLOCK_GROUP_RAID0) { 47c5713f4737e46 David Sterba 2015-02-20 6431 stripe_nr = div_u64_rem(stripe_nr, map->num_stripes, 47c5713f4737e46 David Sterba 2015-02-20 6432 &stripe_index); de48373454aceaf Anand Jain 2017-10-12 6433 if (!need_full_stripe(op)) 28e1cc7d1baf803 Miao Xie 2014-09-12 6434 mirror_num = 1; c7369b3faea230c David Sterba 2019-05-31 6435 } else if (map->type & BTRFS_BLOCK_GROUP_RAID1_MASK) { de48373454aceaf Anand Jain 2017-10-12 6436 if (need_full_stripe(op)) f2d8d74d7874f8f Chris Mason 2008-04-21 6437 num_stripes = map->num_stripes; 2fff734fafa7422 Chris Mason 2008-04-29 6438 else if (mirror_num) f188591e987e21b Chris Mason 2008-04-09 6439 stripe_index = mirror_num - 1; dfe25020689bb2d Chris Mason 2008-05-13 6440 else { 30d9861ff9520e2 Stefan Behrens 2012-11-06 6441 stripe_index = find_live_mirror(fs_info, map, 0, 30d9861ff9520e2 Stefan Behrens 2012-11-06 6442 dev_replace_is_ongoing); a1d3c4786a4b9c7 Jan Schmidt 2011-08-04 6443 mirror_num = stripe_index + 1; dfe25020689bb2d Chris Mason 2008-05-13 6444 } 2fff734fafa7422 Chris Mason 2008-04-29 6445 611f0e00a27fe0e Chris Mason 2008-04-03 6446 } else if (map->type & BTRFS_BLOCK_GROUP_DUP) { de48373454aceaf Anand Jain 2017-10-12 6447 if (need_full_stripe(op)) { f2d8d74d7874f8f Chris Mason 2008-04-21 6448 num_stripes = map->num_stripes; a1d3c4786a4b9c7 Jan Schmidt 2011-08-04 6449 } else if (mirror_num) { f188591e987e21b Chris Mason 2008-04-09 6450 stripe_index = mirror_num - 1; a1d3c4786a4b9c7 Jan Schmidt 2011-08-04 6451 } else { a1d3c4786a4b9c7 Jan Schmidt 2011-08-04 6452 mirror_num = 1; a1d3c4786a4b9c7 Jan Schmidt 2011-08-04 6453 } 2fff734fafa7422 Chris Mason 2008-04-29 6454 321aecc65671ae8 Chris Mason 2008-04-16 6455 } else if (map->type & BTRFS_BLOCK_GROUP_RAID10) { 9d644a623ec48e2 David Sterba 2015-02-20 6456 u32 factor = map->num_stripes / map->sub_stripes; 321aecc65671ae8 Chris Mason 2008-04-16 6457 47c5713f4737e46 David Sterba 2015-02-20 6458 stripe_nr = div_u64_rem(stripe_nr, factor, &stripe_index); 321aecc65671ae8 Chris Mason 2008-04-16 6459 stripe_index *= map->sub_stripes; 321aecc65671ae8 Chris Mason 2008-04-16 6460 de48373454aceaf Anand Jain 2017-10-12 6461 if (need_full_stripe(op)) f2d8d74d7874f8f Chris Mason 2008-04-21 6462 num_stripes = map->sub_stripes; 321aecc65671ae8 Chris Mason 2008-04-16 6463 else if (mirror_num) 321aecc65671ae8 Chris Mason 2008-04-16 6464 stripe_index += mirror_num - 1; dfe25020689bb2d Chris Mason 2008-05-13 6465 else { 3e74317ad773ba9 Jan Schmidt 2012-04-27 6466 int old_stripe_index = stripe_index; 30d9861ff9520e2 Stefan Behrens 2012-11-06 6467 stripe_index = find_live_mirror(fs_info, map, 30d9861ff9520e2 Stefan Behrens 2012-11-06 6468 stripe_index, 30d9861ff9520e2 Stefan Behrens 2012-11-06 6469 dev_replace_is_ongoing); 3e74317ad773ba9 Jan Schmidt 2012-04-27 6470 mirror_num = stripe_index - old_stripe_index + 1; dfe25020689bb2d Chris Mason 2008-05-13 6471 } 53b381b3abeb86f David Woodhouse 2013-01-29 6472 ffe2d2034bbb34f Zhao Lei 2015-01-20 6473 } else if (map->type & BTRFS_BLOCK_GROUP_RAID56_MASK) { ff18a4afebdd9b4 Christoph Hellwig 2022-06-17 6474 ASSERT(map->stripe_len == BTRFS_STRIPE_LEN); de48373454aceaf Anand Jain 2017-10-12 6475 if (need_raid_map && (need_full_stripe(op) || mirror_num > 1)) { 53b381b3abeb86f David Woodhouse 2013-01-29 6476 /* push stripe_nr back to the start of the full stripe */ 42c61ab6760f5f6 Liu Bo 2017-04-03 6477 stripe_nr = div64_u64(raid56_full_stripe_start, cff8267228c14e5 David Sterba 2019-05-17 6478 stripe_len * data_stripes); 53b381b3abeb86f David Woodhouse 2013-01-29 6479 53b381b3abeb86f David Woodhouse 2013-01-29 6480 /* RAID[56] write or recovery. Return all stripes */ 53b381b3abeb86f David Woodhouse 2013-01-29 6481 num_stripes = map->num_stripes; 6dead96c1a1e091 Qu Wenruo 2022-05-13 6482 max_errors = btrfs_chunk_max_errors(map); 53b381b3abeb86f David Woodhouse 2013-01-29 6483 462b0b2a86c4d5a Qu Wenruo 2022-06-17 6484 /* Return the length to the full stripe end */ 462b0b2a86c4d5a Qu Wenruo 2022-06-17 6485 *length = min(logical + *length, 462b0b2a86c4d5a Qu Wenruo 2022-06-17 6486 raid56_full_stripe_start + em->start + 462b0b2a86c4d5a Qu Wenruo 2022-06-17 6487 data_stripes * stripe_len) - logical; 53b381b3abeb86f David Woodhouse 2013-01-29 6488 stripe_index = 0; 53b381b3abeb86f David Woodhouse 2013-01-29 6489 stripe_offset = 0; 53b381b3abeb86f David Woodhouse 2013-01-29 6490 } else { 53b381b3abeb86f David Woodhouse 2013-01-29 6491 /* 53b381b3abeb86f David Woodhouse 2013-01-29 6492 * Mirror #0 or #1 means the original data block. 53b381b3abeb86f David Woodhouse 2013-01-29 6493 * Mirror #2 is RAID5 parity block. 53b381b3abeb86f David Woodhouse 2013-01-29 6494 * Mirror #3 is RAID6 Q block. 53b381b3abeb86f David Woodhouse 2013-01-29 6495 */ 47c5713f4737e46 David Sterba 2015-02-20 6496 stripe_nr = div_u64_rem(stripe_nr, cff8267228c14e5 David Sterba 2019-05-17 6497 data_stripes, &stripe_index); 53b381b3abeb86f David Woodhouse 2013-01-29 6498 if (mirror_num > 1) cff8267228c14e5 David Sterba 2019-05-17 6499 stripe_index = data_stripes + mirror_num - 2; 53b381b3abeb86f David Woodhouse 2013-01-29 6500 53b381b3abeb86f David Woodhouse 2013-01-29 6501 /* We distribute the parity blocks across stripes */ 47c5713f4737e46 David Sterba 2015-02-20 6502 div_u64_rem(stripe_nr + stripe_index, map->num_stripes, 47c5713f4737e46 David Sterba 2015-02-20 6503 &stripe_index); de48373454aceaf Anand Jain 2017-10-12 6504 if (!need_full_stripe(op) && mirror_num <= 1) 28e1cc7d1baf803 Miao Xie 2014-09-12 6505 mirror_num = 1; 53b381b3abeb86f David Woodhouse 2013-01-29 6506 } 8790d502e4401a4 Chris Mason 2008-04-03 6507 } else { 593060d756e0c23 Chris Mason 2008-03-25 6508 /* 47c5713f4737e46 David Sterba 2015-02-20 6509 * after this, stripe_nr is the number of stripes on this 47c5713f4737e46 David Sterba 2015-02-20 6510 * device we have to walk to find the data, and stripe_index is 47c5713f4737e46 David Sterba 2015-02-20 6511 * the number of our device in the stripe array 593060d756e0c23 Chris Mason 2008-03-25 6512 */ 47c5713f4737e46 David Sterba 2015-02-20 6513 stripe_nr = div_u64_rem(stripe_nr, map->num_stripes, 47c5713f4737e46 David Sterba 2015-02-20 6514 &stripe_index); a1d3c4786a4b9c7 Jan Schmidt 2011-08-04 6515 mirror_num = stripe_index + 1; 8790d502e4401a4 Chris Mason 2008-04-03 6516 } e042d1ec4417981 Josef Bacik 2016-04-12 6517 if (stripe_index >= map->num_stripes) { 5d163e0e68ce743 Jeff Mahoney 2016-09-20 6518 btrfs_crit(fs_info, 5d163e0e68ce743 Jeff Mahoney 2016-09-20 6519 "stripe index math went horribly wrong, got stripe_index=%u, num_stripes=%u", e042d1ec4417981 Josef Bacik 2016-04-12 6520 stripe_index, map->num_stripes); e042d1ec4417981 Josef Bacik 2016-04-12 6521 ret = -EINVAL; e042d1ec4417981 Josef Bacik 2016-04-12 6522 goto out; e042d1ec4417981 Josef Bacik 2016-04-12 6523 } 593060d756e0c23 Chris Mason 2008-03-25 6524 472262f35a6b340 Stefan Behrens 2012-11-06 6525 num_alloc_stripes = num_stripes; 6fad823f4998cdf Liu Bo 2017-03-14 6526 if (dev_replace_is_ongoing && dev_replace->tgtdev != NULL) { 0b3d4cd371edb6c Liu Bo 2017-03-14 6527 if (op == BTRFS_MAP_WRITE) 472262f35a6b340 Stefan Behrens 2012-11-06 6528 num_alloc_stripes <<= 1; cf8cddd38bab31b Christoph Hellwig 2016-10-27 6529 if (op == BTRFS_MAP_GET_READ_MIRRORS) ad6d620e2a5704f Stefan Behrens 2012-11-06 6530 num_alloc_stripes++; 2c8cdd6ee4e7f63 Miao Xie 2014-11-14 6531 tgtdev_indexes = num_stripes; ad6d620e2a5704f Stefan Behrens 2012-11-06 6532 } 2c8cdd6ee4e7f63 Miao Xie 2014-11-14 6533 51bf2819055847c Christoph Hellwig 2022-08-06 6534 /* 51bf2819055847c Christoph Hellwig 2022-08-06 6535 * If this I/O maps to a single device, try to return the device and 51bf2819055847c Christoph Hellwig 2022-08-06 6536 * physical block information on the stack instead of allocating an 51bf2819055847c Christoph Hellwig 2022-08-06 6537 * I/O context structure. 51bf2819055847c Christoph Hellwig 2022-08-06 6538 */ 51bf2819055847c Christoph Hellwig 2022-08-06 6539 if (smap && num_alloc_stripes == 1 && 51bf2819055847c Christoph Hellwig 2022-08-06 6540 !((map->type & BTRFS_BLOCK_GROUP_RAID56_MASK) && mirror_num > 1) && ^ ^^^^^^^^^^^^^^ mirror_num is not greater than 1. Or it could be > 1 if it's not BTRFS_BLOCK_GROUP_RAID56_MASK. 51bf2819055847c Christoph Hellwig 2022-08-06 6541 (!need_full_stripe(op) || !dev_replace_is_ongoing || 51bf2819055847c Christoph Hellwig 2022-08-06 6542 !dev_replace->tgtdev)) { 51bf2819055847c Christoph Hellwig 2022-08-06 6543 if (unlikely(patch_the_first_stripe_for_dev_replace)) { 51bf2819055847c Christoph Hellwig 2022-08-06 6544 smap->dev = dev_replace->tgtdev; 51bf2819055847c Christoph Hellwig 2022-08-06 6545 smap->physical = physical_to_patch_in_first_stripe; 51bf2819055847c Christoph Hellwig 2022-08-06 @6546 *mirror_num_p = map->num_stripes + 1; ^^^^^^^^^^^^^ 51bf2819055847c Christoph Hellwig 2022-08-06 6547 } else { 51bf2819055847c Christoph Hellwig 2022-08-06 6548 set_stripe(smap, map, stripe_index, stripe_offset, 51bf2819055847c Christoph Hellwig 2022-08-06 6549 stripe_nr); 51bf2819055847c Christoph Hellwig 2022-08-06 6550 *mirror_num_p = mirror_num; ^^^^^^^^^^^^^ Unchecked dereferences. This code is obviously pretty tricky for static analysis and the kbuild bot does not use cross function analysis information. So the could easily be a false positive. 51bf2819055847c Christoph Hellwig 2022-08-06 6551 } 51bf2819055847c Christoph Hellwig 2022-08-06 6552 *bioc_ret = NULL; 51bf2819055847c Christoph Hellwig 2022-08-06 6553 ret = 0; 51bf2819055847c Christoph Hellwig 2022-08-06 6554 goto out; 51bf2819055847c Christoph Hellwig 2022-08-06 6555 } -- 0-DAY CI Kernel Test Service https://01.org/lkp