[Top] [All Lists]

Re: vfs_altfsid & dm_fsid

To: Dean Roehrich <roehrich@xxxxxxx>
Subject: Re: vfs_altfsid & dm_fsid
From: Aurelien Degremont - Stagiaire <degremont@xxxxxxxxxxx>
Date: Wed, 04 May 2005 15:27:20 +0200
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <20050428021133.A885C4FE57@chewtoy.americas.sgi.com>
References: <20050428021133.A885C4FE57@chewtoy.americas.sgi.com>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.2.1) Gecko/20030225
Dean Roehrich a écrit:
If your filesystem of choice doesn't have an fsid, then you could just
generate one that is valid while the filesystem is mounted and is not written
to the filesystem, or you could come up with something else.  Whatever you
choose for an fsid should fit into a 64-bit type.

1)      The fsid should be a parameter to dm_send_mount_event() and
        dm_send_namesp_event() and dm_send_unmount_event().
        The get_fsid op in struct filesystem_dmapi_operations should be

Ok, so we need to modify : xfs_dm_mount() xfs_dm_send_namesp_event() xfs_dm_send_unmount_event()

The fsid could be taken in vfsp.

2)      The dm_fsys_vector_t should be folded into struct
        filesystem_dmapi_operations.  The new ops vector should be
        a parameter to dm_send_mount_event().
        The part where today we copy the ops vector from
        fsys_function_vector_t to dm_fsys_vector_t seems cumbersome and
        just makes things hard to understand, so maybe
        that copy should be skipped and some of these datatypes could
        be removed.
        The get_fsys_vector op in struct filesystem_dmapi_operations should be

Remove dm_query_fsys_for_vector() dm_fsys_vector()

Move the fsys_vector pointer to dmapiops.
Add a bitmask that informs which functions id set when registering.

Change all the dm_sys_vector calls in dmapi.

Maybe the dm_vector_map should be replace by a list_head ?

3)      It would be nice to keep in mind distributed filesystems and stackable
        filesystems; try to make it easier, not harder, to move in those
        directions.  Unfortunately, I have no experience with the Linux
        view of stackable filesystems and I don't quite know how to approach
        that problem.

Ok, I'm not specialist neither. I'll try...

4)      The new, unified, ops vector should be kept on a
        per-filesystem-instance basis, rather than one ops vector to be
        shared by all filesystems.

So, all the by_fstype should be changed to by_fsid ?
So, we're back to the issue : "how fetch the fsid only knowing the superblock ?"
Maybe, we can store a mapping between the superblock and the fsid in the dm_fsys_map ? But I don't like using the sb pointer address as id (especially concerning distributed fs)
If you have a better solution...

Does that sum up the things that interest you?

Yes, It did :). I'd like to discuss all of this. As soon as we agree, I could start to patch this.


<Prev in Thread] Current Thread [Next in Thread>