Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752862AbdDOGyw (ORCPT ); Sat, 15 Apr 2017 02:54:52 -0400 Received: from mailrelay111.isp.belgacom.be ([195.238.20.138]:48149 "EHLO mailrelay111.isp.belgacom.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752425AbdDOGyr (ORCPT ); Sat, 15 Apr 2017 02:54:47 -0400 X-Belgacom-Dynamic: yes IronPort-PHdr: =?us-ascii?q?9a23=3AVT7gCxQ96M347ju58O54RYDUL9psv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa64ZBSN2/xhgRfzUJnB7Loc0qyN7PCmBDRIyK3CmU5BWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnY6Uy/yPgtt?= =?us-ascii?q?J+nzBpWaz4Huj7jzqNXvZFBhgjanbKw6CRKssQLX/p0fgpNnAqIwzAbZ53VPZu?= =?us-ascii?q?JazH9pIlTVmAzzsJSe5plmpgpZsfMo8YZuS6j2cr45Rr8QWDovOW4d/876sxTf?= =?us-ascii?q?CwGCsChPGl4KmwZFVlCWpCrxWY38526j7rJw?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2D/AQCjwvFY/xWMtFtdHAELAQUBgmpqJ?= =?us-ascii?q?4FFjm6RFAGVNYIPIYYDhABAGAEBAQEBAQEBAQEBaiiCMwQBHQEEgmkvIylxJBO?= =?us-ascii?q?KChGrBTqEEIc0hlKBXYsKgkoFnRuSWA2RRpQKHziBBUMdGIRaAYJQPjWHeYFPA?= =?us-ascii?q?QEB?= X-IPAS-Result: =?us-ascii?q?A2D/AQCjwvFY/xWMtFtdHAELAQUBgmpqJ4FFjm6RFAGVNYI?= =?us-ascii?q?PIYYDhABAGAEBAQEBAQEBAQEBaiiCMwQBHQEEgmkvIylxJBOKChGrBTqEEIc0h?= =?us-ascii?q?lKBXYsKgkoFnRuSWA2RRpQKHziBBUMdGIRaAYJQPjWHeYFPAQEB?= From: Fabian Frederick To: Andrew Morton Cc: Duane Griffin , Alexander Viro , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, fabf@skynet.be Subject: [PATCH 1/1 linux-next] fs/affs: bugfix: make symbolic links work again Date: Sat, 15 Apr 2017 08:54:36 +0200 Message-Id: <20170415065436.13518-1-fabf@skynet.be> X-Mailer: git-send-email 2.9.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1452 Lines: 53 AFFS symbolic links were broken since kernel 2.6.29 Problem was bisected to the following commit ebd09abbd969 ("vfs: ensure page symlinks are NUL-terminated") commit 035146851cfa ("vfs: introduce helper function to safely NUL-terminate symlinks") AFFS wasn't setting inode size when reading symbolic link from disk or creating a new one. Result was zero allocation in pagecache. ln -s file symlink ls -lrt file symlink -> This patch adds inode isize information on inode get and symbolic link addition. Signed-off-by: Fabian Frederick --- fs/affs/inode.c | 1 + fs/affs/namei.c | 1 + 2 files changed, 2 insertions(+) diff --git a/fs/affs/inode.c b/fs/affs/inode.c index abcc598..fd4ef3c 100644 --- a/fs/affs/inode.c +++ b/fs/affs/inode.c @@ -140,6 +140,7 @@ struct inode *affs_iget(struct super_block *sb, unsigned long ino) inode->i_fop = &affs_file_operations; break; case ST_SOFTLINK: + inode->i_size = strlen((char *)AFFS_HEAD(bh)->table); inode->i_mode |= S_IFLNK; inode_nohighmem(inode); inode->i_op = &affs_symlink_inode_operations; diff --git a/fs/affs/namei.c b/fs/affs/namei.c index 96dd1d0..b02da4d 100644 --- a/fs/affs/namei.c +++ b/fs/affs/namei.c @@ -365,6 +365,7 @@ affs_symlink(struct inode *dir, struct dentry *dentry, const char *symname) symname++; } *p = 0; + inode->i_size = i + 1; mark_buffer_dirty_inode(bh, inode); affs_brelse(bh); mark_inode_dirty(inode); -- 2.9.3