From mboxrd@z Thu Jan 1 00:00:00 1970 From: OGAWA Hirofumi Subject: Re: [patch 01/12] vfs: fix vfs_rename_dir for FS_RENAME_DOES_D_MOVE filesystems Date: Fri, 07 Aug 2009 10:36:48 +0900 Message-ID: <87skg42ymn.fsf@devron.myhome.or.jp> References: <200908062310.n76NA7BM012675@imap1.linux-foundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, mszeredi@suse.cz, hch@lst.de, mark.fasheh@oracle.com, sage@newdream.net, trond.myklebust@fys.uio.no, zach.brown@oracle.com To: akpm@linux-foundation.org Return-path: Received: from mail.parknet.ad.jp ([210.171.162.6]:51035 "EHLO mail.officemail.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752787AbZHGBg5 (ORCPT ); Thu, 6 Aug 2009 21:36:57 -0400 In-Reply-To: <200908062310.n76NA7BM012675@imap1.linux-foundation.org> (akpm@linux-foundation.org's message of "Thu, 06 Aug 2009 16:10:07 -0700") Sender: linux-fsdevel-owner@vger.kernel.org List-ID: akpm@linux-foundation.org writes: > diff -puN fs/namei.c~vfs-fix-vfs_rename_dir-for-fs_rename_does_d_move-filesystems fs/namei.c > --- a/fs/namei.c~vfs-fix-vfs_rename_dir-for-fs_rename_does_d_move-filesystems > +++ a/fs/namei.c > @@ -2595,8 +2595,6 @@ static int vfs_rename_dir(struct inode * > if (!error) > target->i_flags |= S_DEAD; > mutex_unlock(&target->i_mutex); > - if (d_unhashed(new_dentry)) > - d_rehash(new_dentry); > dput(new_dentry); > } > if (!error) It breaks the error handling? I.e. if (target) { mutex_lock(&target->i_mutex); dentry_unhash(new_dentry); <= unhash } if (d_mountpoint(old_dentry)||d_mountpoint(new_dentry)) error = -EBUSY; <= error else error = old_dir->i_op->rename(); <= or return error if (target) { if (!error) target->i_flags |= S_DEAD; mutex_unlock(&target->i_mutex); <= doesn't rehash dput(new_dentry); } Thanks. -- OGAWA Hirofumi