>From: Aurelien Degremont - Stagiaire <degremont@xxxxxxxxxxx>
>Hello,
>
>I'm trying to figure out the architecture and behaviour of the kernel
>part of DMAPI. Presently, I've got problems to understand the interface
>between DMAPI and the file systems.
>I notice that 2 functions vectors are used : *fsys_vector* and *dmapiops*.
>To get the fsys_vector structure, we need to use a function available in
>dmapiops.
>Except few differences, they work as the same manner and they do the
>same job. They're filesystem's interface into the DMAPI code. In fact, I
>even don't understand why they got those differences. It must why I do
>not understand why two structures exist to do the same job. ;)
It's very likely that we'll migrate everything to the dmapi_operations
structure someday. I've never liked that fsys_vector thing, and after the
port to linux it starts to look even more silly. The dmapi_operations
structure was created because the dmapi code no longer knew about XFS vfs_t
and vnode_t types and it couldn't, for example, call VFS_DMAPIOPS and
VFS_VGET/VFS_ROOT and VOP_FID2 on its own anymore. Because it couldn't call
VFS_DMAPIOPS, it couldn't get the fsys_vector...
On the other hand, the dmapi_operations needs to be handled better in
dmapi_mountinfo.c. It needs to be changed to use linux-style lists for
starters.
Dean
|