Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Feb 1999 16:44:28 -0500 (EST)
From:      Luoqi Chen <luoqi@watermarkgroup.com>
To:        amarks@sarnoff.com, freebsd-hackers@FreeBSD.ORG
Subject:   Re:  Memory-Based VFS Question
Message-ID:  <199902162144.QAA23030@lor.watermarkgroup.com>

next in thread | raw e-mail | index | archive | help
> I'm implementing a memory-based VFS on 3.0-19981123. I have almost all
> of the VOP_* functions implemented but I ran into a slight problem with
> file copies. If I copy a file from and to a dir mounted on my fs, the
> kernel calls mmap to map the data in (I guess it would call vop_read if
> the data was too large). My problem is that the kernel never calls my
> vop_mmap (not even sure if it's supposed to) so I never get the
> opportunity to copy the data from my fs to kernel space so the data in
> the io vector pased to me at vop_write is invalid. Any ideas?
> 
> Thanks,
> -A.
> 
> -- 
> Aaron J. Marks		       Communications and Computing Systems Lab
> Assoc. Member Tech Staff       Advanced Networks and Computation Group
> amarks@sarnoff.com	       Sarnoff Corporation
> 
I don't think VOP_MMAP is used any where, you need to implement
VOP_GETPAGES and VOP_PUTPAGES instead. The simplest way is to make them
wrapper functions calling vnode_pager_generic_{get,put}pages, take a look
at vm/vnode_pager.c

-lq


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199902162144.QAA23030>