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 EEA16D711B0 for ; Wed, 20 Nov 2024 15:23:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 58BA16B0083; Wed, 20 Nov 2024 10:23:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 53BA46B0085; Wed, 20 Nov 2024 10:23:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 40D8F6B0089; Wed, 20 Nov 2024 10:23:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 21A0B6B0083 for ; Wed, 20 Nov 2024 10:23:51 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9C04280DB8 for ; Wed, 20 Nov 2024 15:23:50 +0000 (UTC) X-FDA: 82806841908.24.58290EA Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf29.hostedemail.com (Postfix) with ESMTP id 2B34B120014 for ; Wed, 20 Nov 2024 15:22:37 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=vXvMKbuJ; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=HdAhwtR9; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=0b3zeo0j; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=B4SowmnV; spf=pass (imf29.hostedemail.com: domain of jack@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=jack@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732116136; 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:in-reply-to:references:references:dkim-signature; bh=rbLMuMC2yYdzj3nG2I+d54+tseu9D8HIg5szJY41NA4=; b=hTSWkmY5tmnHAc2vGdQg1dDow3Wy/8COu2ZjF4V1fQkg2bzLUrHIzP7amaPdt+upeg8vGh 7TyjPxYXrXjkyRKMO9sMKPDlU0VZr054YcQAtu3qMc1krQfCvzhzwyB/T0GCQJ3J0UiuTI 63A1CFnqjbxv/5mBLdG7tQaQJF6KTcM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732116136; a=rsa-sha256; cv=none; b=Va4OylxBhvl59cURvAVXQ+vcmaEMAVpZbCCWnXimW2uJ5MKN3NPRVwmFDQO9kaGlI12JQp gIM90TK+Vou15tyPgWOT3ORjUq8ffAdArQzkUtBer/SGTQcDApOfoSGPfXzKZCtHZmt7ck MrCALcW3e+HT46efr9LTJ/uYTzmR/zE= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=vXvMKbuJ; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=HdAhwtR9; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=0b3zeo0j; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=B4SowmnV; spf=pass (imf29.hostedemail.com: domain of jack@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=jack@suse.cz; dmarc=none Received: from imap1.dmz-prg2.suse.org (unknown [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-out2.suse.de (Postfix) with ESMTPS id 5F66B1F79B; Wed, 20 Nov 2024 15:23:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1732116226; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=rbLMuMC2yYdzj3nG2I+d54+tseu9D8HIg5szJY41NA4=; b=vXvMKbuJ8/tKiFmOFejVn6aU5sqs95QkUwnPnUMV3Z4UZBsxxPYAoJrIrt56XH/efZHl3h jI545fB+xBCTJC//WtokwslS4wBZMDfYEnO+u1hmrHDfr+QkavHbd9pbWlLwrzeUHB0Y0v nvB28liZ6VQrUXH0fW8+daCwskjVcuc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1732116226; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=rbLMuMC2yYdzj3nG2I+d54+tseu9D8HIg5szJY41NA4=; b=HdAhwtR9MU3lDSTEQRB2OMAGN7JgHjx2Abe/4h/txkI83A6JxEtlfXQH8ZMOI+IWeeMt3b VZ6zBdLye5p+ciDA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1732116225; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=rbLMuMC2yYdzj3nG2I+d54+tseu9D8HIg5szJY41NA4=; b=0b3zeo0j+VtafXLc0T225LA1IjNvqKTPZ/CRcJikFUHJ5iu3wAjsEAc/P5ZDgC+9ahd9B5 /D+4aYmI3snW2tlMNaAV9xjJJjneYf1nz+lpItqQAHsE1/K+CXkRwKxfXzdEDovsGV74Qg ku/qH818rb5j37Zp7MosU5oIZ1guFSc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1732116225; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=rbLMuMC2yYdzj3nG2I+d54+tseu9D8HIg5szJY41NA4=; b=B4SowmnVqbIass1asF76dEX9d8zqNh3zp6d6fd6iTT36FOV6OlKGA/cqGiiD3+t+32YUJ7 eIjeek0E4JGTxWBA== 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 4FA5213297; Wed, 20 Nov 2024 15:23:45 +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 js5nEwH/PWfzQgAAD6G6ig (envelope-from ); Wed, 20 Nov 2024 15:23:45 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id E5D1AA08A2; Wed, 20 Nov 2024 16:23:40 +0100 (CET) Date: Wed, 20 Nov 2024 16:23:40 +0100 From: Jan Kara To: Josef Bacik Cc: kernel-team@fb.com, linux-fsdevel@vger.kernel.org, jack@suse.cz, amir73il@gmail.com, brauner@kernel.org, torvalds@linux-foundation.org, viro@zeniv.linux.org.uk, linux-xfs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-mm@kvack.org, linux-ext4@vger.kernel.org Subject: Re: [PATCH v8 09/19] fsnotify: generate pre-content permission event on truncate Message-ID: <20241120152340.gu7edmtm2j3lmxoy@quack3> References: <23af8201db6ac2efdea94f09ab067d81ba5de7a7.1731684329.git.josef@toxicpanda.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <23af8201db6ac2efdea94f09ab067d81ba5de7a7.1731684329.git.josef@toxicpanda.com> X-Rspamd-Server: rspam10 X-Stat-Signature: fx3xropq7uwb67sk8h1sdebuzujwucku X-Rspamd-Queue-Id: 2B34B120014 X-Rspam-User: X-HE-Tag: 1732116157-830200 X-HE-Meta: U2FsdGVkX18c4VMiGdvEnMw9c3gdQ7oE5D8agOtgEz67rPVFgZWx+LSNoYSK7lNF7CMOYwMysQVu7bUG3iQn+ZqVr8Ao/JTg7ScXJYgyFRzt8q8DZ56nB52chkzxdpku55BbGqQ+ixoITziORIaZZZAAbxHBJuuTHvL0NHM3fclcXFyeV38FZqDVrbkITg/c0Hx6h7bgHjdKzet8CqWOOtICmOOUO+6307JjZX+zZUlaUpE0z0XXwkY9VlKoG5zs6P12PlE7dInB9kkIroHGa7jwMBYFBnJnX5ZWXaX7cYcMti9Ey5Gyq6wznqU+/C39bm+YY75P9hodTWNNi8UD6AiXfoWw5qXfj3LUiMyZN1W6ebZSSto2g6TdwyuuvWZh4xh8dkRpWuciWoZP6MjLdqSxDlETt5ZSYX6mUD9mDSy6HoZlkvKDJnlsmMyAVSM6UdaY7gpbW/UZRyTB3inT3NnW69gT3kw/a3FdqWbqIy+ESaNaNxeg5aKPUXTT2g0PN8ZPo9q7T0XtavWYI2OpFGDNKCt4yfOJwfxlNMAd6rEJbcg5TPE/1tivHvSRiP1tPwj5wISDuepksp90C8W0ZCcij1XbLXMPRk624cEt32sn4cWUqJH4ps5TqPJ2BrwWdOzlgXGQmqrA8GH294bRzr9PqKpvqn1ZztOE6JdyxHfRv5MKub0fsIyXDhntSFx6/gX/enin+YdBJS8WkylFdP4uK+lFRWRXQcQGKAzcTqdtyaumVQ/a0eP/rt7k1wfsN4CnSUxPdW16SYYovG0ATuCYm4SzZVfvcyEQN5tmJrdJWJKwIwDIguvklECkUx5Ed7Ccf7gIZyeg2Q/m5OW+NDYj2MuUxk5pwE7TFhWN6D8Ai+2UObNe5NluwVBl6K8jhKnAEXzoywN5QGDXZqQHjF79ty9+MF7129Vqk6LMDD1Q0+EAeAluWEoc3XuZ9byZfpvpKdFKO/fAt8nNv3u zWCVdwE1 6d9aqvqc6sqaT3Jg3NfZO6nmdyCTZZHqMSCtRIfCCaMC5kbDnXonr0eI8h1AGyOciH5n/y0wGC4tL+TCDuhVmZZn38MbkgCoqimXrtpCled0I1pNL5mYGCDUHZM+8cvJvQehW1Csw8taKWl6QaM38d0aQawFChkdNUiySGw3pQS3KMP5VvxQhrjKwUlYbsWzPffzJzKyDmi5lYy1IWcPrjvZndoJbBMqS/2jQg2wvRe3NKgh5O/BrB61zCWNuMoIn7RrlKLm4zfXqPaiks8i5Vqg5M9samsYikMkF/8nzO6SRzRPOWD52i3+IYOOxifFQUpOhEmkOcRqnaMTFJEE55BHcSYcVOQLhdiKQNjEUQMzqr14= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000040, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri 15-11-24 10:30:22, Josef Bacik wrote: > From: Amir Goldstein > > Generate FS_PRE_ACCESS event before truncate, without sb_writers held. > > Move the security hooks also before sb_start_write() to conform with > other security hooks (e.g. in write, fallocate). > > The event will have a range info of the page surrounding the new size > to provide an opportunity to fill the conetnt at the end of file before > truncating to non-page aligned size. > > Signed-off-by: Amir Goldstein I was thinking about this. One small issue is that similarly as the filesystems may do RMW of tail page during truncate, they will do RMW of head & tail pages on hole punch or zero range so we should have some strategically sprinkled fsnotify_truncate_perm() calls there as well. That's easy enough to fix. But there's another problem which I'm more worried about: If we have a file 64k large, user punches 12k..20k and then does read for 0..64k, then how does HSM daemon in userspace know what data to fill in? When we'll have modify pre-content event, daemon can watch it and since punch will send modify for 12k-20k, the daemon knows the local (empty) page cache is the source of truth. But without modify event this is just a recipe for data corruption AFAICT. So it seems the current setting with access pre-content event has only chance to work reliably in read-only mode? So we should probably refuse writeable open if file is being watched for pre-content events and similarly refuse truncate? Honza -- Jan Kara SUSE Labs, CR