From patchwork Mon May 20 13:50:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 13668339 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F6EE136648 for ; Mon, 20 May 2024 13:50:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716213060; cv=none; b=SaEyIVYZ+hbSgGZQIA+FVzQlJX4yTQvJf7iWc54tu5BzXxEgyjl9Bv3xwKF6FZaPH6dGtaB68dZcQ3vCrS1ZpuTN7NCNo6wyhd5X8gNPY5t0V1uEEjAe0HJP7v/ilXaes9pCGsb0oktuZ5Wuf88lKhxnr/3QZL2PCBqHiVQ+ro4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716213060; c=relaxed/simple; bh=cFCwoA4cD2JfC5pVpqsbe4smtKnwFOnWnBQcSQC2c7w=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=dZkIEYyLI1acz4uBqpickQSvXpSb2iOMxpUiHnxfZkVhS0MMS8R2FLWk6FkyNXkmVnKE7vMWInubzox35A+EjC0zYN0BQNLvKXe08Sb9U6zTCM0smsIZjKb5/+VYpsRA6rLm+s59fy7DAL7sS9OqSIXDs/ZUK1TvEaA2hEUT8hQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=n7Ooqmgw; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=paDS2/J1; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=n7Ooqmgw; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=paDS2/J1; arc=none smtp.client-ip=195.135.223.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="n7Ooqmgw"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="paDS2/J1"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="n7Ooqmgw"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="paDS2/J1" Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id A226033B91; Mon, 20 May 2024 13:50:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1716213056; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5T5JyYFIRKQPqz/PEmY13J+stVCnj8S6rcUKYmlBl3M=; b=n7Ooqmgw1EsE35T5Rn178/NRpUOXgmxaBTSiJDAN+PLRc5Jf2Pj6/Ml7v61PZSwbCShWHs nTPGNqor5THMmgauy0hvvdDZosact4HHFcs75K+Wggoa5ndJ8PkUj4tWfmkbWtJVbIQKpR Mu9yN5Hn+ZOwmdUAuPUptDBiYc3qdI8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1716213056; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5T5JyYFIRKQPqz/PEmY13J+stVCnj8S6rcUKYmlBl3M=; b=paDS2/J1qL7o/8zMebW21p6UXxcQLAu6zRnVm1zXYYIAG1FnJ3QYopE9ybdGIbzwIEj+tT 5IsrcEZtoUo9kkBA== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=n7Ooqmgw; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="paDS2/J1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1716213056; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5T5JyYFIRKQPqz/PEmY13J+stVCnj8S6rcUKYmlBl3M=; b=n7Ooqmgw1EsE35T5Rn178/NRpUOXgmxaBTSiJDAN+PLRc5Jf2Pj6/Ml7v61PZSwbCShWHs nTPGNqor5THMmgauy0hvvdDZosact4HHFcs75K+Wggoa5ndJ8PkUj4tWfmkbWtJVbIQKpR Mu9yN5Hn+ZOwmdUAuPUptDBiYc3qdI8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1716213056; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5T5JyYFIRKQPqz/PEmY13J+stVCnj8S6rcUKYmlBl3M=; b=paDS2/J1qL7o/8zMebW21p6UXxcQLAu6zRnVm1zXYYIAG1FnJ3QYopE9ybdGIbzwIEj+tT 5IsrcEZtoUo9kkBA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 946FB13A73; Mon, 20 May 2024 13:50:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 79HjI0BVS2awCwAAD6G6ig (envelope-from ); Mon, 20 May 2024 13:50:56 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 3F123A01D4; Mon, 20 May 2024 15:50:56 +0200 (CEST) From: Jan Kara To: Cc: Jan Kara Subject: [PATCH 1/2] udf: Drop pointless IS_IMMUTABLE and IS_APPEND check Date: Mon, 20 May 2024 15:50:49 +0200 Message-Id: <20240520135056.788-1-jack@suse.cz> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240520134853.21305-1-jack@suse.cz> References: <20240520134853.21305-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=869; i=jack@suse.cz; h=from:subject; bh=cFCwoA4cD2JfC5pVpqsbe4smtKnwFOnWnBQcSQC2c7w=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBmS1U4k3RebhU/SoN6MzOU0LFrUE2PRHmp/83ON+bQ gR9JM2GJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCZktVOAAKCRCcnaoHP2RA2VBhCA DLmp2LIf0HEKx/pfy0qeNK74weKwCNc4pFujD/EJLDacEyqrsl3dr+zYhUlipp7X3MVrfVMMhwBZEe a0m7NlKNI0SjQqJqg08pmluWhT6cdSQWJsWZYrmkayd4oPDsSfKsENsaq9PdClTg2DJy11MQZNMpYf 9DaM++isD71nPCUIbzB1K4nL/6Xb5gaITdMGvzBnzTQeEz03Vz5JnIj3/Fm6KZ5/oKAhCXkJIbm8V/ Kl/hEyI2Fro0a82A/DFmxWImUy7wNOzCEIvnSlHLeFvjTFKOFTCtEN+OejUlaYsFSyMiWYrCSDbkX9 NNpG5TK9WkWhNdWoTieXiRdoEoD2M4 X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Flag: NO X-Spam-Score: -2.65 X-Rspamd-Action: no action X-Rspamd-Queue-Id: A226033B91 X-Spam-Level: X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-2.65 / 50.00]; BAYES_HAM(-2.64)[98.40%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-0.999]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; ARC_NA(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; RCVD_COUNT_THREE(0.00)[3]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_SOME(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; TO_MATCH_ENVRCPT_ALL(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_TLS_LAST(0.00)[]; DWL_DNSWL_BLOCKED(0.00)[suse.cz:dkim]; RCVD_VIA_SMTP_AUTH(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; DKIM_TRACE(0.00)[suse.cz:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.cz:dkim,suse.cz:email] udf_setsize() checks for IS_IMMUTABLE and IS_APPEND flags. This is however pointless as UDF does not have capability to store these flags and never allows to set them. Furthermore this is the only place in UDF code that was actually checking these flags. Remove the pointless check. Signed-off-by: Jan Kara --- fs/udf/inode.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 2f831a3a91af..04b0e62cf73f 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c @@ -1248,8 +1248,6 @@ int udf_setsize(struct inode *inode, loff_t newsize) if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode))) return -EINVAL; - if (IS_APPEND(inode) || IS_IMMUTABLE(inode)) - return -EPERM; filemap_invalidate_lock(inode->i_mapping); iinfo = UDF_I(inode); From patchwork Mon May 20 13:50:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 13668340 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A8CB313665B for ; Mon, 20 May 2024 13:50:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716213060; cv=none; b=HbDA9c5NU+CImGZRAljVvrGxYQM290IZuNcwgfyIFXeB8zHPek7Pc9pLdTFoMD6B8hCA9DMOYlB71CCXKqBFX1zUHb+9RkRQzQ/qCDpHKAMRAyASMb1AX65rzawwkoLxgNjWnVYMje+/cfCBh1dhE4bUxYh7vif1UWS1TnSxQe4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716213060; c=relaxed/simple; bh=ued3WwZ+CCc+PuSGNf/JJirStUHAe5/Lr0Jnhpco/JA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=BF3FaDHM87Unrsa1iRwFrO5SBF0slkIulPgRdTFej00NXlii6qegFKE1RKgM8WmjPxjCLm3NJ6Fg1KXDwKXhBHE28WLAgRqbxB2iuMfn+CugEhKLEWeJ74uRDcgM1BTXLejTAI2NnmY4hPJCuH+TXKRPldD8vueh0Ah9lCR7G/M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz; spf=pass smtp.mailfrom=suse.cz; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=ynM9F8wX; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=+xwYiz5b; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b=ynM9F8wX; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b=+xwYiz5b; arc=none smtp.client-ip=195.135.223.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.cz Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="ynM9F8wX"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="+xwYiz5b"; dkim=pass (1024-bit key) header.d=suse.cz header.i=@suse.cz header.b="ynM9F8wX"; dkim=permerror (0-bit key) header.d=suse.cz header.i=@suse.cz header.b="+xwYiz5b" Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 9EB7C33B8B; Mon, 20 May 2024 13:50:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1716213056; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MXAKMerWnn5qllMTnXsyzv71HgwvKlGqbn8wuzE6MFA=; b=ynM9F8wXuzY94yEmgwwLaLzKGRLAw+RgLCMT1deEKo16Fi65OGNm1XAr9g+as60NAJtzD4 Gu9Eq98JbMeqssA5vk8yfQiwj/lcqSgf0ZkFkBiDAfECkjUsB+4qRSrB6u6xSjoylTiUdR oNRZE4JzW3RnJprgiJ68DAxmcQrLJtk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1716213056; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MXAKMerWnn5qllMTnXsyzv71HgwvKlGqbn8wuzE6MFA=; b=+xwYiz5b+tE+r9edvV2a92lixxVBJebLVI6PwRcOyOfr+mZGWsntUM8cFTTgRDqaKLhpFL tDRUaccSmvTBejDA== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=ynM9F8wX; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=+xwYiz5b DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1716213056; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MXAKMerWnn5qllMTnXsyzv71HgwvKlGqbn8wuzE6MFA=; b=ynM9F8wXuzY94yEmgwwLaLzKGRLAw+RgLCMT1deEKo16Fi65OGNm1XAr9g+as60NAJtzD4 Gu9Eq98JbMeqssA5vk8yfQiwj/lcqSgf0ZkFkBiDAfECkjUsB+4qRSrB6u6xSjoylTiUdR oNRZE4JzW3RnJprgiJ68DAxmcQrLJtk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1716213056; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MXAKMerWnn5qllMTnXsyzv71HgwvKlGqbn8wuzE6MFA=; b=+xwYiz5b+tE+r9edvV2a92lixxVBJebLVI6PwRcOyOfr+mZGWsntUM8cFTTgRDqaKLhpFL tDRUaccSmvTBejDA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 9054613A6B; Mon, 20 May 2024 13:50:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id L6rRIkBVS2asCwAAD6G6ig (envelope-from ); Mon, 20 May 2024 13:50:56 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 4651DA08DA; Mon, 20 May 2024 15:50:56 +0200 (CEST) From: Jan Kara To: Cc: Jan Kara , syzbot+0333a6f4b88bcd68a62f@syzkaller.appspotmail.com Subject: [PATCH 2/2] udf: Fix lock ordering in udf_evict_inode() Date: Mon, 20 May 2024 15:50:50 +0200 Message-Id: <20240520135056.788-2-jack@suse.cz> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240520134853.21305-1-jack@suse.cz> References: <20240520134853.21305-1-jack@suse.cz> Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3105; i=jack@suse.cz; h=from:subject; bh=ued3WwZ+CCc+PuSGNf/JJirStUHAe5/Lr0Jnhpco/JA=; b=owEBbQGS/pANAwAIAZydqgc/ZEDZAcsmYgBmS1U5d/rMM/bwX9OCRQTW1gPub4fJJJyy9pNhPbZB FiFEEPuJATMEAAEIAB0WIQSrWdEr1p4yirVVKBycnaoHP2RA2QUCZktVOQAKCRCcnaoHP2RA2RWuCA DrtFl6lSRur80QOLGjlnnaomah6JF1zvrCC0AtfTd7K8do3niHXdZV2RIy4QsrAhAV2Ar3S2DBS7er NhdpGh/gSuVPmw+hRrYsSN4RtL+hspgggOEA47ofOI3XQxI4HPGcdV/rNGsPKVrVWso7MKfEIA/gBD 7F3vVfjSG9xu4qGBD1Dx0r9N9tjgsXGnfEMvAdJomWqtzJcLAqUQv8PZTQFQrBe47k2QAP6qviBL1W FIRDGwN+S9zk1m3o4YnF3m+tjCWVPkbaks4vVXiqZEpCuA4+kIPQBk+uv8d/BFEFPVFPPA1oPhH7zn dmqlRtwBeHH9EutAB9KzRTmDaOwSRR X-Developer-Key: i=jack@suse.cz; a=openpgp; fpr=93C6099A142276A28BBE35D815BC833443038D8C X-Spam-Level: X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-0.999]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; TO_DN_SOME(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TAGGED_RCPT(0.00)[0333a6f4b88bcd68a62f]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; DWL_DNSWL_BLOCKED(0.00)[suse.cz:dkim]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; DKIM_TRACE(0.00)[suse.cz:+]; RCPT_COUNT_THREE(0.00)[3]; FROM_HAS_DN(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.cz:dkim,suse.cz:email] X-Rspamd-Action: no action X-Rspamd-Queue-Id: 9EB7C33B8B X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spam-Flag: NO X-Spam-Score: -3.01 udf_evict_inode() calls udf_setsize() to truncate deleted inode. However inode deletion through udf_evict_inode() can happen from inode reclaim context and udf_setsize() grabs mapping->invalidate_lock which isn't generally safe to acquire from fs reclaim context since we allocate pages under mapping->invalidate_lock for example in a page fault path. This is however not a real deadlock possibility as by the time udf_evict_inode() is called, nobody can be accessing the inode, even less work with its page cache. So this is just a lockdep triggering false positive. Fix the problem by moving mapping->invalidate_lock locking outsize of udf_setsize() into udf_setattr() as grabbing mapping->invalidate_lock from udf_evict_inode() is pointless. Reported-by: syzbot+0333a6f4b88bcd68a62f@syzkaller.appspotmail.com Fixes: b9a861fd527a ("udf: Protect truncate and file type conversion with invalidate_lock") Signed-off-by: Jan Kara --- fs/udf/file.c | 2 ++ fs/udf/inode.c | 11 ++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/fs/udf/file.c b/fs/udf/file.c index 0ceac4b5937c..94daaaf76f71 100644 --- a/fs/udf/file.c +++ b/fs/udf/file.c @@ -232,7 +232,9 @@ static int udf_setattr(struct mnt_idmap *idmap, struct dentry *dentry, if ((attr->ia_valid & ATTR_SIZE) && attr->ia_size != i_size_read(inode)) { + filemap_invalidate_lock(inode->i_mapping); error = udf_setsize(inode, attr->ia_size); + filemap_invalidate_unlock(inode->i_mapping); if (error) return error; } diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 04b0e62cf73f..87002ecd79df 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c @@ -1249,7 +1249,6 @@ int udf_setsize(struct inode *inode, loff_t newsize) S_ISLNK(inode->i_mode))) return -EINVAL; - filemap_invalidate_lock(inode->i_mapping); iinfo = UDF_I(inode); if (newsize > inode->i_size) { if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { @@ -1262,11 +1261,11 @@ int udf_setsize(struct inode *inode, loff_t newsize) } err = udf_expand_file_adinicb(inode); if (err) - goto out_unlock; + return err; } err = udf_extend_file(inode, newsize); if (err) - goto out_unlock; + return err; set_size: truncate_setsize(inode, newsize); } else { @@ -1284,14 +1283,14 @@ int udf_setsize(struct inode *inode, loff_t newsize) err = block_truncate_page(inode->i_mapping, newsize, udf_get_block); if (err) - goto out_unlock; + return err; truncate_setsize(inode, newsize); down_write(&iinfo->i_data_sem); udf_clear_extent_cache(inode); err = udf_truncate_extents(inode); up_write(&iinfo->i_data_sem); if (err) - goto out_unlock; + return err; } update_time: inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode)); @@ -1299,8 +1298,6 @@ int udf_setsize(struct inode *inode, loff_t newsize) udf_sync_inode(inode); else mark_inode_dirty(inode); -out_unlock: - filemap_invalidate_unlock(inode->i_mapping); return err; }