mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: question about dirty buffers in page cache pages
       [not found] <1088504928.16560.25.camel@imp.csi.cam.ac.uk>
@ 2004-06-29 10:40 ` Andrew Morton
  0 siblings, 0 replies; only message in thread
From: Andrew Morton @ 2004-06-29 10:40 UTC (permalink / raw)
  To: Anton Altaparmakov; +Cc: linux-kernel

Anton Altaparmakov <aia21@cam.ac.uk> wrote:
>
> Hi Andrew and anyone else knowledgeable on LKML,
> 
> Given:
> - a file system (NTFS)
> - an inode on the file system
> - a mapping belonging to the inode
> - only address space operations in the mapping defined are readpage,
> sync_page, and writepage (my_writepage)
> - a page cache page in the mapping which is marked dirty
> - some buffers (perhaps all, but perhaps only some) in the page are
> marked dirty
> 
> Is it possible that write i/o is initiated on these buffers in any other
> way than through the above my_writepage?

No.  The VFS doesn't even know that the page has attached buffers.  It's
up the the a_ops to tell the VFS library functions that the thing at
page->private is a buffer_head ring.

do_writepages->generic_writepages->mpage_writepages->writepage.
pageout->writepage

> I guess the question can be also rephrased like so:  Is it possible for
> dirty buffers in an address space mapping to be written out by the
> kernel while bypassing the writepage address space operation?

In 2.4, yes.  Not in 2.6.

> Or in a different way:  Are dirty buffers in an address space entirely
> under the control of the address space operations defined by the owner
> of the address space?

yup.  There are a few VFS functions which fall through and play with the
buffer_heads if the filesystem failed to install an a_op, such as
set_page_dirty().  These exist because we never got around to editing all
the filesystems' a_ops.  But as long as the fs installs non-zero function
pointers in there, the fs is fully in control of whatever is at
page->private.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-06-29 10:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1088504928.16560.25.camel@imp.csi.cam.ac.uk>
2004-06-29 10:40 ` question about dirty buffers in page cache pages Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®