From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Jaegeuk Kim To: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Cc: Jaegeuk Kim Subject: [PATCH 6/7] f2fs: fix deadlock in add_link failure Date: Wed, 8 Jun 2016 10:24:43 -0700 Message-Id: <20160608172444.60371-6-jaegeuk@kernel.org> In-Reply-To: <20160608172444.60371-1-jaegeuk@kernel.org> References: <20160608172444.60371-1-jaegeuk@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: mkdir sync_dirty_inode - init_inode_metadata - lock_page(node) - make_empty_dir - filemap_fdatawrite() - do_writepages - lock_page(data) - write_page(data) - lock_page(node) - f2fs_init_acl - error - truncate_inode_pages - lock_page(data) So, we don't need to truncate data pages in this error case, which will be done by f2fs_evict_inode. Signed-off-by: Jaegeuk Kim --- fs/f2fs/dir.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index f6ab3c2..4864824 100644 --- a/fs/f2fs/dir.c +++ b/fs/f2fs/dir.c @@ -450,9 +450,6 @@ struct page *init_inode_metadata(struct inode *inode, struct inode *dir, return page; put_error: - /* truncate empty dir pages */ - truncate_inode_pages(&inode->i_data, 0); - clear_nlink(inode); update_inode(inode, page); f2fs_put_page(page, 1); -- 2.8.3