public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
* 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