Note that clean pages in writable files are mapped as read-only (see UVM_OBJ_NEEDS_WRITEFAULT() in uvm_fault.c). Write-accessing such pages causes protection fault, then calls uvm_fault() -> pgo_get() -> genfs_getpages(), where pages are marked dirty. I think this is same for UBC except that pages are mapped indirectly in UBC windows (kernel space).
On Fri, Aug 19, 2011 at 10:29 AM, Emmanuel Dreyfus <[email protected]> wrote: > Hello > > When copying data to a vnode using ubc_alloc() ubc_uiomove() and > ubc_release(), where does the kernel notes that data is dirty and will > need to be written by VOP_PUTPAGE? Is it the responsability of the > caller to request it (how?), or is it done somewhere in UBC? > > -- > Emmanuel Dreyfus > http://hcpnet.free.fr/pubz > [email protected] >
