From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: Kernel bug: Bad page state: related to generic symlink code and mmap Date: Fri, 19 Aug 2005 17:21:21 +0100 Message-ID: <20050819162121.GC29811@parcelfarce.linux.theplanet.co.uk> References: <1124450088.2294.31.camel@imp.csi.cam.ac.uk> <20050819142025.GA29811@parcelfarce.linux.theplanet.co.uk> <1124466246.2294.65.camel@imp.csi.cam.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Anton Altaparmakov , vandrove@vc.cvut.cz, Andrew Morton , linware@sh.cvut.cz, fsdevel , lkml Return-path: To: Linus Torvalds Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Fri, Aug 19, 2005 at 09:07:35AM -0700, Linus Torvalds wrote: > Hmm.. NFS _does_ use the page cache for symlinks, but uses it slightly > differently: instead of relying on the page cache entry being the same > when freeing the page, it just caches the page it looked up in the page > cache (ie "nfs_follow_link()" does look up the page cache, but then hides > the page pointer inside the page data itself (uglee), and thus does not > depend on the mapping staying the same (nfs_put_link() just takes the page > from the symlink data). For NFS that was done exactly to deal with cache invalidation. IIRC, I've convinced myself that it wasn't going to happen on ncpfs and happily abstained from duplicating the NFS variant.