On Thu, Jan 14, 2016 at 02:22:51PM +0100, Tomeu Vizoso wrote: > On 9 December 2015 at 06:34, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > From: Al Viro <viro@xxxxxxxxxxxxxxxxxx> > > > > kmap() in page_follow_link_light() needed to go - allowing to hold > > an arbitrary number of kmaps for long is a great way to deadlocking > > the system. > > > > new helper (inode_nohighmem(inode)) needs to be used for pagecache > > symlinks inodes; done for all in-tree cases. page_follow_link_light() > > instrumented to yell about anything missed. > > Hi, starting with with this change, I get this oops when installing > packages into a rootfs in NFS: Lovely... So you somehow getting a highmem page out page = read_cache_page(&inode->i_data, 0, (filler_t *)nfs_symlink_filler, inode); if (IS_ERR(page)) return ERR_CAST(page); and that - after inode_nohighmem(inode); (otherwise you wouldn't get nfs_symlink_inode_operations on that inode). Could you add printk(KERN_ERR "i_data = %p, i_mapping = %p, flags: %lx\n", &inode->i_data, inode->i_mapping, (unsigned long)inode->i_data.flags); right before the return from nfs_get_link() and see what it prints? -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html