From patchwork Sun Apr 24 13:09:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heming Zhao X-Patchwork-Id: 12824877 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 aib29ajc247.phx1.oracleemaildelivery.com (aib29ajc247.phx1.oracleemaildelivery.com [192.29.103.247]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E5121C433EF for ; Sun, 24 Apr 2022 13:10:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=oss-phx-1109; d=oss.oracle.com; h=Date:To:From:Subject:Message-Id:MIME-Version:Sender; bh=s5J5jAEpcbLmlJ+AKs2/FDwY91Acw4Gx9Ra+f+OAHJ8=; b=OV+JFVnNWrYjTiNbiabaedlCKUh5ENiuHRSEHfFQ/aaR7h6B4UhA3SS1VeUh4fVZt8ZeaN4Ctgzs MFN/55ZbQt1ZN5d4fvr4TCsmlt0N2mjz/YFxkT+BaYibNBfaMKxdsJob/iVsK9n8H4EEUeJgv2Ji qdHAyCw/TzvIUEvQyWdQ/x7JOyh6w/QfOrt5Uwltyhpn3hBAumxER4wKCDHrM6jWsC2hT3H6ZZp7 +FjJjT8RMzU5eNgu2aPpUgtjowOfmaLcwJ9NeXUK7cSUwJkR+FBrNTKynGYBecsm8LOAHYxq+RFT ItYzIUBJFdioyNUQJJh17gWyawDlcpjf+ccYrA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=prod-phx-20191217; d=phx1.rp.oracleemaildelivery.com; h=Date:To:From:Subject:Message-Id:MIME-Version:Sender; bh=s5J5jAEpcbLmlJ+AKs2/FDwY91Acw4Gx9Ra+f+OAHJ8=; b=VCwrSnTzuH5ybGOmOVaiblLsNjgXKWTSH6JaD6mQ0RUnwMe7BHRclQyPlW2t1lLDKsINx+eybldH g/0smVUZG3Jyj+dMw9CEAEdOaeG7lkAyR297PCIuefTqrn4mqeXYDNRFngpphWnlJr+D67zAIU+r CHX+pwaWQGrooO+CoCZhEx99IxQq9OlYk/PLfGFia4jnXMnz69cbGewuqA0Rwi9V6GM73FUbgGdM A67upXa9ngaGvbQCZWJbKuIcGlr5mqWc0wqBCVHm7zi0ChLSrbc3NjEx1Il+FqGbuuL/9lZ/eEpA 5Np2VogdGHu3mwcmnre4oPmYv8kREiYhEkI72w== Received: by omta-ad1-fd3-102-us-phoenix-1.omtaad1.vcndpphx.oraclevcn.com (Oracle Communications Messaging Server 8.1.0.1.20220319 64bit (built Mar 19 2022)) with ESMTPS id <0RAU00MG3HXLAS60@omta-ad1-fd3-102-us-phoenix-1.omtaad1.vcndpphx.oraclevcn.com> for ocfs2-devel@archiver.kernel.org; Sun, 24 Apr 2022 13:10:33 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650805812; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GnvzV2x/ZyAPTQtImfCdZLyq6O0lqL1NUQBmdYYFoOY=; b=LUv4dAtK6H9TkVzCmYYbjxATsvzixXS0EHCKt/ryhgLsQ/vJRX4j7e6xz4M8HjeM77wyaw izE1Rsan6aQCWcET01ekAqbWdOCdp5shmBNAfF9FhEM0t5RporYb+kwny9SX/rTg9RjJPz nx9Te1WzJEfIyTwaHLAuuS5GISfkpS0= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dK9/XmUVNFIOBUNWhW6VnZ2+Z/02I09ElQMAGjNbjXNL50SzC2FRgfD2Z1SKujXdBpZ90v5wvNw2qPe3HhmvIHYjumKoX2Wei1gIkFlgSf8LKbBcFR3Vw0Da29sYmvM4LvkqmFNF/AI2r6ptxigvHBlvADQulUD4rzwRnmxHg4Bz/mm8XaFILXQNNBawXmXdWg0vDzWJWKTI5PD119tnF/RMM2vMahm1VUyB7Eatn4gXgwfSAFaIkCn6Z3uLTwmGzYTguKjqTOzWGzGkzWE2PhW7AMEkDa+mFLyr4NIV/J9zP17/FnDLGpYzfBMc3o2j6+NA8XXf++iRS7bXYi+v5g== 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=BhR8a0NcW4XrC1mgYh41IWwxMdgHp2FzGPe/GipmiPA=; b=SsPuUtnsoruSLb8teR4AHYimh0WFuJ+xbPSlCfm961CSTAIwCxeCuqIbZHqBHGZsFCqYRNFdzcmAPVv5UknGC0HMeDQK+cPwSS2haOGOQwKwe/TySNjPliRjaiGtJvgfnaejJOUlQlgXoMidWFWuVIWmqZFjTKyRxcnmUKGH280skGATgSHZeLgHN/zVAQ+L/lT+7YCBpIpmQd7kWBWpKgr78uFfKYEofKv4Av/4uzGNvSXmUv3KpboMwTobIfN2beURZYpAsTGotMGvRS9kwNdb45IauZYIf0qu5bIimAHl9VVWDF/W5fLaMi8NVbTD69ykcHyk9/mHWZnswZBS3Q== ARC-Authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none To: ocfs2-devel@oss.oracle.com, joseph.qi@linux.alibaba.com Date: Sun, 24 Apr 2022 21:09:48 +0800 Message-id: <20220424130952.2436-2-heming.zhao@suse.com> X-Mailer: git-send-email 2.34.1 In-reply-to: <20220424130952.2436-1-heming.zhao@suse.com> References: <20220424130952.2436-1-heming.zhao@suse.com> MIME-version: 1.0 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR04MB4666.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(316002)(66946007)(1076003)(4326008)(2616005)(66476007)(107886003)(86362001)(83380400001)(26005)(186003)(66556008)(8676002)(36756003)(6666004)(8936002)(38100700002)(6486002)(44832011)(6506007)(2906002)(6512007)(508600001)(5660300002); DIR:OUT; SFP:1101; X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2022 13:10:09.6824 (UTC) X-Source-IP: 194.104.111.102 X-Proofpoint-Virus-Version: vendor=nai engine=6400 definitions=10326 signatures=694694 X-Proofpoint-Spam-Details: rule=tap_notspam policy=tap score=0 spamscore=0 mlxscore=0 clxscore=190 priorityscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 bulkscore=0 suspectscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204240062 Subject: [Ocfs2-devel] [PATCH v3 1/5] ocfs2: fix mounting crash if journal is not alloced X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Heming Zhao via Ocfs2-devel Reply-to: Heming Zhao Content-type: text/plain; charset="us-ascii" Content-transfer-encoding: 7bit Errors-to: ocfs2-devel-bounces@oss.oracle.com X-MC-Unique: JMaxU2yXPmeRRlOl_iuhBw-1 X-ClientProxiedBy: HK2PR02CA0173.apcprd02.prod.outlook.com (2603:1096:201:1f::33) To DB7PR04MB4666.eurprd04.prod.outlook.com (2603:10a6:5:2b::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5c02a0aa-95de-4472-7391-08da25f3c261 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3344:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yIucC7/dzTrHPt86QArjrHGX+nUsaJJic4xVg9OOFqkLHqqmH3HprIppt2YRw9jngrqw6Yr4a1dquNG4UF8YGq7Jc3qatRGM90BzKtCKXAlV1QXiRQB24SsIgKGz353Ls/0sh38/3SCtWMq9HXlPJIaCAgtmDdnMZpqyZQBurtaL7E7mZUmh8bB470ArZoxfEUJpHs+522jGSNy1KhUFzImoPl3wd2hdZSiZlDPu4Gp+Gk/Eiz/3SW7DPOIW9MaUR3u0mP4gBEgnSdHbhNmZS92rXWhn2OA47uXAQtUWauiRqRjSApYzVqgocBI+ZXMIXR0Bg/VRyzDNq61VoMj3w/VwZfX0NOORbxwWEqzyYH0IMksEd70VJ7+craAqK/TtX1s5iA6pIIw062Tdurus14NWBNghXKgzT2RlD8+OUbqhnnBVZAG0EGQ8JfPpOGqvB+0DbNsCLeNHB0V0vyFKvQ+1GqBX/ZdYgeXqj5RRdj2+iZmcB9ICIWfiH0QYQY4ewAfUMUFo64LMfwXfoh8U8/HYWHjkPuMYh4mcMtTv0zG3jTU4BGh4syxSruxS1Y3Wd+7BIxDJm8khxtx3ckSfnYj/dxc6eIxHeMpDpEm76M6jv2ffVhQjRDILDKGa5R2ZSzwMH6t0R/S2HIpmJ1KAXQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 72Gu0FZ3ph1sYc2cyq7ku648XX0Lu/kEwcnUYTa7m6fDEuCH5cQOU7UfeNzLNbzm6YGCtl/efYurm/cbXeYS2DL42uIUTHCVYFwO2PgHmxsjW+zeK6nqnoz4vKowpRwSyJMiFgkctNw1BzbhSFGiK3O91+qTIcRZEBF5OGCZawAMFHaGFURjtK7M70fpqOILz0GWX7JgyfRSBW6nMu98GxLVEOD2htPNd/S+hF/o+CrKSSz+F791TBhQJLVnRtvWcmOmBMOFowRwiX6Py1qNRo1aFAenaGLz7f7wxlFTZLTvr3falRU79fGyBqv25+TL3jAu+78nxi0K8EJ+wWc4lY8Pk20Nb9vswr64AXI+WIqozZrvCEnddU627G+0gnAVffTeYZBeebfgTE903ZzxnnHLjJW7T3enyzanwbrIkRgQCSqKY23YL6fKN3jwGPwJfMqsL173vwN6uAXAuxIc5J2pnCRCUoiKgqh0mrCR6p4orJxUszvjdXkXSl8ZtuJ9vtiJH5T9oq69pMSvEJBgHQiRAalX00XcNNYNbrxdzfRofalqjUeTOA4FxMdrXhPnj8Rw0tgyp2CHqYFyCd33Na4IfGrwUt1tS/LR9l+GrBXGMwFJDSVwo7kfmwCHB9W9YHvqa+ONc0UFnU1TndaRon/OLSJ1oDhEbHgoifI+SVR5vJ7zVaT/qbvry4qxZxIwmphMn4EaBqHAeQf7Zyv69nUYSuG1iMXajxKayOdi2+/c31GskDWk1hJqfKWjVJk2/p2ENsNgO8YYMto/o258r56M5uzlua6WSVficiFKhXWOQtKhIPHXu8qcHrVDYV5JsHuWIRHCWeP8+zJ0qxwgg5CzTFl9kmiVGDboLUizJoBzhnV5vm+Y+fiEhcnMXWoxETB+H+DX+zoJXuvXuAB740qfy1eG/oeAgFl9gucAksCrcm691p65GpT02Ex39g+q3ryLYVGzLY9UV/27JuMzZgGCOPG4TyYMP0lxVAIUAwYZvH28ph+IMDGeUcUF+BeaWo34pWHZpIroYlPiOkwb/RiM1y+4kQNqREOhgvV9uYDee9iIkFPkMZQGZBC5YYVdPNEq3T//qFvWnuJne6DowtAeFcRU2fliDO1XYoAglhEIbnXTVRURcMnaT37e/DJmwe2Du4vTZspulwtqehj2qO43OxYcPxop9w+kFaUUJtT3GL4OwnPWvmNU4cKkLiMdT1fpkSm+LbenT5VoxXdyyxqERcvoX93+Pig2wXnAd/JEA7Ij8N2q6JY7fqi8WGnRzzrLTKtFdUEztPhugWwCTlQCHgn3nrmIXmqUIRAOaHYknB5aIydT25hutsGPDT/3kwVWif/1m8GVnLUQU15wnNvp6XYx3KpWX65FAf/L6QK2QamuWLXvezBaex8HY4z1ymqma8rWfIIPnBM85ciLD4WyY1PYQmnal71gwyuVAxzO5aes60wGqsGXgueW97oD0UrGlsoRUZjq44D4CsMhsMXM9iqbxlWtxJuwPp29vuvwgzaROILzolWD6+n3V+v5t9C0l/vlIcW6n1RZrguKVq7cK9JdUiwiff/utTf03PpPEOeVMx0eqdzi5qijiAAvn5ie6fRo+1dlCkei/t/6ql0ALWUL5zuU2zkMDJkAQ7iL5kGigQXf4qfwDH6ZcvbWnMkTHmfnNA0RA0oh1nZdua6aFrfkPE1Rl9/HBjO6Tj3MmfKBkaVGZ2EAvuT7tqaSM1tYL4sBE/UlAOeEtB6h/Q== X-MS-Exchange-CrossTenant-Network-Message-Id: 5c02a0aa-95de-4472-7391-08da25f3c261 X-MS-Exchange-CrossTenant-AuthSource: DB7PR04MB4666.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NM9eQ1euQrw9DE9k903OmfsxE8APJHT6qVLYTkqH76B9ArmKKF43FGAYISrencoxgAuH9y5p2vmGmtJwHkTNRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3344 X-ServerName: de-smtp-delivery-102.mimecast.com X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:spf.suse.com include:de._netblocks.mimecast.com include:amazonses.com include:spf.protection.outlook.com include:_spf.qemailserver.com include:_spf.salesforce.com -all X-Spam: Clean X-Proofpoint-ORIG-GUID: AY6AfS3n_g4FCknrJitHx14yjz-Kz4L2 X-Proofpoint-GUID: AY6AfS3n_g4FCknrJitHx14yjz-Kz4L2 Reporting-Meta: AAHx7be8YjHjs2s5BNEk99zUyo5oxrzYI1Z6rJEqzg4ih0Iz/6dPA6lBrUj+J6W8 CcrwO2VNZS1hwzT/fJ9b32ZgYKPwJfp+KtTHq+I+8G0WGZ84xEJ+NCxXJLJ4ujSQ 5ROlkN+9Jp+vebvW+jcP/oYl7Ak6I9BpUj4zf41QnQ8lD3MJGDKSZ4dGQluvhDJQ dz7x3Ji7B5O0e3abn0nn/AUjx5S3M+WGpiHsITw8gRHw5Cq5NPcwem57Uo95paFu HWba8RDzZj8PB2ahTYZa5N5QNzvg0EdfMalYY5UsyDgJnkpYXXzkJSMmDfmiJOMC CR8dT7gKv78m4eT42A7Aqi0Owukjwx7ZlhxKaRf6WD3b9halcsU+s+gw+5BB7py6 2+hK6T1+Qw+2HvIZ6B77B9W4tmE6kqOmnVvch5xQcOartdPpOQ/Ko8QuGMBb2oGw KD7S/QUBBKcMw6FLqARfM/bO8r7SbV865EEs2rqlZvv+PJlhL1h5kVuKhHD1127D 0zwYr90qah7XP8uvkyYJ0tqJfIao2jtsHRu5924u9sp1 After commit da5e7c87827e8 ("ocfs2: cleanup journal init and shutdown"), journal init later than before, it makes NULL pointer access in free routine. Crash flow: ocfs2_fill_super + ocfs2_mount_volume | + ocfs2_dlm_init //fail & return, osb->journal is NULL. | + ... | + ocfs2_check_volume //no chance to init osb->journal | + ... + ocfs2_dismount_volume ocfs2_release_system_inodes ... evict ... ocfs2_clear_inode ocfs2_checkpoint_inode ocfs2_ci_fully_checkpointed time_after(journal->j_trans_id, ci->ci_last_trans) + journal is empty, crash! For fixing, there are three solutions: 1> Partly revert commit da5e7c87827e8 For avoiding kernel crash, this make sense for us. We only concerned whether there has any non-system inode access before dlm init. The answer is NO. And all journal replay/recovery handling happen after dlm & journal init done. So this method is not graceful but workable. 2> Add osb->journal check in free inode routine (eg ocfs2_clear_inode) The fix code is special for mounting phase, but it will continue working after mounting stage. In another word, this method adds useless code in normal inode free flow. 3> Do directly free inode in mounting phase This method is brutal/complex and may introduce unsafe code, currently maintainer didn't like. At last, we chose method <1> and did partly reverted job. We reverted journal init codes, and kept cleanup codes flow. Fixes: da5e7c87827e8 ("ocfs2: cleanup journal init and shutdown") Signed-off-by: Heming Zhao Reviewed-by: Joseph Qi --- fs/ocfs2/inode.c | 4 ++-- fs/ocfs2/journal.c | 33 +++++++++++++++++++++++---------- fs/ocfs2/journal.h | 2 ++ fs/ocfs2/super.c | 15 +++++++++++++++ 4 files changed, 42 insertions(+), 12 deletions(-) diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index 5739dc301569..bb116c39b581 100644 --- a/fs/ocfs2/inode.c +++ b/fs/ocfs2/inode.c @@ -125,6 +125,7 @@ struct inode *ocfs2_iget(struct ocfs2_super *osb, u64 blkno, unsigned flags, struct inode *inode = NULL; struct super_block *sb = osb->sb; struct ocfs2_find_inode_args args; + journal_t *journal = osb->journal->j_journal; trace_ocfs2_iget_begin((unsigned long long)blkno, flags, sysfile_type); @@ -171,11 +172,10 @@ struct inode *ocfs2_iget(struct ocfs2_super *osb, u64 blkno, unsigned flags, * part of the transaction - the inode could have been reclaimed and * now it is reread from disk. */ - if (osb->journal) { + if (journal) { transaction_t *transaction; tid_t tid; struct ocfs2_inode_info *oi = OCFS2_I(inode); - journal_t *journal = osb->journal->j_journal; read_lock(&journal->j_state_lock); if (journal->j_running_transaction) diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c index 1887a2708709..fa87d89cf754 100644 --- a/fs/ocfs2/journal.c +++ b/fs/ocfs2/journal.c @@ -810,22 +810,20 @@ void ocfs2_set_journal_params(struct ocfs2_super *osb) write_unlock(&journal->j_state_lock); } -int ocfs2_journal_init(struct ocfs2_super *osb, int *dirty) +/* + * alloc & initialize skeleton for journal structure. + * ocfs2_journal_init() will make fs have journal ability. + */ +int ocfs2_journal_alloc(struct ocfs2_super *osb) { - int status = -1; - struct inode *inode = NULL; /* the journal inode */ - journal_t *j_journal = NULL; - struct ocfs2_journal *journal = NULL; - struct ocfs2_dinode *di = NULL; - struct buffer_head *bh = NULL; - int inode_lock = 0; + int status = 0; + struct ocfs2_journal *journal; - /* initialize our journal structure */ journal = kzalloc(sizeof(struct ocfs2_journal), GFP_KERNEL); if (!journal) { mlog(ML_ERROR, "unable to alloc journal\n"); status = -ENOMEM; - goto done; + goto bail; } osb->journal = journal; journal->j_osb = osb; @@ -839,6 +837,21 @@ int ocfs2_journal_init(struct ocfs2_super *osb, int *dirty) INIT_WORK(&journal->j_recovery_work, ocfs2_complete_recovery); journal->j_state = OCFS2_JOURNAL_FREE; +bail: + return status; +} + +int ocfs2_journal_init(struct ocfs2_super *osb, int *dirty) +{ + int status = -1; + struct inode *inode = NULL; /* the journal inode */ + journal_t *j_journal = NULL; + struct ocfs2_journal *journal = osb->journal; + struct ocfs2_dinode *di = NULL; + struct buffer_head *bh = NULL; + int inode_lock = 0; + + BUG_ON(!journal); /* already have the inode for our journal */ inode = ocfs2_get_system_file_inode(osb, JOURNAL_SYSTEM_INODE, osb->slot_num); diff --git a/fs/ocfs2/journal.h b/fs/ocfs2/journal.h index 8dcb2f2cadbc..969d0aa28718 100644 --- a/fs/ocfs2/journal.h +++ b/fs/ocfs2/journal.h @@ -154,6 +154,7 @@ int ocfs2_compute_replay_slots(struct ocfs2_super *osb); * Journal Control: * Initialize, Load, Shutdown, Wipe a journal. * + * ocfs2_journal_alloc - Initialize skeleton for journal structure. * ocfs2_journal_init - Initialize journal structures in the OSB. * ocfs2_journal_load - Load the given journal off disk. Replay it if * there's transactions still in there. @@ -167,6 +168,7 @@ int ocfs2_compute_replay_slots(struct ocfs2_super *osb); * ocfs2_start_checkpoint - Kick the commit thread to do a checkpoint. */ void ocfs2_set_journal_params(struct ocfs2_super *osb); +int ocfs2_journal_alloc(struct ocfs2_super *osb); int ocfs2_journal_init(struct ocfs2_super *osb, int *dirty); void ocfs2_journal_shutdown(struct ocfs2_super *osb); int ocfs2_journal_wipe(struct ocfs2_journal *journal, diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 477cdf94122e..311433c69a3f 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -2195,6 +2195,15 @@ static int ocfs2_initialize_super(struct super_block *sb, get_random_bytes(&osb->s_next_generation, sizeof(u32)); + /* + * FIXME + * This should be done in ocfs2_journal_init(), but any inode + * writes back operation will cause the filesystem to crash. + */ + status = ocfs2_journal_alloc(osb); + if (status < 0) + goto bail; + INIT_WORK(&osb->dquot_drop_work, ocfs2_drop_dquot_refs); init_llist_head(&osb->dquot_drop_list); @@ -2483,6 +2492,12 @@ static void ocfs2_delete_osb(struct ocfs2_super *osb) kfree(osb->osb_orphan_wipes); kfree(osb->slot_recovery_generations); + /* FIXME + * This belongs in journal shutdown, but because we have to + * allocate osb->journal at the middle of ocfs2_initialize_super(), + * we free it here. + */ + kfree(osb->journal); kfree(osb->local_alloc_copy); kfree(osb->uuid_str); kfree(osb->vol_label); From patchwork Sun Apr 24 13:09:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heming Zhao X-Patchwork-Id: 12824878 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 aib29ajc254.phx1.oracleemaildelivery.com (aib29ajc254.phx1.oracleemaildelivery.com [192.29.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B4807C433F5 for ; Sun, 24 Apr 2022 13:10:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=oss-phx-1109; d=oss.oracle.com; h=Date:To:From:Subject:Message-Id:MIME-Version:Sender; bh=SR810Xmc2DszfNXNPsOsbC69kpKWBU9VtyFVnxOGFnM=; b=nketwIZ51AHttkTFn3fIB3HqI4Dd52rrS2tlRmkSfaG2VMmUSHU3QN+fxoFduBukgKLgddYfP2Rr Q4yzMUc+NzwqInry39CvAA/0qqkI6RxzhdQljyc4vXUJQD6zftJrssZPajnRQPFBXvPY4K5N/t6x 7jmmrOr2UU/3c9qyNOZ0W2ALPXo+AU6GZ9Sorve+vKv1FfDvru3Qk1nADWGBh5PK8/jo4TyK/Pya La6DNnIQZj5k0eETW2y84iJ3wxRYJZSvkmBLHP/4R21jQWFuW86V+BTrxmfC4Mh4DAuUr2erFo2k AKLD7E+EiY4E5g7lypgj0TdfNX0qgJpzrJnpIQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=prod-phx-20191217; d=phx1.rp.oracleemaildelivery.com; h=Date:To:From:Subject:Message-Id:MIME-Version:Sender; bh=SR810Xmc2DszfNXNPsOsbC69kpKWBU9VtyFVnxOGFnM=; b=rNgDCHFiPT2wlgEyFHJtdUKxtU/Lb/WnNt3MkJnF4RIrykLf2A73WjNTGQG/O2c8zdv40iym0JFF 9Z94MVIjhX2gkaOwEygMBWPT24vvbodSZbLAiKUrQtyL5nOAvH18XngGhY3ZzJx8FqMeou0zD7TF 4o8D9FT+d3f3VzlmXgOQffTa5akKZJOJsrb18/ZAFRqw8EOMDfRZoQ2fFrlHSxQubZnj24PfobRk qTTdFeOoLphnOVSnj6Kt4pKFnETBlyWU7D6VW2MfOFQ41lVnVNAusz2GXErSyKl+Go61st/8nna4 81yz/vvVsAkrc/5MMySeD57doCx+03yGsPaznw== Received: by omta-ad3-fd3-301-us-phoenix-1.omtaad3.vcndpphx.oraclevcn.com (Oracle Communications Messaging Server 8.1.0.1.20220319 64bit (built Mar 19 2022)) with ESMTPS id <0RAU00G7RHXWRP70@omta-ad3-fd3-301-us-phoenix-1.omtaad3.vcndpphx.oraclevcn.com> for ocfs2-devel@archiver.kernel.org; Sun, 24 Apr 2022 13:10:44 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650805826; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QmdR7HRCZ8cdd65MAbsUHLpB7BZ7MaC4l5MJwRnhCR8=; b=eKuWoIkcV0EwoL/D/3Uv+3l30mqghQ5znI45bLa5xRYEp6DmjiZzNiY4e8WgPs/xo8SipN 8TCkiEqj6TJj/BMgCncTCpIHM3e2AL9xOpIWWdvzt6wZy7ApvfxbHBsik5CnfyjfgO1dnm fWUKB4P64dBANRXP2euhTd7hcxHisiU= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kQ/Ma5Vli0fhvSsbid1uJMxHpzI71HbkN206QDno+7qvhEPMvO+WgIWwF4GPhVrTMy4eiOB7UkEJcLlnMuZCb4l7DrQ2jhdD5tBJxFx0d9R5KG1w9hUmueQV//6A5/8iQKPT6wv/qahzMg4uv9ymUJUDLq/1kSfOzoGkq6/tw6dYERrB8F51phYpZ3Ds5+/Phd7F+i6iY6o0/FU4df8+OeWdVofzUX9OFHffAC5vXySg2EtebQzs+CIg7kjVuBepgqByDGbXuBCQeei+UiGKnBPgPLSKmqoeR/jblCJ7DASIwD8Yw5us00IYhZuREQJ8UkCYIBMkpnuPSIBH3p2V3A== 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=JqdqgQtEAM9g8Q+AYO6SDnxWwGD0OcUygz63Aip+cWs=; b=Q5sE3rBPEkAw4a/K0mXTwlXyFCE+8go4XXU0nj04cMeqZ3RclXlLV+leTizRpvCsXT5PZYb9A7fqjCLrnf0H1mooAhY/AvTBuk+leskIFc5gW7fkfInFApV0vFQvK3MXdjktUG1vMSy2pSKxzFRaygP6Ypk1fqMkHFJBlmLgGfO9sJhc+wK+rGzXS8CVo1YA9kEodPIxp5BOIzD97cPv1JbT7gEpkJsbM2f6nSAgpN8CpS9jaxh9eKb7z/W3dzs9uSBQTckNEb5t2yXUWYIgRcREE3b4KkKyhSFj6CR2q6V8lF6Cv5LCEV/D6t9kmE8+fZCaJoMX8KELF5RCrwzZmA== ARC-Authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none To: ocfs2-devel@oss.oracle.com, joseph.qi@linux.alibaba.com Date: Sun, 24 Apr 2022 21:09:49 +0800 Message-id: <20220424130952.2436-3-heming.zhao@suse.com> X-Mailer: git-send-email 2.34.1 In-reply-to: <20220424130952.2436-1-heming.zhao@suse.com> References: <20220424130952.2436-1-heming.zhao@suse.com> MIME-version: 1.0 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR04MB4666.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(316002)(66946007)(1076003)(4326008)(2616005)(66476007)(107886003)(86362001)(83380400001)(26005)(186003)(66556008)(8676002)(36756003)(6666004)(8936002)(38100700002)(6486002)(44832011)(6506007)(2906002)(6512007)(508600001)(5660300002); DIR:OUT; SFP:1101; X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2022 13:10:16.8381 (UTC) X-Source-IP: 194.104.109.102 X-Proofpoint-Virus-Version: vendor=nai engine=6400 definitions=10326 signatures=694694 X-Proofpoint-Spam-Details: rule=tap_notspam policy=tap score=0 bulkscore=0 impostorscore=0 adultscore=0 priorityscore=148 mlxlogscore=999 malwarescore=0 lowpriorityscore=0 phishscore=0 clxscore=171 spamscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204240062 Subject: [Ocfs2-devel] [PATCH v3 2/5] ocfs2: change return type of ocfs2_resmap_init X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Heming Zhao via Ocfs2-devel Reply-to: Heming Zhao Content-type: text/plain; charset="us-ascii" Content-transfer-encoding: 7bit Errors-to: ocfs2-devel-bounces@oss.oracle.com X-MC-Unique: bLvbw9h7OHabpsJrkegqvw-1 X-ClientProxiedBy: HK2PR04CA0080.apcprd04.prod.outlook.com (2603:1096:202:15::24) To DB7PR04MB4666.eurprd04.prod.outlook.com (2603:10a6:5:2b::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 916f76b8-d507-4fcb-0587-08da25f3c697 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3344:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nj2aGpfubEXCTea5pc9I7Rlk7mRIbl07ScDWHJKOEqzqs9DS03+1Eeb6yX4uZGiQEBfS7FYnc6EcfQ/RecHfgxOwrnVbsRmwIo9KuDVLLcsI4N2Y3QucNH1zp+jj5w2Vpv35D+8D8mUbFR7p0s5ov/uhaP+q34m/FuIu8K5H1lY/et+J2lEFv2oKrhJJORjoqZRjE9nBa4c5f81RMl7t4wTIttYrj2BSOPNaSCNT6+m6lN227gHeChcWvSrmFoQEWewKuBc0El8uROH5MGmDCpgQMYua0RPVd2WhYzKcwCtDEWGBoZVUstq0J+6cIavsKGX0l5HdWjMBV0pfDG/ca3Ny1i4ob/xTBww9IbTSM5ErtlNrebasutpzmSKTRBcg0HC2sgARXmMC3RRhvlxxl+bvqgQ+qwMBZuBnDzQGF02EKw9zMzX+c/Df7KrIXVXZ0KfP0CnX0E4c8GEt6BRSK5tRuATeW5x0/znyTYaYysf2G5eeuxWKTKfeVZHudsj67JorSOX5Q7qOggBlIRPDHdblIuvbdOP1esTfJsdken1sUuh9e3YNI7sKmUkJVfTNBcx8SgWsQYM8BAY4oFRUMDG8QAgnbFxq0qATGV61SFCOVMSB+PkANAhr2q52LKfgFWmJCVb52jbEX2qSjCy3Cw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: beekhSVIHttZewO/P4tNknnGv8bGkQ+juryT2mnEEqajYKRyWx9XcVNa3UA+V+09AmfPp2EBfkbQ+/vbAFknc9R90dGicUfz1CJ9pXkeHlvc2a7yvuj1ykyhTZguvLZNK3Pty1q8ewv00dBBKI7AxtU0GilwX7zwscsdvbsytlqTKit83eB/5BQZAGTVdCC4X5ntYdTR5gF03s/uRKLpY64gh4dk8V4YxrQI7XHoSrdpOmzpkS98RkeYcDCo4QqscPrIQOACDB3H+yyWsoVzVpXNO7Bk/n90o58pQhmE7K37GpSO19J0FyUYlkVA4A1UEi5zJP1L7JYE5QBeYzhXfaKtkBtqdDTeepS74xwCcL2LOir/5YWQ4xpgtaY3BZmBs/IV57fkO5Ds9sbdLN24lcvUr0VeECYdKP11NliPjevBAMmO9be7oAsraDWKwxD3HiUxYcSf5kRoBNvfiB2UtDSRe1J1yjvpXQG1UtG4qI3mMyi/AJfGukFRNBHgo9ruq094wug0+QzX6Peu4nAErsQBE/HiZx61V2o7oUNp/t+RUX4OXWBCTxWTmD0Ol7pEntbQ6oveuI8meMCMx/KMeP65ae0qUoXox9o3sClZciscKROchNRtV/xUAG+5O3vCSsK22TN7Eak80k3MQbTPeAA8qNH3EjHMEL1MSSP5P1WO+glZK3O1E5Mb0G808OVwxOTl0RPRYQyXEGTLuiPXEyTKVEfqq3Z+a8QdfgVjakFnvwaol4hePUyf3ufbMwePIWU8XwgHG4s4+fgjil5Sw/RDPw1xi7dNDPO+np7P4igeZ8zyHqo95gXaloD4nqy3faZgLGwoXNB4yE+JUSvcX/cepJGqgXqN2f53TJe5iXw/8kuIgIDbDY1XKtnj3RyhbkPwUerV8KCScPrlME0v7f3s1uSstSd1JtM64qIA9CqcR7dZna/Hv4HwU/fmXmycbUTuzrDaS4vxLfo2EeZZOKU2sn/RGxNajMF3FSmlwJHOrWhSceDukFfbKFri9EHDx9h1Lbgv0y7Ep0pTCLSBnF4+9ZC7MA9HFf5wCbbi7V+PXpGeRN3L9E/eyUlFJ0NbnvGDvv1PKl4WcG57ihIJzSlYf2niSOV1Emai1uc3j/cAFEzOfHlR/IVGu+iC9HM779EKXOhpV0i96ko02Tuc4f3BAvhvmdBfZY3cf+ZUoeteALIsgYUBxxXL4s+4ica12k+bd0ChqNVJ4uo40CWbIZOXI2uMKqaP14AySdLiUzbL2U6ttMGmlxtpLg3CdKa35xL+Sc43uCy2fmUUcWhYnAml2FftgKdLYNOoQP9LvF3oY6DCQ4MfmQmyyI1eI7SUI0cIyolL0ahaxvBr9seYAOaXYFNio2b/d+VgnohVB8BUcc+AoBrIM4qkjFEBBwQhlkyeXClextjPjZ0heu4wpENIDbdg8h2Irj6cmEgjWBqS6cPH9Y0RDBKjYVtbSzbWm87X4OhmbDCqfj2FSEG1pJJt9fQIx+XY25vMcRpaFRMneSEJZ1lhxxU6IfCVLLlPKSFNef+BSEc1O3+NCrtmwSz6R62jzAPHx9On6772ZGHC54/9BN+NTahKxmP+PI7Dc6CkbeHzIsScQykN1hxSLNLQSSvZRL7ipgDZBcfGr5v9eHKf70n6k0QRnk0+rl7RjnHAZ1sK0SajyCLbA6oECEy1XotalcHM7rzekxNpXiFm3QDSfZCuoSayCbfPEc8WLoD/zYcgs/7EqN6jj6dwiA== X-MS-Exchange-CrossTenant-Network-Message-Id: 916f76b8-d507-4fcb-0587-08da25f3c697 X-MS-Exchange-CrossTenant-AuthSource: DB7PR04MB4666.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U0+H5/aqCYgmQmTLYgYBLnn1ePzlOY1X6D1/6oxmWuGQBWB5WwZdmwXJInTZn42FbVxjVmlhS+rqpO1rZQjFBg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3344 X-ServerName: de-smtp-delivery-102.mimecast.com X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:spf.suse.com include:de._netblocks.mimecast.com include:amazonses.com include:spf.protection.outlook.com include:_spf.qemailserver.com include:_spf.salesforce.com -all X-Spam: Clean X-Proofpoint-ORIG-GUID: sGMrKYELsBQWQ6IEu4GhQuDtzK_JtM1L X-Proofpoint-GUID: sGMrKYELsBQWQ6IEu4GhQuDtzK_JtM1L Reporting-Meta: AAFQWSoCtDpt5U4ul5LVFkfv5tyiXw50NnHArV/k3uDuAWTVDgA4e/laNT1z9yIT HIxzyV9oGy20ITBU166lHxCAC8CDqxAMiUV5PXVl1PWVWWvooqmuZIJlyw2lp2dr ZFNKO0azGwIypJkCNYDrnTE3ZA8hOvTwDHVX9llRsvhKb6gWThkSW6MzgFOTLCTB H9CVU9fiEEyM5acxeDP+L6juZD2alRK9lfiqy6OMiWiy/Z2MudFpoYdmzzbu+X9l +lrWRgV4uhbq0NBmnvkqoET0Z96bMGO3woIFsUSiz2kMgVtErAiDobBRp1GY7uCh U068U2Av6jlWFZZmu3eNItMgyy74WoGcFsNvM2OW/+an5eSjt+hAxKPCP5CmSnmg MQ72QxxA+HKVA12W3MY1IZi8X9LSvE87PZOeyL6tafNwPjPwW0q4H40UFL/tcMZx xeb9AWz8A59GsoMNDh5T3kpTwLcUeVrkOl2MzwV9O6iLBJGfvu0BfmS412C03T27 LhxcZcqz3uoQdJsV0drWdTPzK1leCxJUeNfYER4zk+9R Since ocfs2_resmap_init() always return 0, change it to void. Reviewed-by: Joseph Qi Signed-off-by: Heming Zhao Reviewed-by: Joseph Qi --- fs/ocfs2/reservations.c | 4 +--- fs/ocfs2/reservations.h | 9 ++------- fs/ocfs2/super.c | 6 +----- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/fs/ocfs2/reservations.c b/fs/ocfs2/reservations.c index 769e466887b0..a9d1296d736d 100644 --- a/fs/ocfs2/reservations.c +++ b/fs/ocfs2/reservations.c @@ -198,7 +198,7 @@ void ocfs2_resv_set_type(struct ocfs2_alloc_reservation *resv, resv->r_flags |= flags; } -int ocfs2_resmap_init(struct ocfs2_super *osb, +void ocfs2_resmap_init(struct ocfs2_super *osb, struct ocfs2_reservation_map *resmap) { memset(resmap, 0, sizeof(*resmap)); @@ -207,8 +207,6 @@ int ocfs2_resmap_init(struct ocfs2_super *osb, resmap->m_reservations = RB_ROOT; /* m_bitmap_len is initialized to zero by the above memset. */ INIT_LIST_HEAD(&resmap->m_lru); - - return 0; } static void ocfs2_resv_mark_lru(struct ocfs2_reservation_map *resmap, diff --git a/fs/ocfs2/reservations.h b/fs/ocfs2/reservations.h index 677c50663595..ec8101ef5717 100644 --- a/fs/ocfs2/reservations.h +++ b/fs/ocfs2/reservations.h @@ -73,15 +73,10 @@ void ocfs2_resv_discard(struct ocfs2_reservation_map *resmap, /** * ocfs2_resmap_init() - Initialize fields of a reservations bitmap + * @osb: struct ocfs2_super to be saved in resmap * @resmap: struct ocfs2_reservation_map to initialize - * @obj: unused for now - * @ops: unused for now - * @max_bitmap_bytes: Maximum size of the bitmap (typically blocksize) - * - * Only possible return value other than '0' is -ENOMEM for failure to - * allocation mirror bitmap. */ -int ocfs2_resmap_init(struct ocfs2_super *osb, +void ocfs2_resmap_init(struct ocfs2_super *osb, struct ocfs2_reservation_map *resmap); /** diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 311433c69a3f..8014c690ef72 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -2110,11 +2110,7 @@ static int ocfs2_initialize_super(struct super_block *sb, init_waitqueue_head(&osb->osb_mount_event); - status = ocfs2_resmap_init(osb, &osb->osb_la_resmap); - if (status) { - mlog_errno(status); - goto bail; - } + ocfs2_resmap_init(osb, &osb->osb_la_resmap); osb->vol_label = kmalloc(OCFS2_MAX_VOL_LABEL_LEN, GFP_KERNEL); if (!osb->vol_label) { From patchwork Sun Apr 24 13:09:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heming Zhao X-Patchwork-Id: 12824879 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 aib29ajc252.phx1.oracleemaildelivery.com (aib29ajc252.phx1.oracleemaildelivery.com [192.29.103.252]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D91B0C433EF for ; Sun, 24 Apr 2022 13:10:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=oss-phx-1109; d=oss.oracle.com; h=Date:To:From:Subject:Message-Id:MIME-Version:Sender; bh=Lcd/GYdjwYJ5hXuX3jUxYXdC1Vzy3t2je8w46lphvao=; b=NNmABoHZpEm6+xlvmbTdyFfVrbfPzduwj+oJkwIZCy+49yPEVqVy6VpU2MFqO79UnBG2tXKsKF4Q kZZhK+g2rG6B68U9nc41Nwc/l1Bua56fB/qnqW77uhqcmmZjZRM2e68++eOShOUIBKyx8cEf4K2A 804O9d++5EjzDaG3H6OInGeNSWCsGv7eJJibp79+d3M/Lzu6vD46NDbrTYTU3NO14LcNBbd50Uau U4N+yKFDU/orz5FlkZfjN1KIfF8VI6dU70UYjds/XUsuWBhLUhb5vciQa2c/PwgePgVG4go48mnU VuJ6Phpi6k8q7EzdxuRcPOPHheh5crqBB8Laeg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=prod-phx-20191217; d=phx1.rp.oracleemaildelivery.com; h=Date:To:From:Subject:Message-Id:MIME-Version:Sender; bh=Lcd/GYdjwYJ5hXuX3jUxYXdC1Vzy3t2je8w46lphvao=; b=Uu6Ndwgb/d+QE5YxoT7RKgGiTxE0VqFCrKS0z97PUEqW1/27XekUpH+oJWFwQRJ1WOs5r7gnuuwV ZVbflVCoHHWfgaIGQ9uVcsDRshGzbbTDH5EVf5ewTvYynANtfCRpKBnizdryXch6AwqANwoZpMQt +cWhQam9J89yQkbXoF/8K7wwlGrqETwHdXiTUZ3CBuPoLESM3YBczwqiY/Eje084JNHB9pp8tpZV tc5kJsBj7KSjR8QOa1j89XIPNofOliAkQl6fDX/r9PSserOczabPe82RI3BVaNn5bO9cmgrNR4Ax mo9aN1xRIwquRl4Rknqdnz/eTQSPxZx2kY+lvQ== Received: by omta-ad3-fd1-301-us-phoenix-1.omtaad3.vcndpphx.oraclevcn.com (Oracle Communications Messaging Server 8.1.0.1.20220319 64bit (built Mar 19 2022)) with ESMTPS id <0RAU0081UHXWQ680@omta-ad3-fd1-301-us-phoenix-1.omtaad3.vcndpphx.oraclevcn.com> for ocfs2-devel@archiver.kernel.org; Sun, 24 Apr 2022 13:10:44 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650805827; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Wk2GElS4RwxPOb2QMUI/sgOPf9q1JdPWKmxAr1flQ1E=; b=Qk6rIFem5t7dMO98llrKalw7uJZnyQZXNlpg+IW8+j/IgLszA4m3noKVk7Y1GwwR0WvWUc ivphTvUTyDtFDpVsXVVmbEeXDc0Jwsvre5zB1ieK7nef3Ej35IBLz9AbKciMvKutsjFku7 UAsPAHilQGGbYFmld2fZmdSil+m3AZM= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aE+KihINiuOloU9tJvQe0eA6NR5XtWzXl3jmfkgAN8Oicm9I5PA5xmZkLvoX1nZksH7EESWETb9/RhFtq/YtZqAVwTRDFRjwfZimCYPmD6AwN2rjO1GHmyW3sCEE46WFHXvgdWMBdamXK2sJ4mnLsVlzs914/IOmL4WBq+9dxC7gcntEX8a7j5kJJWVNKfiTGVbnfQMvl9FXE19iohuXUjYdkuYBxq6ZMlx9LlhNNmumJisz4/6xgKsTFPBF2CVmPs7TtWityanUPYcH73tzSJxBP/6Z2tctj3xRAH7Yxa8ij5ANxWmAPYFCfvuWXMeMWxFTNvwC3A5upbHSFScTSw== 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=brNyngq5odmPMrhy9v+U8PzHzHIyLIPjdhP58UWFSXM=; b=e0H842/5nckR9c28zzGcZDV+t3ZoCZWphVC6D3FcNy34xLJCdsJsJlm9ro/t8Vm1AiDXs2BoyKbuwZ3jDCM8oB0mqPsHWmZAN2v/BNZEIBpcJ7kXqKInbLUDJ7rkopS9xsuXb8iIoM1yrWe4QhjrMhXxZ/DQaRiSsfXR7GKs9X+NU40rbSmTRWlb3P1linzZkECeGsq1J3/Le5ZlDpdO5JI/IOr1gUP+R9vy9MiS6I2ucnNGT2jvxH0d1CvyOlj2jIzHC1mWCaQQGPamfAQeLVfeWv9zlA99aRQbdUuxNR6wj6C3EC7K7QZ4+sGwCWRCy8tscRjSW1LSGhK1Os/hBg== ARC-Authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none To: ocfs2-devel@oss.oracle.com, joseph.qi@linux.alibaba.com Date: Sun, 24 Apr 2022 21:09:50 +0800 Message-id: <20220424130952.2436-4-heming.zhao@suse.com> X-Mailer: git-send-email 2.34.1 In-reply-to: <20220424130952.2436-1-heming.zhao@suse.com> References: <20220424130952.2436-1-heming.zhao@suse.com> MIME-version: 1.0 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR04MB4666.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(316002)(66946007)(1076003)(4326008)(2616005)(66476007)(107886003)(86362001)(83380400001)(26005)(186003)(66556008)(8676002)(36756003)(6666004)(8936002)(38100700002)(6486002)(44832011)(6506007)(2906002)(6512007)(508600001)(5660300002); DIR:OUT; SFP:1101; X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2022 13:10:23.6189 (UTC) X-Source-IP: 194.104.111.102 X-Proofpoint-Virus-Version: vendor=nai engine=6400 definitions=10326 signatures=694694 X-Proofpoint-Spam-Details: rule=tap_notspam policy=tap score=0 impostorscore=0 mlxscore=0 lowpriorityscore=0 malwarescore=0 clxscore=191 phishscore=0 suspectscore=0 priorityscore=0 mlxlogscore=999 adultscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204240062 Subject: [Ocfs2-devel] [PATCH v3 3/5] ocfs2: ocfs2_initialize_super does cleanup job before return error X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Heming Zhao via Ocfs2-devel Reply-to: Heming Zhao Content-type: text/plain; charset="us-ascii" Content-transfer-encoding: 7bit Errors-to: ocfs2-devel-bounces@oss.oracle.com X-MC-Unique: tktrgFSUPc6q2YOGLYii0g-1 X-ClientProxiedBy: HK2PR04CA0073.apcprd04.prod.outlook.com (2603:1096:202:15::17) To DB7PR04MB4666.eurprd04.prod.outlook.com (2603:10a6:5:2b::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a6c70159-2cff-4d9e-850c-08da25f3cab9 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3344:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6SRuOpJx4jwdYKwxAjPrJSE67apAsPuXkqFVEnPmprxBBtTJRidDzpc02bN3cEwnslnDczt3qA0kW4tachby67PLdFfSIBQPEVU3L4rDVv5Z1VGmr1fMK+c4Y/IJUBigNqzOf78Zq0ZfWIphwH1+z3Zt5pqXUf3vwJoPKqFbn9xolFmjRUOODv68pQcqUID+GCjRzURWouexS27kujFPhynEBMrZoNDMQEqdBj+d0mZNwrJ1Ldcge7sW02GDPbgbxYIpzhuXolyn08O58zyAgZUgR8EMwAjD8IIPpHZp0k81jsoazIY4NwdO7Wss9JyrH0QcCR582sCmkHG/lR1/BdrGELKy6UnRXmcpQmvdd4t+9g2KAE5XzVl81WM9AAro+vY3wlC4KAwQ/LVesqD0mdzhxXWMNzuoRE1z8n287KPbLB+0h7c9OLK/4eLIz9rhgQcngpNIILgp+YYqkuOnSM7NnEaYnTfrtTK9+7aIhuHPIy3rq2ZaN5nY/jUOSj4WgtufY5M1GnIsUKhKZlAV15JvDIPQdUSPwbM0PsIKPqSDtSvy771MtNGeaITBqqt1lhW3eBhTBAZwDP7bZk6q45Ja5BlEhpFFn2asKjF/Of5fjC9cOoYOOEa+IESfSyLgUk3lCntGu/KYlFk3tyYBiA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: lLJm3EqxFK6VHhLxINzHfPDcItZ1Ccgl8w2KNILJOx5fHmMG7PomF3xqQQWfeITvSENHJ5kyryYepcMl9bbvhPJiINdyRBii4LL2uvu0C6oJ5Duu410enIqJlRZLRD+vhW7YqqU5ke0qlgn4thIKEbmXzR3HZY6DK5N71cWZebPjPtUPJBNyy6TCRw0q5OdOnO/0myLXAjnmSEWXeLmx1JW8lemJnH0WL7Zkz49kIaIA2Yh4GLg//4YpBFvYtGZggq+OfqM0LEcdRZ4ymEwbBr0WZOqR6rCo3mMULAqCYCVhh8lpVxeLsHZihEHYR/M1ExWXbl2xV7wfE6Jwarccdn+5jPTM9JkhbIMKM21SpIu9koqJTpDPTudveS/0RAZlbOtLRpNp0niUisdekbIOfHhhqL0Q40DknWXZA+2Id6ofQPIZiLxs4w8R6moVpS4HCN1j3fNP7HtIp2ZbXO6K3CSwV1OTFdlWh3ROcJ9Pq0f4FpjLww4KJO3EFjsY1POp35NZVMkkyjv6zGDxvqP18xDo3+vTQZMtfJEYZ+K2c7L+sNDuEGm71bKa+uxyZFQ4MGmlfRl2pkRBesISv7f9b1/6MPGVa24p+cX+etdpuR9UbmLM+jimsxEl/ILSE0fXkq5Rz0Bz1udiuuByfCeqLo2SNPdRBuyInX8MxF8d0jwt1geL42Dff6HBI6IRhmzmXg8KBRBr99ZS1ndMVgdGUjF1YQYXQHg2nQ3iNmDXOeUGSfto05egy9+hHd7lLEkYcwLYEtgeUnKUUOrirhwOOKaHvwpYEUYzXs34RG0DrMACxyWKqSUBIX6fDU5FXsUL9CBM2l0qVpBvY5NrNuUBq6a3d2VoioUswFLA6Jz+Szn7ZqGtC2Bohh3wxHcC9W2bdstAjyTkapVihIXUcPOZgTeoCY/2Ix0KjlII1zz4dMo6NXRvoFDetLyhLyTB5/tLE2j/e/GaBKB5G8q/ymfctbFdbr5D3hF4v0wLhjKJiIOsXQyBjeCoqj5dbdPnEXzWdd8PJLJOp7xM5TzhkvL0VsGzFTsbeJhxvzwlLYLid5EhKE4vgQYCJamnNxjDFWanQfjcFRsMvxs43k0/XWtiUxq+owidA/CDv8SiQ2bXPBBryc87aFkRNhfTV7p9S7TpsM/BR5ajbiTks3Su9UP/EYXUjIf7fczLtsPSHJBE84jsFnyj0zRG9fpbNsmpSbzruxhQBL6J+CxU6usl9JxMuCho8tOx3NyCyQsQ3XbzH+40L+MuwFhGyBa+B6seuQFd3P+M+dKrtdNHjr0lBEB7eCsSP2jo/oDepnPt3nNAzUmG59L5NTV6u/i4gcRNqZdqevqoQr5uuK9XqpaqDuJFxMiKrJFho5nlQUY8rSZsT86L5P9fvwE87P5T9oTG8h0UGHlxtzA2YLACwA413cgzbFNKPc9twY17/pEhHcNMDfIZ+1zHT5YNEYCq4twN/b4ZZfhhgew9nOpaeivNSgH0cvkixhdnNW5RRMrr9PONMNmwvltLx5Xevs3drWBJgZv53favbeOhzpor8zCCOe0suPYihiZRJ/OngUxpgdmQYdmkcjRTlJspWzQjAdWNmuK61lrruYA6m1HbaRJNIIbmNtzqx+jymxQIuZUU8xDwRiebvxc7sA2GJoqyPn4Vt39nu5vsKqnHLnmp2pAHl1YBYwAZ2NEMzTiz8khVdK/o2b8b6N6aw4eMlBTIhNUMucmkQiHpMEks4CmBsv27UTczKQ== X-MS-Exchange-CrossTenant-Network-Message-Id: a6c70159-2cff-4d9e-850c-08da25f3cab9 X-MS-Exchange-CrossTenant-AuthSource: DB7PR04MB4666.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OqNC3EtSnUrJp9s5nGrj8rI7VDE2YYYAL8xVrHUfglux8fF/Zb8w0A7HH9UNMBJ7onDqrA3CJPDxGxjWb0P4ug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3344 X-ServerName: de-smtp-delivery-102.mimecast.com X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:spf.suse.com include:de._netblocks.mimecast.com include:amazonses.com include:spf.protection.outlook.com include:_spf.qemailserver.com include:_spf.salesforce.com -all X-Spam: Clean X-Proofpoint-ORIG-GUID: ROSwoy2H99k39twUin4JvnnZhsZgG0Vz X-Proofpoint-GUID: ROSwoy2H99k39twUin4JvnnZhsZgG0Vz Reporting-Meta: AAHmMxb4dD9l5ZGTg7wErkO8P6ocihd8jEdEkBZefDlKcg+2AR/F6pvatdtj5MvK GGJ9eZ+6Eshl9ZSEioNQ8gDMiyGtXeCnEX97ewaKUWmGkM3AmkOPNeXK+U1qRmKB ocCd3WiyocVNuF1kn074pIvDKR3Dh0gSpgKug7XjAbEZEIA4PveQYkMT3eAXFkpz GPXD9h+T8QlA6PEkHVO/FVF01s/Sy6d8zZVST8TVQ/Z72lN2uHubTSJ8ITIGzgtL g5TL/OQ3RYRGi31uKQ+Uq4XMhgxvh+aTXrUcaHCrn5I3sD3DcPUpP4JXFbcz0Kzg EnS3QS7fbmPypKlpM5mznI5lt4V0UdrTIvBJp+1fqgQW8ufpvIEuLqwyrV16XpAo iBde6fn4l4p4DW8upWvc8eflFW6CdD9Bbi7fuqKWo6rlAZG/d4dUgfMDBUchQGaP x5ssSkEQ8LvW4vHadKjekVTNBUCteCnCqwpCzRmmpPkiAylk9Mul6C0gKLOY7Lor ugxu2hSjjjjxxUeRnhjjqPL9ZcGCGVh2MGDmGaH5cNdj+w== After this patch, when error, ocfs2_fill_super doesn't take care to release resources which are allocated in ocfs2_initialize_super. Reviewed-by: Joseph Qi Signed-off-by: Heming Zhao Reviewed-by: Joseph Qi --- fs/ocfs2/super.c | 59 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 18 deletions(-) diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 8014c690ef72..758ea3313f88 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -2022,7 +2022,7 @@ static int ocfs2_initialize_super(struct super_block *sb, if (!osb) { status = -ENOMEM; mlog_errno(status); - goto bail; + goto out; } sb->s_fs_info = osb; @@ -2083,7 +2083,7 @@ static int ocfs2_initialize_super(struct super_block *sb, mlog(ML_ERROR, "Invalid number of node slots (%u)\n", osb->max_slots); status = -EINVAL; - goto bail; + goto out; } ocfs2_orphan_scan_init(osb); @@ -2092,7 +2092,7 @@ static int ocfs2_initialize_super(struct super_block *sb, if (status) { mlog(ML_ERROR, "Unable to initialize recovery state\n"); mlog_errno(status); - goto bail; + goto out; } init_waitqueue_head(&osb->checkpoint_event); @@ -2116,7 +2116,7 @@ static int ocfs2_initialize_super(struct super_block *sb, if (!osb->vol_label) { mlog(ML_ERROR, "unable to alloc vol label\n"); status = -ENOMEM; - goto bail; + goto out_recovery_map; } osb->slot_recovery_generations = @@ -2125,7 +2125,7 @@ static int ocfs2_initialize_super(struct super_block *sb, if (!osb->slot_recovery_generations) { status = -ENOMEM; mlog_errno(status); - goto bail; + goto out_vol_label; } init_waitqueue_head(&osb->osb_wipe_event); @@ -2135,7 +2135,7 @@ static int ocfs2_initialize_super(struct super_block *sb, if (!osb->osb_orphan_wipes) { status = -ENOMEM; mlog_errno(status); - goto bail; + goto out_slot_recovery_gen; } osb->osb_rf_lock_tree = RB_ROOT; @@ -2151,13 +2151,13 @@ static int ocfs2_initialize_super(struct super_block *sb, mlog(ML_ERROR, "couldn't mount because of unsupported " "optional features (%x).\n", i); status = -EINVAL; - goto bail; + goto out_orphan_wipes; } if (!sb_rdonly(osb->sb) && (i = OCFS2_HAS_RO_COMPAT_FEATURE(osb->sb, ~OCFS2_FEATURE_RO_COMPAT_SUPP))) { mlog(ML_ERROR, "couldn't mount RDWR because of " "unsupported optional features (%x).\n", i); status = -EINVAL; - goto bail; + goto out_orphan_wipes; } if (ocfs2_clusterinfo_valid(osb)) { @@ -2178,7 +2178,7 @@ static int ocfs2_initialize_super(struct super_block *sb, "cluster stack label (%s) \n", osb->osb_cluster_stack); status = -EINVAL; - goto bail; + goto out_orphan_wipes; } memcpy(osb->osb_cluster_name, OCFS2_RAW_SB(di)->s_cluster_info.ci_cluster, @@ -2198,7 +2198,7 @@ static int ocfs2_initialize_super(struct super_block *sb, */ status = ocfs2_journal_alloc(osb); if (status < 0) - goto bail; + goto out_orphan_wipes; INIT_WORK(&osb->dquot_drop_work, ocfs2_drop_dquot_refs); init_llist_head(&osb->dquot_drop_list); @@ -2213,7 +2213,7 @@ static int ocfs2_initialize_super(struct super_block *sb, mlog(ML_ERROR, "Volume has invalid cluster size (%d)\n", osb->s_clustersize); status = -EINVAL; - goto bail; + goto out_journal; } total_blocks = ocfs2_clusters_to_blocks(osb->sb, @@ -2225,14 +2225,14 @@ static int ocfs2_initialize_super(struct super_block *sb, mlog(ML_ERROR, "Volume too large " "to mount safely on this system"); status = -EFBIG; - goto bail; + goto out_journal; } if (ocfs2_setup_osb_uuid(osb, di->id2.i_super.s_uuid, sizeof(di->id2.i_super.s_uuid))) { mlog(ML_ERROR, "Out of memory trying to setup our uuid.\n"); status = -ENOMEM; - goto bail; + goto out_journal; } strlcpy(osb->vol_label, di->id2.i_super.s_label, @@ -2252,7 +2252,7 @@ static int ocfs2_initialize_super(struct super_block *sb, if (!osb->osb_dlm_debug) { status = -ENOMEM; mlog_errno(status); - goto bail; + goto out_uuid_str; } atomic_set(&osb->vol_state, VOLUME_INIT); @@ -2261,7 +2261,7 @@ static int ocfs2_initialize_super(struct super_block *sb, status = ocfs2_init_global_system_inodes(osb); if (status < 0) { mlog_errno(status); - goto bail; + goto out_dlm_out; } /* @@ -2272,7 +2272,7 @@ static int ocfs2_initialize_super(struct super_block *sb, if (!inode) { status = -EINVAL; mlog_errno(status); - goto bail; + goto out_system_inodes; } osb->bitmap_blkno = OCFS2_I(inode)->ip_blkno; @@ -2285,16 +2285,39 @@ static int ocfs2_initialize_super(struct super_block *sb, status = ocfs2_init_slot_info(osb); if (status < 0) { mlog_errno(status); - goto bail; + goto out_system_inodes; } osb->ocfs2_wq = alloc_ordered_workqueue("ocfs2_wq", WQ_MEM_RECLAIM); if (!osb->ocfs2_wq) { status = -ENOMEM; mlog_errno(status); + goto out_slot_info; } -bail: + return status; + +out_slot_info: + ocfs2_free_slot_info(osb); +out_system_inodes: + ocfs2_release_system_inodes(osb); +out_dlm_out: + ocfs2_put_dlm_debug(osb->osb_dlm_debug); +out_uuid_str: + kfree(osb->uuid_str); +out_journal: + kfree(osb->journal); +out_orphan_wipes: + kfree(osb->osb_orphan_wipes); +out_slot_recovery_gen: + kfree(osb->slot_recovery_generations); +out_vol_label: + kfree(osb->vol_label); +out_recovery_map: + kfree(osb->recovery_map); +out: + kfree(osb); + sb->s_fs_info = NULL; return status; } From patchwork Sun Apr 24 13:09:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heming Zhao X-Patchwork-Id: 12824880 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 aib29ajc246.phx1.oracleemaildelivery.com (aib29ajc246.phx1.oracleemaildelivery.com [192.29.103.246]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8CECEC433F5 for ; Sun, 24 Apr 2022 13:10:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=oss-phx-1109; d=oss.oracle.com; h=Date:To:From:Subject:Message-Id:MIME-Version:Sender; bh=G6StvTkjNjz0MFw4+3E6Gk7iO8KmMvH9eCA1xjPYDvw=; b=H6BdHV+nrQNzXJqlStzEfljkxJwMRkRggzWw7SUnt2Sp+tU8DSkzVzS8LoFOOkNCWMCSGGAe4/2c +mrTvU1lilqeL7tC6d8zdy5MFfsgAvqpIgar5lZaxO7bUExliuhDz0OplM2jfvW435PPoygKio5L 9ZJGJpPv33gAVD/hyVkbDYeHGDoLgTbNc+wJfz0plxov1/DX0VuXV9mmud9sqX+BjTaxYegju4GA AJ6SiKHAgXtWgghscvFp3hi7Fv1tdXSGo4Y3GNUu1BUXmmSFbjT//DjUFwF13mFxOoEdTnwnUcLc bFTbJ3oZpaWmTJHUOrpC2FH8M+jeXdP81E728A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=prod-phx-20191217; d=phx1.rp.oracleemaildelivery.com; h=Date:To:From:Subject:Message-Id:MIME-Version:Sender; bh=G6StvTkjNjz0MFw4+3E6Gk7iO8KmMvH9eCA1xjPYDvw=; b=XJ7KrE6H4gLskQcj1xwwBRe2IOUOwI434h0DXApklCggcyXj2eoQ+BTZBs5gIj4IX9O+v0OSjnAy vDZz5lPfN/9yHigOWg1nh09VL5de29y77D6noYV8acu9Bjw6MLwNB0Uny7UIMKh3hsSPSR312WU7 wpXhx1avnMI8ghmj8VMpFzt2K6fLw6RwGICytj0eAiyFYISe/n164x2P7Uf1JC3m+4mrSJMgOkEX VWDvhqc0RVLN4EOzu/gCeVfq2PjN6uzEcS+d70zbWyqDZVnpr19eXXjLw9TbFI9NlI8qGMPF8NH8 7PX4aWcCeDfhQYMKyK886fi95DxNMi5buoWteQ== Received: by omta-ad1-fd3-101-us-phoenix-1.omtaad1.vcndpphx.oraclevcn.com (Oracle Communications Messaging Server 8.1.0.1.20220319 64bit (built Mar 19 2022)) with ESMTPS id <0RAU004YHHXYZ780@omta-ad1-fd3-101-us-phoenix-1.omtaad1.vcndpphx.oraclevcn.com> for ocfs2-devel@archiver.kernel.org; Sun, 24 Apr 2022 13:10:46 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650805834; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0sbg7O8JXtY+R55pKCtXwnb0bsA13gjsife2ckrBOEw=; b=d4W6GJlgmydjT6BlT6UztXK4FBEMfT9CpUxynZS0CfZhwQ91j70ywIZKp3vX0fOyxSFCu+ IMa+ExmPmi40f/qUTIOjhdifk5QFjuFYWtWav1CR7TygOAp8jQlxEYY9VpgD4Mat5Lmo6n 4VxVubh///UnpnUEPK7Y+4TINDLPLwY= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bMm4GFAR2GOFAI6MEN80TP2iym8+/9SPoxThyBJBkq/9n2o1qI8dzapDWdQWkWcxnpiIm5kxmZPRrMik9w0rQbKb5J50aw8HNfKJRjQujwFzKqf71LF+lV16jbkPDKLS89KcKfVxwCib6UAO4ISVT2Por+F60mVDSqYhHGRHbNW3s4roFtRegJAP71w/vQ7PwhEoxfJ6idqevnf/kFvoPJqYIaZJ1xQ8p76UGxIFBXRmOBjpw3sNWcBL55y0LhROqTD0kVDtrRGK+HSh7LTDBqTFp/pKR9ovbFNtOpiX3Xa/I67tLQ+uBo5v82aW5C1gc4g6hkKe6ayKHkHX9jlgHw== 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=bJY4L7I9XnEaBonoFvGgNGpFB9BpgO/f1AgdSXXTj4Q=; b=SE2U5LLVbpG1gZH01J94PMzxxiGX5GCdTE6l7KyBPqGBbSsm46kFZMzypslYEnKmQxGyX/NOnu7Pj7Q1wdyrbYPiuwSciu9L6O9u5prKg4CphXwmj1+RahF8WBFQBOUrJbfeB60RBkgMVjWN+gFxtqE7icBo/az1+hPKthSPe9g0yF/ERrl6h2ulZys3cx46PR2s/dUhu7IcUGaWCJDhuuIBvAufDOHkOGlGV7sdybTgi7hqmVpIWEi6WmyZq2d/KEmFtU5wbvjNwwq4q7JceLuDCs+ijSMRhj0vm/I0AY6nXJrGn2ahRnJGpBDIjMO5jFypJW/x4KWH6WJQkSyucA== ARC-Authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none To: ocfs2-devel@oss.oracle.com, joseph.qi@linux.alibaba.com Date: Sun, 24 Apr 2022 21:09:51 +0800 Message-id: <20220424130952.2436-5-heming.zhao@suse.com> X-Mailer: git-send-email 2.34.1 In-reply-to: <20220424130952.2436-1-heming.zhao@suse.com> References: <20220424130952.2436-1-heming.zhao@suse.com> MIME-version: 1.0 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR04MB4666.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(316002)(66946007)(1076003)(4326008)(2616005)(66476007)(107886003)(86362001)(83380400001)(26005)(186003)(66556008)(8676002)(36756003)(6666004)(8936002)(38100700002)(6486002)(44832011)(6506007)(2906002)(6512007)(508600001)(5660300002); DIR:OUT; SFP:1101; X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2022 13:10:30.5871 (UTC) X-Source-IP: 194.104.111.102 X-Proofpoint-Virus-Version: vendor=nai engine=6400 definitions=10326 signatures=694694 X-Proofpoint-Spam-Details: rule=tap_notspam policy=tap score=0 spamscore=0 mlxscore=0 clxscore=172 priorityscore=148 impostorscore=0 mlxlogscore=999 adultscore=0 bulkscore=0 suspectscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204240062 Subject: [Ocfs2-devel] [PATCH v3 4/5] ocfs2: ocfs2_mount_volume does cleanup job before return error X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Heming Zhao via Ocfs2-devel Reply-to: Heming Zhao Content-type: text/plain; charset="us-ascii" Content-transfer-encoding: 7bit Errors-to: ocfs2-devel-bounces@oss.oracle.com X-MC-Unique: _TtkwsvmONqeRRpHxWuh-w-1 X-ClientProxiedBy: HK2PR04CA0076.apcprd04.prod.outlook.com (2603:1096:202:15::20) To DB7PR04MB4666.eurprd04.prod.outlook.com (2603:10a6:5:2b::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 551b2f8c-98dd-49b2-8fca-08da25f3cec6 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3344:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yFJEu/FiTe3Pot5LQwqQX2um3UEimQ/1JoztNjf71MqTpSQ+whsBlgHVG5ivByhC8pto+bkUsjZicL078Caea/0aM6gs0ORu+7iL5fqgzXVbo5SUjhT4ZESLuRq2s5ulyuH0TnXV8NICVRMbfn/lgDutMaWAOYLP/0VDz4/hfih5PXcx0acY9fsj6M6ANo93a6CROnoXP2z891RioZRAdw5Ga/AUEGMqkU7Em8wDZnTIY1aoBYzksq9/vG3kp9/l2OzhWGWZ2BM3PitNUOQFR5OMphou3M7Ko+lt+mzysFW5KufPM7EBwXBIV3LlQ9DKGHQ6ROslCKWwzCeC8oohi0l4bQGikG9+rUcpGr1Kzcugw1e/U1VWMI3BAeLueTf00fCl4g2gnE+VOpJ3QTWREKs+otu0RSYtyiRXh7xQQepZbq7p5TX6/sxZBrAYf9XdBbCKjAxaQNsSaysk5GlT4w5obQJgV+BfvLFFH5h6XKnAPImA0soBhw9/9lSiXHRuLbhxQV3zf68S6qbdpx59CtAE5AVWAzvSVV0OzLQgQZSwSsLibahc7fd9NJ2MQncu/Z1Wcq+ltXE1Y8IVd7mvt6AmWh2y+rCxB89iZlNP2cyzm1F7/rgpyZ9NKdUOuNWVUF6sb+bzpsbLqvrL2gLL5A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: teUa6fOotdim+V0uBhMgqDfwmvOffSatmxuiNuJ8cuJHz5jADcw7Sv+P1h2Y5zmNrEbWb7Ms188xzm9JzA2dJfwzVJ/Ce5sWgfcfRXFPHQ/0TXXHi++ioEJjmGGGQobR8AxlUuPo+4AKvPVDhRuYHhiRbgr8331N6kDZlCWKPkrW3ihVSUj238+RlgLoLsGYVwGMP1NRhVbgEmsysbQxVVHvr6diYrRSolzpS0xn9EBjE8qVxiP99dIlD21tLMw8YPQ4jcxriM9jK9KcRsbvmp9+ZMZuCQ0zUFQfh7vnq6pFgRCGMwQXnmgdsHujW79HYoOfDZfbp0F4NvrCBy1q/VbcMG8NooTN0euJfKr6C5g1FgvBJRdkl+cSgmka9D2U1V2AuY+r4rkIMIv5MRiwYyBBKSsB8aDKaLTd77cWRekhP3397BxiNue8pRSMVdQ8Lbdp7jOPLL5kGQNSgdk/wO/1bOyp/QcSMh3m5KkbvSr1hxiox3XTSyGEjLaBmLWLNbAwVBr/7ebdFxNm8NZl5/amK2u7uNr/ar5vMCos1ZbCrqemRgYuDZKsQ2FNjR2YNZF7erqGiN2AvADz8hjJEwbHjNO/DXWg2pOBikv5G+rzFnOMP7Z/FdfUpKlhckLM0MP6gifkFxxEqytrRmlwcjJW0x63XqrjdRtQf9mlx4mxY/KocA/R1IpKfUMN0NYptRxH0TCBgZAVe9/4lN1dCaJtBQ+3mnexmXYyR0wOMqkNTqI4EiYsvRev8JpJCuouAVsScpxURw6BxSbYsJviuhsrEQNat0/ECpDm3XKRghqt/BaZtxx/QcvaO+VpB4AxuMGjsDaBpB+DgymG0sjFidLXLEhSdo3j+K0LCmFCz8/2a+rPW89tZoor9bm2FwwaTdBktGA4sf16OvoaatvhBnsfY5i4eNLiX3AQsXt1Wo3GpFBkWBZH6bCLYQ7Bb1K75WGIUy/4TwXZ2hP1pXDqyFpNyb48WhlSiqypDXlf6kWzNf/+OFyN8n5xdfervEd938O/vaFZa3g2zgK3YME5c1KS4klEy103o1eBNQ67VYAQtomR0f1tzQtCTBi8zyZNNzb+VU7CfELima3Nvtg7UXUXYyl4IMcnlkaAVdoePhYjwvUPGSmdhcG6ArlgN8LqZtJ5okdPtfHwMzs5wrHv9qY0KDtIA7fGfQ+vOqDrxDfG2ZAxWTjn8vx2XIjeW5/aBepMyWK79UOhq6UFOJMK1GRLfWxXH7y16W6I/DW6faTuoP+OMfuVhtnTChI3RkYYn+wRp+KqURARyxCSIx+sgVXgxrajrDn6/ybNao/0X1WFB6sil7QH6ODUsCL4flC1S+AQqN/QoUyLNas/WxsOucuLTkSmSOjYlQcaR3HwNE1cN+8R/0Wcq6kygjwaoW3sAvpN/8k3iXYCSqXiOSE/lLCIWh3GI/t1twc16mhoqCPkQ9HsimzSpPXTi6BY5501vP2Gb1xilGUzHfBx6ex9VCZCwt/A9aIuuz0y6gJWpDV1xG/sIzfeDpHdYl/lWu+aqj9woBMMZREXYl8nfGgTta7c8lQ9fb57Aa4ClKGZBw86H94Mro4+FyCaozthAolA1uFlHk0N9DHsC/r9KGVcbVnPYbT8+1Wi+qz39VfXlbUXg0M574ATYmKCdC37HXw2qQcf7AiACWgc1d/WwdlwNfRwc3QnqabhFpcYrcqT7RMBHC2xtoaC80dHHHsG9FIj+59fwc3br75EuWNK63EZ8A== X-MS-Exchange-CrossTenant-Network-Message-Id: 551b2f8c-98dd-49b2-8fca-08da25f3cec6 X-MS-Exchange-CrossTenant-AuthSource: DB7PR04MB4666.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B8jTcNx4g9yFYIL/RhoDWeWa8RKQNueH22ztYVgzGXSdsXKdHwwFLKV1GHCtLdGg7AJaisWBahLXCul75NLXeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3344 X-ServerName: de-smtp-delivery-102.mimecast.com X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:spf.suse.com include:de._netblocks.mimecast.com include:amazonses.com include:spf.protection.outlook.com include:_spf.qemailserver.com include:_spf.salesforce.com -all X-Spam: Clean X-Proofpoint-ORIG-GUID: OhUfBNFfcQNhNwL6I1-YNn1GE_Y2Xlkb X-Proofpoint-GUID: OhUfBNFfcQNhNwL6I1-YNn1GE_Y2Xlkb Reporting-Meta: AAErjhaL1pO6IcQiM9PfEhY8rbPELETTn2yYlKsLbgnVwAnVwcYl/e4RfGqiU6Zi 5S3RujuzOMq7qJu4ISDIJMKFUyEV2D+r7t80avLfoIRuPMO74/VZrYNwYESOqk6B GemK7pVIz3nSmCGCnrVF9JxAD80tJgvYOf3JvyTRw3vLUywT/REWjSRPlKNW7RJv IOUeMZ5w+m4XVrWKNn4hP+HvJ/vCHy/QqAMrrYBbU7v/9rI76ZroJxHyEFWi8jgx mKcOE40jJSwdAjF+jOIwl64Lw9fP2758sGoDgFM05ftLy52N1LsKXP/x33yfC8di Nn22wi1bZNvHsVvuaOJhhQRpbbYu4aBMoXfEsbnC/3QaqIoIoMrAec2hvCxMtvYC jrCS+EBlqaJiohE6cFiNzTXF+P13x1NQg1uDEFu6HZxY5elT8LMr+FPc2vwIRrXr DRXMnCP2gZw2mwUSbEFDg5VYNlAG5YKrzUB+dTSlksIYZN87QqRHqM+rAVtPwqDe SCWK5VsftCR/cmdYRdhQtyEVF4bsepKan+XybgQaLH1kwQ== After this patch, when error, ocfs2_fill_super doesn't take care to release resources which are allocated in ocfs2_mount_volume. Signed-off-by: Heming Zhao Reviewed-by: Joseph Qi --- fs/ocfs2/super.c | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 758ea3313f88..1cf18ed8cf1b 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -1803,11 +1803,10 @@ static int ocfs2_get_sector(struct super_block *sb, static int ocfs2_mount_volume(struct super_block *sb) { int status = 0; - int unlock_super = 0; struct ocfs2_super *osb = OCFS2_SB(sb); if (ocfs2_is_hard_readonly(osb)) - goto leave; + goto out; mutex_init(&osb->obs_trim_fs_mutex); @@ -1817,44 +1816,56 @@ static int ocfs2_mount_volume(struct super_block *sb) if (status == -EBADR && ocfs2_userspace_stack(osb)) mlog(ML_ERROR, "couldn't mount because cluster name on" " disk does not match the running cluster name.\n"); - goto leave; + goto out; } status = ocfs2_super_lock(osb, 1); if (status < 0) { mlog_errno(status); - goto leave; + goto out_dlm; } - unlock_super = 1; /* This will load up the node map and add ourselves to it. */ status = ocfs2_find_slot(osb); if (status < 0) { mlog_errno(status); - goto leave; + goto out_super_lock; } /* load all node-local system inodes */ status = ocfs2_init_local_system_inodes(osb); if (status < 0) { mlog_errno(status); - goto leave; + goto out_super_lock; } status = ocfs2_check_volume(osb); if (status < 0) { mlog_errno(status); - goto leave; + goto out_system_inodes; } status = ocfs2_truncate_log_init(osb); - if (status < 0) + if (status < 0) { mlog_errno(status); + goto out_system_inodes; + } -leave: - if (unlock_super) - ocfs2_super_unlock(osb, 1); + ocfs2_super_unlock(osb, 1); + return 0; +out_system_inodes: + if (osb->local_alloc_state == OCFS2_LA_ENABLED) + ocfs2_shutdown_local_alloc(osb); + ocfs2_release_system_inodes(osb); + /* before journal shutdown, we should release slot_info */ + ocfs2_free_slot_info(osb); + ocfs2_journal_shutdown(osb); +out_super_lock: + ocfs2_super_unlock(osb, 1); +out_dlm: + ocfs2_dlm_shutdown(osb, 0); +out: return status; } From patchwork Sun Apr 24 13:09:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heming Zhao X-Patchwork-Id: 12824881 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 aib29ajc250.phx1.oracleemaildelivery.com (aib29ajc250.phx1.oracleemaildelivery.com [192.29.103.250]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B418FC433F5 for ; Sun, 24 Apr 2022 13:10:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=oss-phx-1109; d=oss.oracle.com; h=Date:To:From:Subject:Message-Id:MIME-Version:Sender; bh=4elcUrVsQ3ECMVGFkPK76Iffm/Dq/UPKJmVFbnWEWdk=; b=SJ1N3j0b3xImRdj/8AyGKR35jl8Z3IIiYkwooZh3z7w+GPdWS+2dSB81R3tS+EqzP2dmNENndDj9 Al6wNiKiICTh45hrQfSR9Ss2iA5HGzhf1DUkAKB2N5nMMt8XmaV151WlTaoMITYMs148VjeIw49J E0esjUqckgN3YEknuyWg2FRvd3rMqposZxK0rTOTCDI711vxI/rNvV7IO4LT2LzR1z6SI/pjPDnj 6k6qvYbiHLvNpEIZ/qCw6trA0kAxaXLMz9GVQwRXG2eab1UpXlNjTPpmaCtuGiP8Nj7vt+Mm7kpA oBF6ylE4/z0XLFE2YSb2ouEhmLheIZy7DqE4Bg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=prod-phx-20191217; d=phx1.rp.oracleemaildelivery.com; h=Date:To:From:Subject:Message-Id:MIME-Version:Sender; bh=4elcUrVsQ3ECMVGFkPK76Iffm/Dq/UPKJmVFbnWEWdk=; b=mND3ZP757Pd5S6a8lAUHg7aNKw+KMvzVNUmRKD5IBsPXuKX4vlzuFGWBW0m8kJoTQdGZyXMciAXK ClpXbIcmzr071RCVBhFRhVtbmYDENGzVt518tYuLXx021FD6A4+zi0qtwjl4DOwR2x6UnlsYEw2Q 5hiJu8qiAgLHEgGZWr88m9pK37NS2OP880KI+vTZnSDZ2+h884kHv0fe5eZEHcXPY1EOcU595gWX X93gQySOg2zQ9m3Wn9kgJOqrMsHbayqvugR8FkYKPH5T7tiiEgJ1LIPP2CYqxaFU4Jpkh8trYV32 Rl8152sJJAoUFTXFQkWgCrY3v7bXQCNnyIksPQ== Received: by omta-ad2-fd3-201-us-phoenix-1.omtaad2.vcndpphx.oraclevcn.com (Oracle Communications Messaging Server 8.1.0.1.20220319 64bit (built Mar 19 2022)) with ESMTPS id <0RAU00839HY5SJD0@omta-ad2-fd3-201-us-phoenix-1.omtaad2.vcndpphx.oraclevcn.com> for ocfs2-devel@archiver.kernel.org; Sun, 24 Apr 2022 13:10:53 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650805841; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gK18UG57XQGAs+YPr77KLycMfn2fH5rEz/LmqKUjqpw=; b=Nn5OjjsdwcrV28r4TD4hvds/Wxg/YFQX4+hd8NGM1+o1KVeLE/Z2UAYZD7XiNkD458onJ4 zE3hHt2kt2I9A5sTlCqH/TdZCZjr690xBPHka2iCPhwksvLhA2WnyCV9Z3xWdXdGIIDvI7 TMKfm8XDihpyvSkYjKy1A260QOlexDA= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JV8LhtkzmqJbvkSRew1hbnqDkIBUwTIYW7zr8IYRUk4J2d97HIQPiEUUDiDLGDmWNmU5tBYwWsEl+lMaGSsCnKZ3dEjgyeDn3FcoLW2qpQHwQWjsXsR0UK+z2bSO5XWb3ECAAjB20J+IbYm9122cjt2GWfzfoQ3aQXWKRERQP0GlpMOOdG3stNgZ8EbCfpujGspr46isSm9lurvTs4mHsW9K9IwPtHDsSwPQ016aI5XSpji6UDBZ8vsu8Et6MuGDiXoGN9q2cavU0tz7TuQMZzkKLha/EbOaqvNOR4r7oycZuCvk6+XjWWSCEoEjzEvFGg9jOwUg+6MKQOwQrDLOgA== 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=yAQhj73BBD1nl6xqpLKkmd9Oo+h7lZKFxksg51N2d8o=; b=gyjF41h4Z56wL1Z2nBxNCqfPK68DsQmSWS+OrTLpiPNEk8KeEOo7c6BgO9W4fkW+SRRv3QEZRKbqfjBEbzUFweSUqrOHMcI5wYXIvzt88hJGyIjqbGyiq85a+XNqJ5dD4QICV7rqxeCOJ8pzDDF4GjDvuokEb1Elm0XPhj04Jo2PbUcxa33EWsdGQ9ibxrrM2Y7xt/zelyuQT0VYA19He8egMUiVbVfvHdv6Je8uN9V7IpGPxSCvRdIQXE2FEb7zdccuJdX6E4RuMWwmZl8qHMe0KxduJWoEkTcsULlIGbq4af7NY8FrK3Osepl5tBv3UOcb2PxFDAztQ5bBt6SQdA== ARC-Authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none To: ocfs2-devel@oss.oracle.com, joseph.qi@linux.alibaba.com Date: Sun, 24 Apr 2022 21:09:52 +0800 Message-id: <20220424130952.2436-6-heming.zhao@suse.com> X-Mailer: git-send-email 2.34.1 In-reply-to: <20220424130952.2436-1-heming.zhao@suse.com> References: <20220424130952.2436-1-heming.zhao@suse.com> MIME-version: 1.0 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR04MB4666.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(316002)(66946007)(1076003)(4326008)(2616005)(66476007)(107886003)(86362001)(83380400001)(26005)(186003)(66556008)(8676002)(36756003)(6666004)(8936002)(38100700002)(6486002)(44832011)(6506007)(2906002)(6512007)(508600001)(5660300002); DIR:OUT; SFP:1101; X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2022 13:10:37.5866 (UTC) X-Source-IP: 194.104.109.102 X-Proofpoint-Virus-Version: vendor=nai engine=6400 definitions=10326 signatures=694694 X-Proofpoint-Spam-Details: rule=tap_notspam policy=tap score=0 bulkscore=0 impostorscore=0 adultscore=0 priorityscore=0 mlxlogscore=999 malwarescore=0 lowpriorityscore=0 phishscore=0 clxscore=191 spamscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204240062 Subject: [Ocfs2-devel] [PATCH v3 5/5] ocfs2: rewrite error handling of ocfs2_fill_super X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Heming Zhao via Ocfs2-devel Reply-to: Heming Zhao Content-type: text/plain; charset="us-ascii" Content-transfer-encoding: 7bit Errors-to: ocfs2-devel-bounces@oss.oracle.com X-MC-Unique: BUV7wVoeM1azzTP8N5rkBg-1 X-ClientProxiedBy: HKAPR04CA0002.apcprd04.prod.outlook.com (2603:1096:203:d0::12) To DB7PR04MB4666.eurprd04.prod.outlook.com (2603:10a6:5:2b::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 824ee9c2-62f2-454f-e65b-08da25f3d300 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3344:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: t/xG4JKvBJ/8BSP3bd4Jdk84N9z1slODbkq365wbzbMjYKHD26D5HK+X/N/qVBVmlu3BsLsMCM6dQ7ndHe59Y84wBPfeQacM40CVINPM+ZGmlZD1yIiIlx/JQtPhb2k1fDPSsWuEC5oZEbM1vQGdFrh59a9jd4dgmv/5JfdcVaIsQZDtrrk5KPdbnQ0IzKJ70I5AFF67fwyGD8+/kaAsx8f6zjJ/7XjUo3tEvkrUOjpkG4Jkd3mNlJbftDDm7q6F1dto2zgYGUi7hyLHcGcGeAspcjJMHbTLozsi/GR7G1tauRiOF4snE3+xin2LbyNTHFitI8AbJk1988bU26TZoDkFEJ3sEfAQSSpFiNZG8m7U/hJ/RrpBEhRx3iaef40BSNuvsuuj3DSB+vM7tgYqd1+LSoJO2xRhyU7ovdvYJ5yyn+laHtCY1jq6GKah2c8B+r999f8ql5p3FmhrKOIjXF6g97/3CP/0j9W+Q7XnQfrrzK6yBJVUcvG4OU1BczP6+hBH/RFXtno84sT5Wc0FJhyXcpEVrTB1w68P/qjxAngn5fGaqtWELW/BPK3S+8PXPKOKdrseUy6pbt80jNf+u6DuqIDn5ZgXi/M0ur0Q055oYfxhS06Dwc+dGpBbFenHGOeJy1udsDZcalWCgmW2Rw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: bwXonQjKnAeYuAcO4g6QXSIOvmU8Qe3eVbIEMsuFc9j4u9/NhaeZVik7kaLcAS0DZg+KqXzbfC0R7HyDi0Dwoo0Rn3e2vv0gog+vy2Z1PTLzp3Fagdef42OR0zNPt9Hxg+pB7r4WNy2XhUt/e6g6ut2R22eUA0NarkwxPDwzDtK1+H9qRsGc76QNOX9A9il9NrYesqH9aJ2Jg9i29Yi/TsRSGReu5LzUelVwH6C0Nk4fms2iCSQa73ZsdqPpZnUv0bQr+8gZhDXgorNTFNMvpQHLuOO8fVfKlKc5X752Yei6tJLRDY0vBcz4ujvnAas/Yt6+4guaJ+S3DIg1+9ZfnxnXJZYvD+Bb2CQP82fXgDCfNRm5McOVl/3IuBTbjvvRyl1LA3FMOqiRlFHMRtrfDor+73ycvzgK21DUqN++eyJ2SwXi9uhj9Q2+T6xEi0k1FOS+yFsTSkun67tMYXIezmrs3HEQoCxfJmFOKnwyDkTjQneU6OS3nkWPnHuX9usnaYglKyDEHA23Ci0TCwsUwaEg+VlZjiswGOHlFcbA1GXWVIilfCmq9c/L/Crk9OGikKD7ODdrB7uTQNYKhlhn5HNfss+O390koTxsa6MX7rsYMcl+NVoj/LWBscjXK3qWQAyuYALfPyHmXcjq6McDIsHluMDjo2f0eVfh/q9so0SKOuFi3kcnO+cdzOzbJzPYMdAfq5CFn13b4QpmUCX0fs9ZKfls8PjKOV9V4fMOR1KiqyElcEOokOPtfdOyBqsEwDZx0QwhyjH7/KGK40WxdblWT3fwn0aYFnvSV8L3xJxwezEZYIq5PjpyMx8Re7qJPhGM+DnE7bcVStD7KnxXu1QfJ8a5ojx9oLF55YbJHTd/V1f/WYuey7mw2S4zQ7YTM2yBLKSwdp23x/MgeeAaRCMzvDVvahpdoTZXy8Wap8zA71bl6Lpi80QRxYuDvl6Sh9zs2ZIVk2uND0mrQ4bo8/u3C1W/IT0BywsIpR0eEmNmekYRzIHXWFPSEyk3kSHtLrgmxj1WGHJYK8SMuTtUlNpKDEzvx0RzY8/gia34cDzca/9hdvfooQqXA9GmgpYGuqnJCK6GYX1JsiYksHp6NLvJNG56SoxCivtez7Tej8lHrPV8lKvt/34GBohyM7cFUHVrWucpyCg2gmDzh+YfUyMkVcTP2GbgyGA9a8F6uXufAFDbuYPUNxCJ2LzEAMcWtie67V0pQZpHFEwoCmEbhlJa17Rdg+55f2z6ctGtAwybjOPyuwBURi7uOOGzfhx/eS6IP1mS65n5gwFrm/ZSP7I4IEWV1WUmN9zmu4UWeeBcUm0o4J2rUIxFWx62ln1+y8lN/D4MYwafZAlQTEMlCXqTuymHhWcm+AN5ijxk594I0G3Cgpt42+xkjAUIUrCFY0/FrCxgRH0O2GEhmxMLwJy3sCOBvZn81lE4CVG5Y+S9Tox1Jw3IZkxHg4vDhFxSxAWH9qpCM2YYSygENi3u5oELA4gEByL32v/bk1pb/NxPyAPZGEu1JG9ICA+MnLIQyCoe8mct694WlXYbxMKPwZWH1eecDVu8o7uR3rVxDDTZNCL3AkKQykkqpvH1kL4GIuULTSyBd1cDtfojfe2FeV39ZQ8zlXW8QFKkYxknXneN+wdO+J5zbtmpU+obcisZ32QCsBPPMPLUbV1XFH1V+1nW+GlbZEbiIcXqCzM3vkLuI97MnZeXA+wP1vdRkiU6vBEOMs3xT+9QQq0hVQSHKQ== X-MS-Exchange-CrossTenant-Network-Message-Id: 824ee9c2-62f2-454f-e65b-08da25f3d300 X-MS-Exchange-CrossTenant-AuthSource: DB7PR04MB4666.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Wm9Kkwqh7nZkOkflj4O954Y05DbdXnoDN4vCdDIbpVKCFsSMU8uUWfcoMCWznxulGMKsa76vaoGv8JXLBO7NPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3344 X-ServerName: de-smtp-delivery-102.mimecast.com X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:spf.suse.com include:de._netblocks.mimecast.com include:amazonses.com include:spf.protection.outlook.com include:_spf.qemailserver.com include:_spf.salesforce.com -all X-Spam: Clean X-Proofpoint-ORIG-GUID: h-HeJ_Cm63kofMypaGP0b3SRrS9LRplZ X-Proofpoint-GUID: h-HeJ_Cm63kofMypaGP0b3SRrS9LRplZ Reporting-Meta: AAFbv19XtEbe+hUKUJGfHKJfCJAHqfZu7hbOp0+IXBO9cwgeRWhdBILBz4cgQSjs AahRPuJfpozfzakcCrdmr2Wq+kAo4cZRzCNbsYJdE3gpQMnO6jmcQBnZeMPoTP19 wm193MiNGIfgwgdzmfYdveHd0sjToHe/1pwdGpDfiW3ifYNSBe/Z/ChrXtmUM+HX 9TGSUXtjmU4OMmWGNz7FD4uUNK3WDjBmkRQxzj3HIgVNsZMVvTE4NTMS/zcT71fk 7r/4mo/V1llUWWiZoQlynKjysJBAsVfSO9aMq3sxnGVIGMhaN3+tEM247DQMyVZc zOhfpsaqXlzgL4KT9pSpmnOulp5k4lTM2+Udwv08kgS4Bpe8+2iL5N5ixewl2sqO qRIlTUjuF6yATFp3p8MtwhGPLhjuBXQrefSmM0n+UPxgioVWYyD4LVpRx+XJpRoU Wbj6IjCLNi70f1usMFlWORHlwTxk5/mZQoYoxAa6KcFkba8h4mzh700hmvWe2D2D GEnEb/H1cP6m1gtDTIfLkMfsVuv930RxCngO1J9eIXAU Current ocfs2_fill_super() uses one goto label "read_super_error" to handle all error cases. And with previous serial patches, the error handling should fork more branches to handle different error cases. This patch rewrite the error handling of ocfs2_fill_super. Signed-off-by: Heming Zhao Reviewed-by: Joseph Qi --- fs/ocfs2/super.c | 67 +++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 1cf18ed8cf1b..f7298816d8d9 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -989,28 +989,27 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) if (!ocfs2_parse_options(sb, data, &parsed_options, 0)) { status = -EINVAL; - goto read_super_error; + goto out; } /* probe for superblock */ status = ocfs2_sb_probe(sb, &bh, §or_size, &stats); if (status < 0) { mlog(ML_ERROR, "superblock probe failed!\n"); - goto read_super_error; + goto out; } status = ocfs2_initialize_super(sb, bh, sector_size, &stats); - osb = OCFS2_SB(sb); - if (status < 0) { - mlog_errno(status); - goto read_super_error; - } brelse(bh); bh = NULL; + if (status < 0) + goto out; + + osb = OCFS2_SB(sb); if (!ocfs2_check_set_options(sb, &parsed_options)) { status = -EINVAL; - goto read_super_error; + goto out_super; } osb->s_mount_opt = parsed_options.mount_opt; osb->s_atime_quantum = parsed_options.atime_quantum; @@ -1027,7 +1026,7 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) status = ocfs2_verify_userspace_stack(osb, &parsed_options); if (status) - goto read_super_error; + goto out_super; sb->s_magic = OCFS2_SUPER_MAGIC; @@ -1041,7 +1040,7 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) status = -EACCES; mlog(ML_ERROR, "Readonly device detected but readonly " "mount was not specified.\n"); - goto read_super_error; + goto out_super; } /* You should not be able to start a local heartbeat @@ -1050,7 +1049,7 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) status = -EROFS; mlog(ML_ERROR, "Local heartbeat specified on readonly " "device.\n"); - goto read_super_error; + goto out_super; } status = ocfs2_check_journals_nolocks(osb); @@ -1059,9 +1058,7 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) mlog(ML_ERROR, "Recovery required on readonly " "file system, but write access is " "unavailable.\n"); - else - mlog_errno(status); - goto read_super_error; + goto out_super; } ocfs2_set_ro_flag(osb, 1); @@ -1077,10 +1074,8 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) } status = ocfs2_verify_heartbeat(osb); - if (status < 0) { - mlog_errno(status); - goto read_super_error; - } + if (status < 0) + goto out_super; osb->osb_debug_root = debugfs_create_dir(osb->uuid_str, ocfs2_debugfs_root); @@ -1094,15 +1089,14 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) status = ocfs2_mount_volume(sb); if (status < 0) - goto read_super_error; + goto out_debugfs; if (osb->root_inode) inode = igrab(osb->root_inode); if (!inode) { status = -EIO; - mlog_errno(status); - goto read_super_error; + goto out_dismount; } osb->osb_dev_kset = kset_create_and_add(sb->s_id, NULL, @@ -1110,7 +1104,7 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) if (!osb->osb_dev_kset) { status = -ENOMEM; mlog(ML_ERROR, "Unable to create device kset %s.\n", sb->s_id); - goto read_super_error; + goto out_dismount; } /* Create filecheck sysfs related directories/files at @@ -1119,14 +1113,13 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) status = -ENOMEM; mlog(ML_ERROR, "Unable to create filecheck sysfs directory at " "/sys/fs/ocfs2/%s/filecheck.\n", sb->s_id); - goto read_super_error; + goto out_dismount; } root = d_make_root(inode); if (!root) { status = -ENOMEM; - mlog_errno(status); - goto read_super_error; + goto out_dismount; } sb->s_root = root; @@ -1178,17 +1171,21 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) return status; -read_super_error: - brelse(bh); - - if (status) - mlog_errno(status); +out_dismount: + atomic_set(&osb->vol_state, VOLUME_DISABLED); + wake_up(&osb->osb_mount_event); + ocfs2_dismount_volume(sb, 1); + goto out; - if (osb) { - atomic_set(&osb->vol_state, VOLUME_DISABLED); - wake_up(&osb->osb_mount_event); - ocfs2_dismount_volume(sb, 1); - } +out_debugfs: + debugfs_remove_recursive(osb->osb_debug_root); +out_super: + ocfs2_release_system_inodes(osb); + kfree(osb->recovery_map); + ocfs2_delete_osb(osb); + kfree(osb); +out: + mlog_errno(status); return status; }