Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp859518imu; Fri, 7 Dec 2018 10:00:50 -0800 (PST) X-Google-Smtp-Source: AFSGD/Uc6p6O5GPoG1OadZoOZcuPurEVrUiSwBrlnFVnoNbUSeWFY5DlTiOthNtSNEVuhiKLGAO+ X-Received: by 2002:a62:7e13:: with SMTP id z19mr3194920pfc.94.1544205650721; Fri, 07 Dec 2018 10:00:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544205650; cv=none; d=google.com; s=arc-20160816; b=fF04OAt0MnEFs9QPUutdK7wlm2vH2/bNob9i4WSUu11AWWWyrSz7Ynn/Nz7YZOaBbD n+Mtn+V5tYe0fPTFd+eTAfp/D7UieU0MLkOeIkLacgvmL/2/StxR4DK7GFVuPVaTKQ6C MDJIR9qc51eo7Ck3KvpSbXjDNHQ8vLB6xyyVjqQCc+FZUc6E+Cpg6Dad2tgGq57sFHMt aEGWIssyEjtHE6OHH6ftM6fh2kxktiTtv1SX6I9r+Nt0RZUfqbfaQ5Tg1DHoXmrzMn27 ZPYdmO46JLnE0MZKAmKVKMBOM3o7hA+P+TL2yoIi+Nc+m5+MdpSW2TQOMbNgth9mGneK +KRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=Mrc4fNMjsJkxboH94cXwMe2ZCKR/+xEoknnkR6RZ6Z8=; b=MKdJxdbhbM9VREyzOnetgYx/RSgxBGa8xfGIudUX8deMJyYQL0lUYeukHdDnz1rpfO ktHGv/bmmdiRR4FFT0ArO3tNk+DJRikhlcVEnv8Dv6A2VPwH221CIVv+XxToNigfY6oU u5mIUSDU0MHKME0w7E+rFXrwdM36TkTMuufpEgnHA0xTFaUGu3uj3z1lQkaQjJvgF6LJ 2ZAZY/MMUdc2oUySdQPjUS8SqvtDsGlB5AvUgf+Kx40dyhTTnpY1jW7nPZ6cEEf99ZTw Lpx/BVaGV9jTTADR5w8V8nGuriPAWujNfF1mz+/h37ZSkI/5hLHLq8dUzpCkXfsoJwbU a3BA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y2si3634171pfy.29.2018.12.07.10.00.34; Fri, 07 Dec 2018 10:00:50 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726260AbeLGR6P (ORCPT + 99 others); Fri, 7 Dec 2018 12:58:15 -0500 Received: from zeniv.linux.org.uk ([195.92.253.2]:60282 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726223AbeLGR6O (ORCPT ); Fri, 7 Dec 2018 12:58:14 -0500 Received: from viro by ZenIV.linux.org.uk with local (Exim 4.91 #2 (Red Hat Linux)) id 1gVKOC-0005l0-3C; Fri, 07 Dec 2018 17:58:12 +0000 Date: Fri, 7 Dec 2018 17:58:12 +0000 From: Al Viro To: Alexander Lochmann Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Jan Kara , Horst Schirmeier Subject: Re: [PATCH] Fix sync. in blkdev_write_iter() acessing i_flags Message-ID: <20181207175811.GZ2217@ZenIV.linux.org.uk> References: <4903939e-d3d6-b0c2-9c33-0fea0a61213c@tu-dortmund.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4903939e-d3d6-b0c2-9c33-0fea0a61213c@tu-dortmund.de> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Dec 07, 2018 at 05:10:15PM +0100, Alexander Lochmann wrote: > > inode.i_flags might be altered without proper > synchronisation when the inode belongs to devtmpfs. > blkdev_write_iter() starts writing via __generic_file_write_iter() > which sets S_NOSEC bit without any synchronisation. > The following stacktrace shows how to get there: > 13: entry_SYSENTER_32:460 > 12: do_fast_syscall_32:410 > 11: _static_cpu_has:146 > 10: do_syscall_32_irqs_on:322 > 09: SyS_pwrite64:636 > 08: SYSC_pwrite64:650 > 07: fdput:38 > 06: vfs_write:560 > 05: __vfs_write:512 > 04: new_sync_write:500 > 03: blkdev_write_iter:1977 > 02: __generic_file_write_iter:2897 > 01: file_remove_privs:1818 > 00: inode_has_no_xattr:3163 > If S_NOSEC is *not* set, i_rwsem is acquired around > __generic_file_write_iter(). > + * Ensure excl. access to i_flags in __generic_file_write_iter(). > + * Otherwise, it would race with chmod adding SUID bit. > + */ _What_ SUID bit? We are talking about a write to block device, for fsck sake...