Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3493950imm; Tue, 29 May 2018 08:10:34 -0700 (PDT) X-Google-Smtp-Source: AB8JxZq4WJNf6BvPmuZRIwrSPwg3mn8R+oS2WQHDPwZ87nBX7ITUQklXB2HtYlwK8lejvJw9k6SE X-Received: by 2002:a62:4cca:: with SMTP id e71-v6mr17546481pfj.171.1527606634488; Tue, 29 May 2018 08:10:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527606634; cv=none; d=google.com; s=arc-20160816; b=LiTv7qiD16N2KmHwEIRqUOYcUcxMsWUy5NYjBK2JrhnHOQmjrFSZX3988sAhjxOBT6 YgLUJh0hhFwZ808y0hIg5/F2alA7Jqo0/X/IrYd2dETpldOp28j7UTh/fXDKvYmH8cxb af8IizHUs8W2Z+3673ppNtQv3JO5dcuA2xQTTdMQmKBiw/MQznDi6JDvgqFaFvNj2lvS ssErsq2YeM6A5y9j7krcyQWGbXqZTcM5RQ0w0Am5aONe11+BdteY49YD4N/IHVlRkOPb OX/q2h1F379yFrmVSyEoAt8BF+ACkqgln5DXRiAvXtUKr1LKz+wqT0KheQ6mOU20XH1r 8/Yg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=RGIJZSifsy2xeQFppSvaFIOe9Z45/3FzZqM+RWq8UFE=; b=K7wmHv8dvyb9spqdxy9rm5jAbuhLXD2KG0TXArlIIHNKhfivBqCW29J4awHsPGyzbD w5DNEX+W4xZIhb6l8pu9i9ujE9/HNRTCuvL+0pLfogBs0DLs3mFhOUKYSndjciYeM20m ohfIicOBQfK7O70cz9w623YoTpo00tBfMEkoV3nGGCOYQe4JbHTK6cCu8Guu/aO9JGRP n+GuAKxYqxDY8bX80ku6heJzsv97JcqLnHTRcN2wWMPeBJ4sY+IWHjCWZB0y7mbGeJUu LI92Xmsq8nvmfn0QeEl1npXxvapCqSWtzdiwsKx+0sxvinVlfz4mlm83vr0Z+fl+RSdu z6ug== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n79-v6si32328303pfj.152.2018.05.29.08.10.20; Tue, 29 May 2018 08:10:34 -0700 (PDT) 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936762AbeE2PJL (ORCPT + 99 others); Tue, 29 May 2018 11:09:11 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:52281 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935821AbeE2OoW (ORCPT ); Tue, 29 May 2018 10:44:22 -0400 Received: by mail-wm0-f65.google.com with SMTP id 18-v6so35804289wml.2 for ; Tue, 29 May 2018 07:44:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=RGIJZSifsy2xeQFppSvaFIOe9Z45/3FzZqM+RWq8UFE=; b=TgE2AwS9Np1uIP1n+NWLTH9CO04vGl1E/2A1CZEGVBfe8E1z4cYPdzm9U8yFUPAMAD M/OWGiidY6NHQzkizQS9zn4Z2IMp6XBqiIF0Eui2AEwHMluyeCBfwC3iigz/K4SzDEHj QXX6QITgOjkne1QZIAzxz3ouJpPi0ratMbfAk2tf4ssFG7xjkXIHwuigZC3cq1Om3MyW lgDTubInI2j3vjDRnz2r7dX16VD9iKWFfleDqhhTniXcrITJPlc5e7dXJm36tSQKKghH XFgp21cY1coC6hzs9H2Hlgd+oIFJqGFytOZ9+X80PqepkXqq4LDuZN2D7wSgCHU7hIjL MrwA== X-Gm-Message-State: ALKqPwcqYuyn9Qs8HedFwrRvmcjTTRYMtX0V080gguxd+0owj7GrBnQJ /nhHZK1qfq5XwixOM4Mroziueg== X-Received: by 2002:a1c:d1c2:: with SMTP id i185-v6mr12716200wmg.10.1527605060907; Tue, 29 May 2018 07:44:20 -0700 (PDT) Received: from veci.piliscsaba.redhat.com (catv-176-63-54-97.catv.broadband.hu. [176.63.54.97]) by smtp.gmail.com with ESMTPSA id t198-v6sm18834422wmt.23.2018.05.29.07.44.19 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 29 May 2018 07:44:20 -0700 (PDT) From: Miklos Szeredi To: linux-unionfs@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 32/39] vfs: fix freeze protection in mnt_want_write_file() for overlayfs Date: Tue, 29 May 2018 16:43:32 +0200 Message-Id: <20180529144339.16538-33-mszeredi@redhat.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180529144339.16538-1-mszeredi@redhat.com> References: <20180529144339.16538-1-mszeredi@redhat.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The underlying real file used by overlayfs still contains the overlay path. This results in mnt_want_write_file() calls by the filesystem getting freeze protection on the wrong inode (the overlayfs one instead of the real one). Fix by using file_inode(file)->i_sb instead of file->f_path.mnt->mnt_sb. Reported-by: Amir Goldstein Signed-off-by: Miklos Szeredi --- fs/namespace.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/namespace.c b/fs/namespace.c index 5286c5313e67..0d9023a9af4f 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -441,10 +441,10 @@ int mnt_want_write_file(struct file *file) { int ret; - sb_start_write(file->f_path.mnt->mnt_sb); + sb_start_write(file_inode(file)->i_sb); ret = __mnt_want_write_file(file); if (ret) - sb_end_write(file->f_path.mnt->mnt_sb); + sb_end_write(file_inode(file)->i_sb); return ret; } EXPORT_SYMBOL_GPL(mnt_want_write_file); @@ -486,7 +486,8 @@ void __mnt_drop_write_file(struct file *file) void mnt_drop_write_file(struct file *file) { - mnt_drop_write(file->f_path.mnt); + __mnt_drop_write_file(file); + sb_end_write(file_inode(file)->i_sb); } EXPORT_SYMBOL(mnt_drop_write_file); -- 2.14.3