* help in VFS
@ 2005-04-29 16:47 Perfect Stranger
0 siblings, 0 replies; only message in thread
From: Perfect Stranger @ 2005-04-29 16:47 UTC (permalink / raw)
To: Linux FS developers; +Cc: Jason J. Herne
Hi all:
I'm working on a parallel file system project (works on a cluster of
linux boxes).
I've written the low level details related to parallel access and data
scattering and gathering and so .. and now i have to implement the VFS
layer to integret my fs into the linux kernel
I've read about VFS and read some about BFS and ramfs but there is still
some unclearness
I know i miss understanding some points .. so i'll explain what is
going in my mind and i hope you'll correct me :).
My fs consist of three main parts:
Manager side: which holds the directory structures and data distribution
information
IO nodes: many nodes where the data are scattered
Client : where the VFS must be done to allow the client to access the
filesystem transperantly
i figured out that the data distribution information on the Manager must
be mapped to the inode object in the VFS
FILE and DENTRY objects must be created dynamicly on client side .. but
i couldn't figure out what must be mapped to form the super block object ?!!
i've read that i don't have to implement the whole operations for the
object .. i can put NULL for operation i don't want to implement and the
VFS default method is called for unimplemented methods .. so what are
the main methods i need to implement so that the basic operation are
avaliable such as: cp, mv, rm, mkdir, rmdir, ls, open, read, write, ..
the underlying functionality of those function are already done .. but i
don't know what are the things i have to implement from the VFS to carry
out those operations..
another thing .. while i can set the method i don't want to implement to
NULL .. do i have to initialize all the data members of the VFS objects
strucures "superblock, file, dentry, inode" .. or i can just ignore the
datamember i don't want to set ?? and won't this deed leeds to mess the
VFS internal job .. i mean if i decided not to use data member "X" from
the inode object for example ..what about if one of the default VFS
operation where using it .. so how can i know what to set and what to ignore
another point .. what is the difference between:
get_sb_bdev
get_sb_single
get_sb_nodev
i think that the first is used for device based file systems and the
last is used for non device based file system .. so what about the
second .. and in my case .. is my file system is device based or non
device based .. i don't need a partition on client side cause all the
data is being written on the whole cluster (client couldn't be a an I/O
node) .. but i need a way to to my file system so that all the request
to my file system are handled by my cluster file system not locally .. i
know that mount do this .. but if my file system needs no partition or
device to use it locally on client side what should i mount ?? and in
this case which get_sb call should i use
what are the differences between :
kill_block_super
kill_anon_super
kill_litter_super
.. i'm sorry for writting a news paper instead of a certain questions
but i've been thinking for a long time without a way to correct my
thoughts so that was the result :) sorry again and thanks in advance
MHD
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-04-29 17:43 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-29 16:47 help in VFS Perfect Stranger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox