From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: Re: which dentry a page belongs to Date: Fri, 23 Apr 2004 17:37:38 +0100 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <20040423173738.A3812@infradead.org> References: <1082732223.1943.11.camel@zaphod> <20040423151458.GC6300@mail.shareable.org> <1082734938.1943.26.camel@zaphod> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Jamie Lokier , linux-fsdevel@vger.kernel.org Return-path: Received: from phoenix.infradead.org ([213.86.99.234]:9232 "EHLO phoenix.infradead.org") by vger.kernel.org with ESMTP id S264863AbUDWQhk (ORCPT ); Fri, 23 Apr 2004 12:37:40 -0400 To: Shaya Potter Content-Disposition: inline In-Reply-To: <1082734938.1943.26.camel@zaphod>; from spotter@cs.columbia.edu on Fri, Apr 23, 2004 at 11:42:19AM -0400 List-Id: linux-fsdevel.vger.kernel.org On Fri, Apr 23, 2004 at 11:42:19AM -0400, Shaya Potter wrote: > > i_mmap and i_mmap_shared are lists. They can both be empty, or both > > non-empty. A page can be mapped shared *and* non-shared at the same > > time. A page might not be mapped at all. > > yes, they can be empty for "generic" pages, but I'm looking at a > specific case of file system pages, so they shouldn't be empty. i.e. > otherwise my fs's writepage() shouldn't be called, I would think. in 2.4 writepage is always the result of data dirtied by mmap. In 2.6 it's also for use for data dirtied by write. Even in 2.4 there's no gurantee the mapping that dirtied the page still exists when the page is written out by the VM. > > It is possible to find multiple dentries which are currently being > > used to map a page. > > a single page can have multiple dentries? but it has only one inode? Yes. > (i.e. host) So I can imagine if the single inode is linked in multiple > places (for my purposes I don't care about that directly) but can it > really have multiple inodes? It can't have multiple inodes. > > It's also possible to find no dentries at all. > > even if in my fs's writepage() function? Yes. > > Your question is extremely ill-formed. What do you mean by "the > > dentry corresponding to a page"? What do you want the value for? > > When my writepage() is called, I want to be able to possibly do dentry > based operations (rename, d_path....) to be told what files are actually > getting written to via writepage() (as opposed to the file system's > write() functionality). You can't do that.