Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753294AbcCBOR1 (ORCPT ); Wed, 2 Mar 2016 09:17:27 -0500 Received: from mail-oi0-f50.google.com ([209.85.218.50]:34057 "EHLO mail-oi0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751671AbcCBORZ (ORCPT ); Wed, 2 Mar 2016 09:17:25 -0500 MIME-Version: 1.0 X-Originating-IP: [217.173.44.24] In-Reply-To: <1454341012-15062-1-git-send-email-rui.y.wang@intel.com> References: <1454341012-15062-1-git-send-email-rui.y.wang@intel.com> Date: Wed, 2 Mar 2016 15:17:24 +0100 Message-ID: Subject: Re: [PATCH] ovl: fix getcwd() failure after unsuccessful rmdir From: Miklos Szeredi To: Rui Wang Cc: Konstantin Khlebnikov , Al Viro , "linux-unionfs@vger.kernel.org" , Kernel Mailing List , Linux-Fsdevel , Vivek Goyal Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1223 Lines: 27 On Mon, Feb 1, 2016 at 4:36 PM, Rui Wang wrote: > On Sat, Jan 30, 2016 5:44 PM Konstantin Khlebnikov wrote: >> On Fri, Jan 8, 2016 at 6:09 PM, Rui Wang wrote: >> ovl_remove_upper() should do d_drop() only after it successfully >> removes the dir, otherwise a subsequent getcwd() system call will >> fail, breaking userspace programs. >> >> This is to fix: https://bugzilla.kernel.org/show_bug.cgi?id=110491 >> >> Signed-off-by: Rui Wang >> >> Reviewed-by: Konstantin Khlebnikov >> >> The same problem also in ovl_remove_and_whiteout() - when we remove >> non-pure dentry. It checks that directory isn't empty before, but >> I'm sure that vfs_rename which exchanges dentry and whiteout could >> fail for some reason and we'll end with unhashed dentry when nothing >> actually has been changed. > > Yes I had the same feeling. There's a "goto out_d_drop" which causes > d_drop() to be called if ovl_do_rename() fails. but I wasn't able to > find a way to reproduce this problem, so I only fixed the problem > described in bug110491. It's what I could reliably test. Thanks for the patch. Added to the queue. Miklos