>>> Adrian Chadd wrote
> Hrm. See, I'm willing to bet that you're using the same basic
> stuff in store_dir_foo and store_io_foo that exists in
> the aufs versions. If so, I think its time to tidy up this
> code a little and have a "unified" ufs directory type
> with different IO types.
>
> What do the rest of y'all think?
Yup.
Taking sfs_interface.c as a guide, the following happens:
fs_interface.c - defines all functions callable by squid. Maintains list of
pending and done requests for actual calls to fs. Request comes in (say,
fsOpen), it builds a request structure of it's own, dumps it on an internal
list of requests, and waits for the actual fs libraries to satisfy the request
- actual ufs, fs, and awin32 code would have to provide a function which is
called when waiting (equivalent to _sfs_waitfor_request(req) atm), so that sync
fs'es can call their actual code in that function, while async just waits for
request to have been satisfied. fs_interface.c code then moves the completed
request data back out onto modio "done" list.
Can we pass the actual requestor through the fs'es guts? I think not, because
we want to store fs-specific info on a requestor as we do that, but will keep
that in mind.
I'm going to start work on this today. This rolls into fs_interface.c also
maintaining an index of files it's responsible for on a per-fs basis, merging
in with modio work.
Anyone see anything broken in the above, let me know ;) Oh, I'm working in
the sfs branch - it's the branch I've got open atm, I need the sfs code for
reference, it'll mean changes to sfs code as I go, and I'm not comfortable
with starting a new branch etc. yet. And it's all self-contained anyway.
I'll have to work out how to get the awin32 code in, tho ;)
KevinL
Received on Fri Mar 16 2001 - 18:10:33 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:13:38 MST